diff options
| author | AAGaming <aa@mail.catvibers.me> | 2022-07-25 17:13:50 -0400 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2022-07-25 17:13:50 -0400 |
| commit | afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8 (patch) | |
| tree | 835c8372a59b98ddd1cc595d0fb2bc77cee661d2 /backend/browser.py | |
| parent | 52dded85ed63f3a388fd90bb35412038c3b79146 (diff) | |
| download | decky-loader-afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8.tar.gz decky-loader-afb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8.zip | |
Better install process UX, fix reinstallingv2.0.4-afb2c7c-pre
Diffstat (limited to 'backend/browser.py')
| -rw-r--r-- | backend/browser.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/backend/browser.py b/backend/browser.py index 52f5233f..c58a97e5 100644 --- a/backend/browser.py +++ b/backend/browser.py @@ -10,6 +10,7 @@ from asyncio import get_event_loop from time import time from hashlib import sha256 from subprocess import Popen +from injector import inject_to_tab import json @@ -23,9 +24,10 @@ class PluginInstallContext: self.hash = hash class PluginBrowser: - def __init__(self, plugin_path, server_instance) -> None: + def __init__(self, plugin_path, server_instance, plugins) -> None: self.log = getLogger("browser") self.plugin_path = plugin_path + self.plugins = plugins self.install_requests = {} server_instance.add_routes([ @@ -64,6 +66,9 @@ class PluginBrowser: self.log.info("uninstalling " + name) self.log.info(" at dir " + self.find_plugin_folder(name)) await tab.evaluate_js(f"DeckyPluginLoader.unloadPlugin('{name}')") + if self.plugins[name]: + self.plugins[name].stop() + self.plugins.pop(name, None) rmtree(self.find_plugin_folder(name)) except FileNotFoundError: self.log.warning(f"Plugin {name} not installed, skipping uninstallation") @@ -95,6 +100,7 @@ class PluginBrowser: ) if ret: self.log.info(f"Installed {name} (Version: {version})") + await inject_to_tab("SP", "window.syncDeckyPlugins()") else: self.log.fatal(f"SHA-256 Mismatch!!!! {name} (Version: {version})") else: |
