summaryrefslogtreecommitdiff
path: root/backend/decky_loader/loader.py
diff options
context:
space:
mode:
authorParty Wumpus <48649272+PartyWumpus@users.noreply.github.com>2024-04-09 15:44:38 +0100
committerPartyWumpus <48649272+PartyWumpus@users.noreply.github.com>2024-04-09 15:54:48 +0100
commitf9ff518e6d6368f65ead7634f459498b183081f2 (patch)
tree4af2f6e8d3b8da6b01e4565518f416ab9af15d03 /backend/decky_loader/loader.py
parentde9d2144a604506bf9499078147b7c0c899ccb65 (diff)
downloaddecky-loader-f9ff518e6d6368f65ead7634f459498b183081f2.tar.gz
decky-loader-f9ff518e6d6368f65ead7634f459498b183081f2.zip
attempt to add plugin events to the plugin frontend api.
unable to test right now though
Diffstat (limited to 'backend/decky_loader/loader.py')
-rw-r--r--backend/decky_loader/loader.py14
1 files changed, 3 insertions, 11 deletions
diff --git a/backend/decky_loader/loader.py b/backend/decky_loader/loader.py
index aad595e7..9eecb575 100644
--- a/backend/decky_loader/loader.py
+++ b/backend/decky_loader/loader.py
@@ -8,7 +8,6 @@ from typing import Any, Tuple, Dict
from aiohttp import web
from os.path import exists
-from attr import dataclass
from watchdog.events import RegexMatchingEventHandler, DirCreatedEvent, DirModifiedEvent, FileCreatedEvent, FileModifiedEvent # type: ignore
from watchdog.observers import Observer # type: ignore
@@ -66,12 +65,6 @@ class FileChangeHandler(RegexMatchingEventHandler):
self.logger.debug(f"file modified: {src_path}")
self.maybe_reload(src_path)
-@dataclass
-class PluginEvent:
- plugin_name: str
- event: str
- data: str
-
class Loader:
def __init__(self, server_instance: PluginManager, ws: WSRouter, plugin_path: str, loop: AbstractEventLoop, live_reload: bool = False) -> None:
self.loop = loop
@@ -149,10 +142,9 @@ class Loader:
def import_plugin(self, file: str, plugin_directory: str, refresh: bool | None = False, batch: bool | None = False):
try:
- async def plugin_emitted_event(event: str, data: Any):
- self.logger.debug(f"PLUGIN EMITTED EVENT: {str(event)} {data}")
- event_data = PluginEvent(plugin_name=plugin.name, event=event, data=data)
- await self.ws.emit("loader/plugin_event", event_data)
+ async def plugin_emitted_event(event: str, args: Any):
+ self.logger.debug(f"PLUGIN EMITTED EVENT: {event} with args {args}")
+ await self.ws.emit(f"loader/plugin_event", {plugin:plugin.name, event:event, args:args})
plugin = PluginWrapper(file, plugin_directory, self.plugin_path, plugin_emitted_event)
if plugin.name in self.plugins: