From c65427e693daf3ee96cfd707e74efcb8d9d985f2 Mon Sep 17 00:00:00 2001 From: tza Date: Thu, 7 Apr 2022 22:38:26 +0300 Subject: initial browser/installer commit, injector get_tab and stateful utils - Integrated plugin downloader/installer. It accepts POST requests at /browser/install_plugin, containing an artifact (basically an author/repo string like you'd find on github), and a release version, then fetches the zip file from the repo releases and unzips it inside the plugin dir, after asking for user confirmation (pop-up message in the plugin menu). - Injector get_tab method. Basically get_tabs with the usual search for a specific tab. Decided to implement this because it was needed again and again, and we kept pasting the same list search one-liner. - Utilities now have access to the main PluginManager class --- plugin_loader/loader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugin_loader/loader.py') diff --git a/plugin_loader/loader.py b/plugin_loader/loader.py index fb4e3fa8..948e1e0f 100644 --- a/plugin_loader/loader.py +++ b/plugin_loader/loader.py @@ -7,7 +7,7 @@ from os import path, listdir from importlib.util import spec_from_file_location, module_from_spec from logging import getLogger -from injector import get_tabs +from injector import get_tabs, get_tab class FileChangeHandler(FileSystemEventHandler): def __init__(self, loader, plugin_path) -> None: @@ -190,6 +190,6 @@ class Loader: return {"plugins": self.plugins.values()} async def refresh_iframe(self): - tab = next((i for i in await get_tabs() if i.title == "QuickAccess"), None) + tab = await get_tab("QuickAccess") await tab.open_websocket() return await tab.evaluate_js("reloadIframe()") \ No newline at end of file -- cgit v1.2.3