pluginmanager module¶
|
|
|
|
|
- class RepoPlugin(handle: LP_BNRepoPlugin)[source]¶
Bases:
object
RepoPlugin
is mostly read-only, however you can install/uninstall enable/disable plugins. RepoPlugins are created by parsing the plugins.json in a plugin repository.- Parameters:
handle (LP_BNRepoPlugin) –
- enable(force: bool = False) bool [source]¶
Enable this plugin, optionally trying to force it. Force loading a plugin with ignore platform and api constraints. (e.g. The plugin author says the plugin will only work on Linux but you’d like to attempt to load it on macOS)
- property delete_pending: bool¶
Boolean status indicating that the plugin will be deleted after the next restart
- property dependencies_being_installed: bool¶
Boolean status indicating that the plugin’s dependencies are currently being installed
- property disable_pending: bool¶
Boolean status indicating that the plugin will be disabled after the next restart
- property maximum_version_info: CoreVersionInfo¶
Maximum version info the plugin will support
- minimum_version¶
Minimum version the plugin was tested on
Deprecated since version 4.0.5366: Use
minimum_version_info
instead.
- property minimum_version_info: CoreVersionInfo¶
Minimum version info the plugin was tested on
- property plugin_types: List[PluginType]¶
List of PluginType enumeration objects indicating the plugin type(s)
- property subdir: str¶
Optional sub-directory the plugin code lives in as a relative path from the plugin root
- class Repository(handle: LP_BNRepository)[source]¶
Bases:
object
Repository
is a read-only class. Use RepositoryManager to Enable/Disable/Install/Uninstall plugins.- Parameters:
handle (LP_BNRepository) –
- property plugins: List[RepoPlugin]¶
List of RepoPlugin objects contained within this repository
- class RepositoryManager[source]¶
Bases:
object
RepositoryManager
Keeps track of all the repositories and keeps the enabled_plugins.json file coherent with the plugins that are installed/uninstalled enabled/disabled- add_repository(url: str | None = None, repopath: str | None = None) bool [source]¶
add_repository
adds a new plugin repository for the manager to track.To remove a repository, restart Binary Ninja (and don’t re-add the repository!). File artifacts will remain on disk under repositories/ file in the User Folder.
Before you can query plugin metadata from a repository, you need to call
check_for_updates
.- Parameters:
- Returns:
Boolean value True if the repository was successfully added, False otherwise.
- Return type:
Boolean
- Example:
>>> mgr = RepositoryManager() >>> mgr.add_repository("https://raw.githubusercontent.com/Vector35/community-plugins/master/plugins.json", "community") True >>> mgr.check_for_updates() >>>
- check_for_updates() bool [source]¶
Check for updates for all managed Repository objects
- Return type:
- property default_repository: Repository¶
Gets the default Repository
- property plugins: Dict[str, List[RepoPlugin]]¶
List of all RepoPlugins in each repository
- property repositories: List[Repository]¶
List of Repository objects being managed