| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import asyncio, json, random
- import sys
- # import lib.config
- from lib.net import Channel
- async def create_channel():
- # server_name = lib.config.get("server", "localhost")
- server_name = "localhost"
- reader, writer = await asyncio.open_connection(server_name, 23341)
- channel = Channel(reader, writer)
- return channel
- def random_id():
- return random.randint(0, 2**32)
- async def query(method, params):
- channel = await create_channel()
- request = {
- "id": random_id(),
- "method": method,
- "params": params,
- "jsonrpc": "2.0",
- }
- await channel.send(request)
- response = await channel.receive()
- # Closed connect returns None
- if response is None:
- print("error: connection with server was closed", file=sys.stderr)
- sys.exit(-1)
- if "error" in response:
- error = response["error"]
- errcode, errmsg = error["code"], error["message"]
- print(f"error: {errcode} - {errmsg}", file=sys.stderr)
- sys.exit(-1)
- return response["result"]
- async def get_info():
- return await query("get_info", [])
- async def add_task(task):
- return await query("add", [task])
- async def get_ref_ids():
- return await query("get_ref_ids", [])
- async def fetch_task(refid):
- return await query("get_task_by_ref_id", [refid])
- async def change_task_status(refid, status):
- await query("set_state", [refid, status])
- return True
- async def modify_task(refid, changes):
- return await query("modify", [refid, changes])
- async def fetch_active_tasks():
- return await query("fetch_active_tasks", [])
- async def fetch_deactive_tasks(month):
- return await query("fetch_deactive_tasks", [month])
- async def fetch_archive_task(task_refid, month):
- return await query("fetch_archive_task", [task_refid, month])
- async def add_task_comment(refid, comment):
- await query("set_comment", [refid, comment])
- return True
|