summaryrefslogtreecommitdiff
path: root/backend/browser.py
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2022-07-25 17:13:50 -0400
committerAAGaming <aa@mail.catvibers.me>2022-07-25 17:13:50 -0400
commitafb2c7c0ed1ef9ccad6b5a6764cdbc5c103563a8 (patch)
tree835c8372a59b98ddd1cc595d0fb2bc77cee661d2 /backend/browser.py
parent52dded85ed63f3a388fd90bb35412038c3b79146 (diff)
downloaddecky-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.py8
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: