summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-13Properly delete old user plugin loader service on installWerWolv
2022-04-14added default value to injector tab run_asynctza
2022-04-13fixed passive plugin reload bug and close event loop properlytza
2022-04-13Fixed install script root accessWerWolv
2022-04-13Added support for passive plugins (that don't implement main.py)tza
2022-04-13Fix release scriptmarios
2022-04-13Update install scripts to install loader as system serviceWerWolv
2022-04-13Root plugins (#35)marios
* root plugins plugins can now specify if they want their methods to be ran as root. this is done via the multiprocess module. method calls are delegated to a separate process that is then down-privileged by default to user 1000, so the loader can safely be ran as root except it isn't really safe because the plugin is imported as root anyway * working implementation - follows the new plugin format with the plugin.json file - plugins are loaded in their own isolated process along with their own event loop and unix socket server for calling methods - private methods are now prepended with _ instead of __ * converted format to f-strings
2022-04-12Use f-strings instead of .formatWerWolv
2022-04-12Added functions to inject and remove css from tabsWerWolv
2022-04-12Added library function to execute code in a different tabWerWolv
2022-04-11Bundle stylesheets (#34)Spyrex
2022-04-11Add vscode debugging (#33)Spyrex
2022-04-09added sha-256 hash checking to browsertza
2022-04-08plugin title bug fixv1.1.0tza
2022-04-07plugin menu title change bugtza
Fixed a bug where steam would sometimes fire message events on its own, causing them to be displayed as plugin titles.
2022-04-07initial browser/installer commit, injector get_tab and stateful utilstza
- Integrated plugin downloader/installer. It accepts POST requests at /browser/install_plugin, containing an artifact (basically an author/repo string like you'd find on github), and a release version, then fetches the zip file from the repo releases and unzips it inside the plugin dir, after asking for user confirmation (pop-up message in the plugin menu). - Injector get_tab method. Basically get_tabs with the usual search for a specific tab. Decided to implement this because it was needed again and again, and we kept pasting the same list search one-liner. - Utilities now have access to the main PluginManager class
2022-04-07Added support for including styles/scripts in the header of html files (#29)ttay24
* Added support for including styles/scripts in the header of html files * updated route name
2022-04-07Moved install commands to new line to make them more readableWerWolv
2022-04-07Reinject loader if steam got restartedWerWolv
2022-04-07Fixed first plugin button being smaller than the other onesWerWolv
2022-04-07Prevent errors from being printed on first installWerWolv
2022-04-07Update readme to show install instructions (#28)TrainDoctor
this is for developers/testers
2022-04-06Tell curl to follow redirection in install commandWerWolv
2022-04-06Directly reference install script in install commandWerWolv
Closes #25
2022-04-06Change title when inside plugin viewtza
2022-04-06enabled logging, fixed loader refresh bug, removed templatetza
2022-04-06Feature/20 plugins as folders (#24)ttay24
* updated loader to watch directories correctly and pull in main.py; also made sure we pull in main.py; WIP on pulling in the template correctly * Making other changes to support pulling in templates from other pages
2022-04-06Disable scrolling for tile_view_iframe (#19)Spyrex
2022-04-06Set tile_view_iframe overflow hidden (#18)Spyrex
2022-04-05added plugin tile view isolationtza
Tile views will now run each in their own iframe. This makes it more safe as plugins no longer share the same javascript context, and plugin method calls can now be supported from the tile view.
2022-04-04hot reload now refreshes iframetza
also fixed fetch_nocors
2022-04-04Updated installation guideWerWolv
2022-04-04Added release and nightly download scriptsWerWolv
2022-04-04Added discord linkv1.0.0marios
2022-04-04Merge branch 'main' of https://github.com/SteamDeckHomebrew/PluginLoadertza
2022-04-04hot reloading, plugin instantiation, plugin main methodtza
- The Loader now watches for file changes in the plugin directory, and will (re)import when a new plugin is created, or an existing one is modified. This is implemented by means of the watchdog library - Plugin classes are now instantiated (and therefore require a self arg in every method). This way they can maintain a state during the runtime of the loader (or until they are reloaded), and share data between methods. - Plugins can now have a __main() method, which can include long-running code. Every plugin's main method is ran in a separate asyncio task. - Plugin methods that start from __ are now uncallable from javascript. This can be helpful when implementing unfinished/development versions of methods.
2022-04-04note it needing touchscreen input (#13)Liam Dawe
As mentioned in issues, feels like an area that might need other things adding to it as issues are found :)
2022-04-04Missing equals sign for WorkingDirectory (#9)Liam Dawe
2022-04-04Added packager GitHub Actions workflowWerWolv
2022-04-04fixed tile view not displaying and added library js to iframe roottza
2022-04-03No longer wip, no longer plugin managerWerWolv
2022-04-03Python rewrite (#6)marios
* Initial commit. Untested * various fixes Core functionality confirmed working: - Iframe injection into steam client - Plugin fetching from the iframe - Plugin opening * Added function to fetch resources from steam * Improved injector module, added server-js communication - Injector module now has methods for better lower-level manipulation of the tab debug websocket. - Our "front-end" can now communicate with the manager (2-way), completely bypassing the chromium sandbox. This works via a dirty debug console trick, whoever wants to know how it works can take a look at the code. - Added utility methods file, along with an implementation of the aiohttp client that our "front-end" can access, via the system described above. - Added js implementations of the communication system described above, which can be imported by plugins. * Added steam_resource endpoint * Added basic installer script * retry logic bug fix * fixed library injection, event propagation, websocket handling - library is injected directly into the plugins as well as the plugin list - resolveMethodCall is implemented in the plugin_list.js file, which in turns calls window.sendMessage on the iframe to propagate the event - websocket method calls are processed in their own tasks now, so as not to block on long-running calls. Co-authored-by: tza <tza@hidden> Co-authored-by: WerWolv <werwolv98@gmail.com>
2022-04-02git: Removed old funding infoWerWolv
2022-04-01git: Added licenseWerWolv
2022-03-31sys: Added commentsWerWolv
2022-03-31git: Added funding fileWerWolv
2022-03-31plugin: Added template pluginWerWolv
2022-03-31serv: Added systemd service fileWerWolv
2022-03-31git: Added proper readmeWerWolv