summaryrefslogtreecommitdiff
path: root/plugin_loader/utilities.py
blob: a1785c15d4ccf707731ba2a02fc50801ec19b93b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
            }