mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-13 04:05:04 +03:00
5a633fdd82
* fix: get rid of title view jank on latest beta * Count the number of installs for each plugin (#557) * Bump aiohttp from 3.8.4 to 3.8.5 in /backend (#558) * fix: include Decky version in request for index.js This avoids the If-Modified-Since logic in aiohttp and ensures Steam doesn't cache old JS, even if the timestamps are normalized. * fix: clean up shellcheck warnings in act runner script * fix: gitignore settings/ * fix: ensure state directories exist when running without the installer * feat: determine root directory correctly when running from in-tree * fix: fix typo in CI script * refactor: build a proper Python package with poetry * refactor: move decky_plugin under the poetry structure There's no need to special case it anymore, just treat it like any other Python module. * sandboxed_plugin: better fix, attempt 2 --------- Co-authored-by: AAGaming <aagaming@riseup.net> Co-authored-by: Party Wumpus <48649272+PartyWumpus@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
29 lines
817 B
Python
29 lines
817 B
Python
from typing import Any, TypedDict
|
|
from uuid import uuid4
|
|
from asyncio import Event
|
|
|
|
class SocketResponseDict(TypedDict):
|
|
id: str
|
|
success: bool
|
|
res: Any
|
|
|
|
class MethodCallResponse:
|
|
def __init__(self, success: bool, result: Any) -> None:
|
|
self.success = success
|
|
self.result = result
|
|
|
|
class MethodCallRequest:
|
|
def __init__(self) -> None:
|
|
self.id = str(uuid4())
|
|
self.event = Event()
|
|
self.response: MethodCallResponse
|
|
|
|
def set_result(self, dc: SocketResponseDict):
|
|
self.response = MethodCallResponse(dc["success"], dc["res"])
|
|
self.event.set()
|
|
|
|
async def wait_for_result(self):
|
|
await self.event.wait()
|
|
if not self.response.success:
|
|
raise Exception(self.response.result)
|
|
return self.response.result |