jaken/jaken/rpc.py

31 lines
846 B
Python

import aiomas
from jaken.soul import SoulClient, Card
class SoulServer:
router = aiomas.rpc.Service()
def __init__(self):
self.soul_client = SoulClient()
async def connect(self):
await self.soul_client.connect()
@router.expose
async def search_cards(self, search_term, tier=None):
r = await self.soul_client.call("cardindex", {"search": search_term, "category": tier})
cards = [Card(doc).to_dict() for doc in r['data']['docs']]
return cards
@router.expose
async def get_card(self, card_id, with_users=False):
r = await self.soul_client.call("cardview", {"cardid": card_id})
card = Card(r['card']).to_dict()
users = r['users']
if with_users:
return dict(card=card, users=users)
else:
return dict(card=card)