import aiohttp import logging from lbrynet.conf import Config log = logging.getLogger(__name__) USER_AGENT = "AuthServiceProxy/0.1" TWISTED_SECURE_SESSION = "TWISTED_SECURE_SESSION" TWISTED_SESSION = "TWISTED_SESSION" LBRY_SECRET = "LBRY_SECRET" HTTP_TIMEOUT = 30 class JSONRPCException(Exception): def __init__(self, rpc_error): super().__init__() self.error = rpc_error async def daemon_rpc(conf: Config, method: str, *args, **kwargs): async with aiohttp.ClientSession() as session: message = {'method': method, 'params': [args, kwargs]} async with session.get(conf.api_connection_url, json=message) as resp: data = await resp.json() if 'result' in data: return data['result'] elif 'error' in data: raise JSONRPCException(data['error'])