diff options
| author | marios8543 <marios8543@gmail.com> | 2023-10-17 23:51:57 +0300 |
|---|---|---|
| committer | marios8543 <marios8543@gmail.com> | 2023-10-31 23:17:57 +0200 |
| commit | 949c5e73c496c3b467f7084ffffb466f98f906bc (patch) | |
| tree | 2b1c43ae978b7494decbab54eef2bb6fb786c587 /backend | |
| parent | da9217ac4a73ba7588b046dcb16ed159a6fb23ac (diff) | |
| download | decky-loader-949c5e73c496c3b467f7084ffffb466f98f906bc.tar.gz decky-loader-949c5e73c496c3b467f7084ffffb466f98f906bc.zip | |
Add localplatform stuff to its own package
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/src/browser.py | 2 | ||||
| -rw-r--r-- | backend/src/helpers.py | 2 | ||||
| -rw-r--r-- | backend/src/legacy/library.js | 84 | ||||
| -rw-r--r-- | backend/src/loader.py | 6 | ||||
| -rw-r--r-- | backend/src/localplatform/localplatform.py (renamed from backend/src/localplatform.py) | 0 | ||||
| -rw-r--r-- | backend/src/localplatform/localplatformlinux.py (renamed from backend/src/localplatformlinux.py) | 2 | ||||
| -rw-r--r-- | backend/src/localplatform/localplatformwin.py (renamed from backend/src/localplatformwin.py) | 0 | ||||
| -rw-r--r-- | backend/src/localplatform/localsocket.py (renamed from backend/src/localsocket.py) | 0 | ||||
| -rw-r--r-- | backend/src/main.py | 2 | ||||
| -rw-r--r-- | backend/src/settings.py | 2 | ||||
| -rw-r--r-- | backend/src/updater.py | 2 | ||||
| -rw-r--r-- | backend/src/utilities.py | 4 |
12 files changed, 11 insertions, 95 deletions
diff --git a/backend/src/browser.py b/backend/src/browser.py index da8569be..7260db8e 100644 --- a/backend/src/browser.py +++ b/backend/src/browser.py @@ -17,7 +17,7 @@ from enum import IntEnum from typing import Dict, List, TypedDict # Local modules -from .localplatform import chown, chmod +from .localplatform.localplatform import chown, chmod from .loader import Loader, Plugins from .helpers import get_ssl_context, download_remote_binary_to_path from .settings import SettingsManager diff --git a/backend/src/helpers.py b/backend/src/helpers.py index 0acfd929..e3770c63 100644 --- a/backend/src/helpers.py +++ b/backend/src/helpers.py @@ -10,7 +10,7 @@ import certifi from aiohttp.web import Request, Response, middleware from aiohttp.typedefs import Handler from aiohttp import ClientSession -from . import localplatform +from .localplatform import localplatform from .customtypes import UserType from logging import getLogger diff --git a/backend/src/legacy/library.js b/backend/src/legacy/library.js deleted file mode 100644 index 17f4e46f..00000000 --- a/backend/src/legacy/library.js +++ /dev/null @@ -1,84 +0,0 @@ -class PluginEventTarget extends EventTarget { } -method_call_ev_target = new PluginEventTarget(); - -window.addEventListener("message", function(evt) { - let ev = new Event(evt.data.call_id); - ev.data = evt.data.result; - method_call_ev_target.dispatchEvent(ev); -}, false); - -async function call_server_method(method_name, arg_object={}) { - const token = await fetch("http://127.0.0.1:1337/auth/token").then(r => r.text()); - const response = await fetch(`http://127.0.0.1:1337/methods/${method_name}`, { - method: 'POST', - credentials: "include", - headers: { - 'Content-Type': 'application/json', - Authentication: token - }, - body: JSON.stringify(arg_object), - }); - - const dta = await response.json(); - if (!dta.success) throw dta.result; - return dta.result; -} - -// Source: https://stackoverflow.com/a/2117523 Thanks! -function uuidv4() { - return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => - (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) - ); -} - -async function fetch_nocors(url, request={}) { - let args = { method: "POST", headers: {}, body: "" }; - request = {...args, ...request}; - request.url = url; - request.data = request.body; - delete request.body; //maintain api-compatibility with fetch - return await call_server_method("http_request", request); -} - -async function call_plugin_method(method_name, arg_object={}) { - if (plugin_name == undefined) - throw new Error("Plugin methods can only be called from inside plugins (duh)"); - const token = await fetch("http://127.0.0.1:1337/auth/token").then(r => r.text()); - const response = await fetch(`http://127.0.0.1:1337/plugins/${plugin_name}/methods/${method_name}`, { - method: 'POST', - credentials: "include", - headers: { - 'Content-Type': 'application/json', - Authentication: token - }, - body: JSON.stringify({ - args: arg_object, - }), - }); - - const dta = await response.json(); - if (!dta.success) throw dta.result; - return dta.result; -} - -async function execute_in_tab(tab, run_async, code) { - return await call_server_method("execute_in_tab", { - 'tab': tab, - 'run_async': run_async, - 'code': code - }); -} - -async function inject_css_into_tab(tab, style) { - return await call_server_method("inject_css_into_tab", { - 'tab': tab, - 'style': style - }); -} - -async function remove_css_from_tab(tab, css_id) { - return await call_server_method("remove_css_from_tab", { - 'tab': tab, - 'css_id': css_id - }); -}
\ No newline at end of file diff --git a/backend/src/loader.py b/backend/src/loader.py index f1ba662f..49f80c64 100644 --- a/backend/src/loader.py +++ b/backend/src/loader.py @@ -16,8 +16,8 @@ from typing import TYPE_CHECKING if TYPE_CHECKING: from .main import PluginManager -from .injector import get_tab, get_gamepadui_tab -from .plugin import PluginWrapper +from .injector import get_gamepadui_tab +from .plugin.plugin import PluginWrapper Plugins = dict[str, PluginWrapper] ReloadQueue = Queue[Tuple[str, str, bool | None] | Tuple[str, str]] @@ -143,7 +143,7 @@ class Loader: self.plugins.pop(plugin.name, None) if plugin.passive: self.logger.info(f"Plugin {plugin.name} is passive") - self.plugins[plugin.name] = plugin.start() + self.plugins[plugin.name] = plugin self.logger.info(f"Loaded {plugin.name}") if not batch: self.loop.create_task(self.dispatch_plugin(plugin.name, plugin.version)) diff --git a/backend/src/localplatform.py b/backend/src/localplatform/localplatform.py index 028eff8f..028eff8f 100644 --- a/backend/src/localplatform.py +++ b/backend/src/localplatform/localplatform.py diff --git a/backend/src/localplatformlinux.py b/backend/src/localplatform/localplatformlinux.py index bde2caac..1ec3fc1a 100644 --- a/backend/src/localplatformlinux.py +++ b/backend/src/localplatform/localplatformlinux.py @@ -1,6 +1,6 @@ import os, pwd, grp, sys, logging from subprocess import call, run, DEVNULL, PIPE, STDOUT -from .customtypes import UserType +from ..customtypes import UserType logger = logging.getLogger("localplatform") diff --git a/backend/src/localplatformwin.py b/backend/src/localplatform/localplatformwin.py index 4c4e9439..4c4e9439 100644 --- a/backend/src/localplatformwin.py +++ b/backend/src/localplatform/localplatformwin.py diff --git a/backend/src/localsocket.py b/backend/src/localplatform/localsocket.py index f38fe5e7..f38fe5e7 100644 --- a/backend/src/localsocket.py +++ b/backend/src/localplatform/localsocket.py diff --git a/backend/src/main.py b/backend/src/main.py index b4623791..86c4720d 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -1,7 +1,7 @@ # Change PyInstaller files permissions import sys from typing import Dict -from .localplatform import (chmod, chown, service_stop, service_start, +from .localplatform.localplatform import (chmod, chown, service_stop, service_start, ON_WINDOWS, get_log_level, get_live_reload, get_server_port, get_server_host, get_chown_plugin_path, get_privileged_path) diff --git a/backend/src/settings.py b/backend/src/settings.py index a9ab3daa..c0f2b90c 100644 --- a/backend/src/settings.py +++ b/backend/src/settings.py @@ -1,7 +1,7 @@ from json import dump, load from os import mkdir, path, listdir, rename from typing import Any, Dict -from .localplatform import chown, folder_owner, get_chown_plugin_path +from .localplatform.localplatform import chown, folder_owner, get_chown_plugin_path from .customtypes import UserType from .helpers import get_homebrew_path diff --git a/backend/src/updater.py b/backend/src/updater.py index d28e67b0..f8aef429 100644 --- a/backend/src/updater.py +++ b/backend/src/updater.py @@ -8,7 +8,7 @@ from os import getcwd, path, remove from typing import TYPE_CHECKING, List, TypedDict if TYPE_CHECKING: from .main import PluginManager -from .localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service, get_selinux +from .localplatform.localplatform import chmod, service_restart, ON_LINUX, get_keep_systemd_service, get_selinux from aiohttp import ClientSession, web diff --git a/backend/src/utilities.py b/backend/src/utilities.py index b0e23b88..f04ed371 100644 --- a/backend/src/utilities.py +++ b/backend/src/utilities.py @@ -18,9 +18,9 @@ from .browser import PluginInstallRequest, PluginInstallType if TYPE_CHECKING: from .main import PluginManager from .injector import inject_to_tab, get_gamepadui_tab, close_old_tabs, get_tab -from .localplatform import ON_WINDOWS +from .localplatform.localplatform import ON_WINDOWS from . import helpers -from .localplatform import service_stop, service_start, get_home_path, get_username +from .localplatform.localplatform import service_stop, service_start, get_home_path, get_username class FilePickerObj(TypedDict): file: Path |
