mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-13 04:05:04 +03: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!
|
||||
|
||||
### 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
|
||||
- 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.
|
||||
|
||||
from aiohttp import ClientSession
|
||||
from logging import info
|
||||
from logging import debug
|
||||
from asyncio import sleep
|
||||
|
||||
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)
|
||||
if not tab:
|
||||
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"):
|
||||
raise KeyError("Plugin {} has not defined a name".format(file))
|
||||
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"
|
||||
.format(module.Plugin.name))
|
||||
return
|
||||
else:
|
||||
if hasattr(self.plugins[module.Plugin.name], "task"):
|
||||
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_jinja2 import setup as jinja_setup
|
||||
from jinja2 import FileSystemLoader
|
||||
from os import getenv, path
|
||||
from os import path
|
||||
from asyncio import get_event_loop
|
||||
from json import loads, dumps
|
||||
|
||||
@@ -9,13 +20,6 @@ from loader import Loader
|
||||
from injector import inject_to_tab, get_tabs
|
||||
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:
|
||||
def __init__(self) -> None:
|
||||
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