mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-07-11 19:21:59 +00:00
enabled logging, fixed loader refresh bug, removed template
This commit is contained in:
@@ -12,7 +12,10 @@
|
|||||||
7. Done! Reboot back into Gaming mode and enjoy your plugins!
|
7. Done! Reboot back into Gaming mode and enjoy your plugins!
|
||||||
|
|
||||||
### Install Plugins
|
### Install Plugins
|
||||||
- Simply copy the plugin's .py file into `~/homebrew/plugins`
|
- Simply copy the plugin's folder into `~/homebrew/plugins`
|
||||||
|
|
||||||
|
### Developing plugins
|
||||||
|
- There is no complete plugin development documentation yet. However a good starting point is the [Plugin Template](https://github.com/SteamDeckHomebrew/Plugin-Template) repository
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- Clean injecting and loading of one or more plugins
|
- Clean injecting and loading of one or more plugins
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#Injector code from https://github.com/SteamDeckHomebrew/steamdeck-ui-inject. More info on how it works there.
|
#Injector code from https://github.com/SteamDeckHomebrew/steamdeck-ui-inject. More info on how it works there.
|
||||||
|
|
||||||
from aiohttp import ClientSession
|
from aiohttp import ClientSession
|
||||||
from logging import info
|
from logging import debug
|
||||||
from asyncio import sleep
|
from asyncio import sleep
|
||||||
|
|
||||||
BASE_ADDRESS = "http://localhost:8080"
|
BASE_ADDRESS = "http://localhost:8080"
|
||||||
@@ -82,4 +82,4 @@ async def inject_to_tab(tab_name, js):
|
|||||||
tab = next((i for i in tabs if i.title == tab_name), None)
|
tab = next((i for i in tabs if i.title == tab_name), None)
|
||||||
if not tab:
|
if not tab:
|
||||||
raise ValueError("Tab {} not found in running tabs".format(tab_name))
|
raise ValueError("Tab {} not found in running tabs".format(tab_name))
|
||||||
info(await tab.evaluate_js(js))
|
debug(await tab.evaluate_js(js))
|
||||||
|
|||||||
@@ -85,9 +85,10 @@ class Loader:
|
|||||||
if not hasattr(module.Plugin, "name"):
|
if not hasattr(module.Plugin, "name"):
|
||||||
raise KeyError("Plugin {} has not defined a name".format(file))
|
raise KeyError("Plugin {} has not defined a name".format(file))
|
||||||
if module.Plugin.name in self.plugins:
|
if module.Plugin.name in self.plugins:
|
||||||
if hasattr(module.Plugin, "hot_reload") and not module.Plugin.hot_reload:
|
if hasattr(module.Plugin, "hot_reload") and not module.Plugin.hot_reload and refresh:
|
||||||
self.logger.info("Plugin {} is already loaded and has requested to not be re-loaded"
|
self.logger.info("Plugin {} is already loaded and has requested to not be re-loaded"
|
||||||
.format(module.Plugin.name))
|
.format(module.Plugin.name))
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
if hasattr(self.plugins[module.Plugin.name], "task"):
|
if hasattr(self.plugins[module.Plugin.name], "task"):
|
||||||
self.plugins[module.Plugin.name].task.cancel()
|
self.plugins[module.Plugin.name].task.cancel()
|
||||||
|
|||||||
+12
-8
@@ -1,7 +1,18 @@
|
|||||||
|
from logging import basicConfig, INFO, DEBUG
|
||||||
|
from os import getenv
|
||||||
|
CONFIG = {
|
||||||
|
"plugin_path": getenv("PLUGIN_PATH", "/home/deck/homebrew/plugins"),
|
||||||
|
"server_host": getenv("SERVER_HOST", "127.0.0.1"),
|
||||||
|
"server_port": int(getenv("SERVER_PORT", "1337")),
|
||||||
|
"live_reload": getenv("LIVE_RELOAD", "1") == "1",
|
||||||
|
"log_level": {"CRITICAL": 50, "ERROR": 40, "WARNING":30, "INFO": 20, "DEBUG": 10}[getenv("LOG_LEVEL", "INFO")]
|
||||||
|
}
|
||||||
|
basicConfig(level=CONFIG["log_level"], format="[%(module)s][%(levelname)s]: %(message)s")
|
||||||
|
|
||||||
from aiohttp.web import Application, run_app, static
|
from aiohttp.web import Application, run_app, static
|
||||||
from aiohttp_jinja2 import setup as jinja_setup
|
from aiohttp_jinja2 import setup as jinja_setup
|
||||||
from jinja2 import FileSystemLoader
|
from jinja2 import FileSystemLoader
|
||||||
from os import getenv, path
|
from os import path
|
||||||
from asyncio import get_event_loop
|
from asyncio import get_event_loop
|
||||||
from json import loads, dumps
|
from json import loads, dumps
|
||||||
|
|
||||||
@@ -9,13 +20,6 @@ from loader import Loader
|
|||||||
from injector import inject_to_tab, get_tabs
|
from injector import inject_to_tab, get_tabs
|
||||||
from utilities import util_methods
|
from utilities import util_methods
|
||||||
|
|
||||||
CONFIG = {
|
|
||||||
"plugin_path": getenv("PLUGIN_PATH", "/home/deck/homebrew/plugins"),
|
|
||||||
"server_host": getenv("SERVER_HOST", "127.0.0.1"),
|
|
||||||
"server_port": int(getenv("SERVER_PORT", "1337")),
|
|
||||||
"live_reload": getenv("LIVE_RELOAD", "1") == "1"
|
|
||||||
}
|
|
||||||
|
|
||||||
class PluginManager:
|
class PluginManager:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.loop = get_event_loop()
|
self.loop = get_event_loop()
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
class Plugin:
|
|
||||||
name = "Template Plugin"
|
|
||||||
|
|
||||||
author = "SteamDeckHomebrew"
|
|
||||||
|
|
||||||
main_view_html = "<html><body><h3>Template Plugin</h3></body></html>"
|
|
||||||
|
|
||||||
tile_view_html = ""
|
|
||||||
|
|
||||||
hot_reload = False
|
|
||||||
|
|
||||||
async def __main(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def method_1(self, **kwargs):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def method_2(self, **kwargs):
|
|
||||||
pass
|
|
||||||
Reference in New Issue
Block a user