enabled logging, fixed loader refresh bug, removed template

This commit is contained in:
tza
2022-04-06 12:53:19 +03:00
parent 85e5554c05
commit a6943dd7a2
7 changed files with 20 additions and 31 deletions
+4 -1
View File
@@ -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
Vendored Executable → Regular
View File
Vendored Executable → Regular
View File
+2 -2
View File
@@ -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))
+2 -1
View File
@@ -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
View File
@@ -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()
-19
View File
@@ -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