<feed xmlns='http://www.w3.org/2005/Atom'>
<title>decky-loader/requirements.txt, branch python-lint-format-test</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/'/>
<entry>
<title>Bump certifi from 2022.6.15 to 2022.12.7 (#345)</title>
<updated>2023-01-20T01:54:50+00:00</updated>
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<published>2023-01-20T01:54:50+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=cbbd56486070eab9a08253b2778fcd64877acd68'/>
<id>cbbd56486070eab9a08253b2778fcd64877acd68</id>
<content type='text'>
Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.6.15 to 2022.12.7.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2022.06.15...2022.12.07)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
Co-authored-by: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.6.15 to 2022.12.7.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2022.06.15...2022.12.07)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
Co-authored-by: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed plugin installation ssl verification issue (#101)</title>
<updated>2022-07-03T06:29:46+00:00</updated>
<author>
<name>WerWolv</name>
<email>werwolv98@gmail.com</email>
</author>
<published>2022-07-03T06:29:46+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=baa02c129fa5419405bcfd9b8740598be2d19f0f'/>
<id>baa02c129fa5419405bcfd9b8740598be2d19f0f</id>
<content type='text'>
* Added cert location debugging

* Install certifi

* Try adding manual cacert in install request

* Properly use ssl

* More efficiently load ssl certificate</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Added cert location debugging

* Install certifi

* Try adding manual cacert in install request

* Properly use ssl

* More efficiently load ssl certificate</pre>
</div>
</content>
</entry>
<entry>
<title>Work on react frontend loader</title>
<updated>2022-05-13T17:14:47+00:00</updated>
<author>
<name>Jonas Dellinger</name>
<email>jonas@dellinger.dev</email>
</author>
<published>2022-05-13T17:14:47+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=74438a31458af8bddd08d90eacc6d63677bab844'/>
<id>74438a31458af8bddd08d90eacc6d63677bab844</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Callsigns (#37)</title>
<updated>2022-04-18T12:57:51+00:00</updated>
<author>
<name>marios</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-18T12:57:51+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=fa776f0d0b7b4ca7071f0aa912be84e81caf6b61'/>
<id>fa776f0d0b7b4ca7071f0aa912be84e81caf6b61</id>
<content type='text'>
* Plugin callsigns, filechangehandler thread bug fix, plugin file perms

- Plugins are now assigned a callsign (a random string), which they use for all internal identification, like resource fetching and method calls. This is to ensure that plugins only access their own resources and methods.
- Made FileChangeHandler send off events to a queue, that is then consumed by the Loader, instead of calling import_plugin on its own, since that caused weird issues with the event loop and the thread watchdog is using.
- Plugins are now owned by root and have read-only permissions. This is handled automatically.

* Improved general look and feel of plugin tab

* Make all plugin entries have the same padding between them

* Make "No plugins installed" text look the same as "No new notifications"

Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Plugin callsigns, filechangehandler thread bug fix, plugin file perms

- Plugins are now assigned a callsign (a random string), which they use for all internal identification, like resource fetching and method calls. This is to ensure that plugins only access their own resources and methods.
- Made FileChangeHandler send off events to a queue, that is then consumed by the Loader, instead of calling import_plugin on its own, since that caused weird issues with the event loop and the thread watchdog is using.
- Plugins are now owned by root and have read-only permissions. This is handled automatically.

* Improved general look and feel of plugin tab

* Make all plugin entries have the same padding between them

* Make "No plugins installed" text look the same as "No new notifications"

Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Root plugins (#35)</title>
<updated>2022-04-12T23:14:44+00:00</updated>
<author>
<name>marios</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-12T23:14:44+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=e3d7b50bd91fa092a9d40be3ce016c330f9311ca'/>
<id>e3d7b50bd91fa092a9d40be3ce016c330f9311ca</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>hot reloading, plugin instantiation, plugin main method</title>
<updated>2022-04-04T15:10:02+00:00</updated>
<author>
<name>tza</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-04T15:10:02+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=8c142c01bda31a164cf5bacf5a7ae85366334a61'/>
<id>8c142c01bda31a164cf5bacf5a7ae85366334a61</id>
<content type='text'>
- 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Python rewrite (#6)</title>
<updated>2022-04-03T20:50:26+00:00</updated>
<author>
<name>marios</name>
<email>marios8543@gmail.com</email>
</author>
<published>2022-04-03T20:50:26+00:00</published>
<link rel='alternate' type='text/html' href='http://decky.mirror.aerocore.com.cn/SteamDeckHomebrew/decky-loader/commit/?id=5e9c12bac838730d4e216b3779227a9a94447e40'/>
<id>5e9c12bac838730d4e216b3779227a9a94447e40</id>
<content type='text'>
* 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 &lt;tza@hidden&gt;
Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;tza@hidden&gt;
Co-authored-by: WerWolv &lt;werwolv98@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
