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!
### 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
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.
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))
+2 -1
View File
@@ -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
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_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()
-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