Commit Graph

39 Commits

Author SHA1 Message Date
tza 2045bedee3 plugin title bug fix v1.1.0 2022-04-08 13:47:06 +03:00
tza e35dd5a028 plugin menu title change bug
Fixed a bug where steam would sometimes fire message events on its own, causing them to be displayed as plugin titles.
2022-04-07 23:22:23 +03:00
tza c65427e693 initial browser/installer commit, injector get_tab and stateful utils
- 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-07 22:38:26 +03:00
ttay24 0f14f2707b Added support for including styles/scripts in the header of html files (#29)
* Added support for including styles/scripts in the header of html files

* updated route name
2022-04-07 20:25:03 +03:00
WerWolv 2188aa0343 Moved install commands to new line to make them more readable 2022-04-07 10:20:25 +02:00
WerWolv 3dec82672a Reinject loader if steam got restarted 2022-04-07 09:58:26 +02:00
WerWolv a3619d1d3a Fixed first plugin button being smaller than the other ones 2022-04-07 09:08:28 +02:00
WerWolv 3a39c88144 Prevent errors from being printed on first install 2022-04-07 01:17:22 +02:00
TrainDoctor 8c0bb20d05 Update readme to show install instructions (#28)
this is for developers/testers
2022-04-07 00:18:42 +02:00
WerWolv 90bd7df52c Tell curl to follow redirection in install command 2022-04-06 20:10:05 +02:00
WerWolv 6644827094 Directly reference install script in install command
Closes #25
2022-04-06 20:07:58 +02:00
tza fe53bcf127 Change title when inside plugin view 2022-04-06 13:57:21 +03:00
tza a6943dd7a2 enabled logging, fixed loader refresh bug, removed template 2022-04-06 12:53:19 +03:00
ttay24 85e5554c05 Feature/20 plugins as folders (#24)
* 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-06 12:40:11 +03:00
Spyrex 8e315fd24d Disable scrolling for tile_view_iframe (#19) 2022-04-06 01:42:15 +03:00
Spyrex 3d0c3ef86f Set tile_view_iframe overflow hidden (#18) 2022-04-06 00:29:17 +03:00
tza 30325397d0 added plugin tile view isolation
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-05 22:40:24 +03:00
tza 8d0fe5c45a hot reload now refreshes iframe
also fixed fetch_nocors
2022-04-04 20:46:35 +03:00
WerWolv 1d4100fabb Updated installation guide 2022-04-04 19:17:20 +02:00
WerWolv 0c58ca50fa Added release and nightly download scripts 2022-04-04 19:12:57 +02:00
marios 4d2ab9d19c Added discord link v1.0.0 2022-04-04 19:13:07 +03:00
tza 50382ad3d2 Merge branch 'main' of https://github.com/SteamDeckHomebrew/PluginLoader 2022-04-04 18:10:06 +03:00
tza 8c142c01bd hot reloading, plugin instantiation, plugin main method
- 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-04 18:10:02 +03:00
Liam Dawe a52399cc00 note it needing touchscreen input (#13)
As mentioned in issues, feels like an area that might need other things adding to it as issues are found :)
2022-04-04 14:33:14 +03:00
Liam Dawe 1bc353fded Missing equals sign for WorkingDirectory (#9) 2022-04-04 12:01:32 +02:00
WerWolv cbf46b950a Added packager GitHub Actions workflow 2022-04-04 11:39:30 +02:00
tza 449933ec2f fixed tile view not displaying and added library js to iframe root 2022-04-04 03:46:22 +03:00
WerWolv f1e47767c8 No longer wip, no longer plugin manager 2022-04-03 23:18:18 +02:00
marios 5e9c12bac8 Python rewrite (#6)
* 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-03 23:50:26 +03:00
WerWolv fb6f55a44d git: Removed old funding info 2022-04-02 15:40:10 +02:00
WerWolv 88e779db88 git: Added license 2022-04-01 16:50:41 +02:00
WerWolv 4caa8deb22 sys: Added comments 2022-03-31 16:09:56 +02:00
WerWolv 93fe5a7893 git: Added funding file 2022-03-31 16:03:27 +02:00
WerWolv 661e9aac7d plugin: Added template plugin 2022-03-31 15:55:40 +02:00
WerWolv 545c322594 serv: Added systemd service file 2022-03-31 15:52:33 +02:00
WerWolv 9bebfdf4fc git: Added proper readme 2022-03-31 15:48:20 +02:00
WerWolv 4c5ca4e567 sys: Added basic plugin loader 2022-03-31 15:28:40 +02:00
WerWolv a38e03094b sys: Added initial code injection logic 2022-03-31 08:31:03 +02:00
WerWolv 807acfa8b4 Initial commit 2022-03-31 08:29:28 +02:00