Files
decky-loader/plugin_loader/utilities.py

41 lines
1.2 KiB
Python

from aiohttp import ClientSession
from injector import inject_to_tab
class Utilities:
def __init__(self, context) -> None:
self.context = context
self.util_methods = {
"ping": self.ping,
"http_request": self.http_request,
"confirm_plugin_install": self.confirm_plugin_install,
"execute_in_tab": self.execute_in_tab
}
async def confirm_plugin_install(self, request_id):
return await self.context.plugin_browser.confirm_plugin_install(request_id)
async def http_request(self, method="", url="", **kwargs):
async with ClientSession() as web:
res = await web.request(method, url, **kwargs)
return {
"status": res.status,
"headers": dict(res.headers),
"body": await res.text()
}
async def ping(self, **kwargs):
return "pong"
async def execute_in_tab(self, tab, run_async, code):
try:
return {
"success": True,
"result" : await inject_to_tab(tab, code, run_async)
}
except Exception as e:
return {
"success": False,
"result": e
}