add cytoid profile
This commit is contained in:
parent
b92d813f2f
commit
2288414a0f
3 changed files with 60 additions and 2 deletions
|
@ -1,8 +1,8 @@
|
|||
import aiohttp
|
||||
|
||||
|
||||
async def get_url(url: str):
|
||||
async def get_url(url: str, headers=None):
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20)) as req:
|
||||
async with session.get(url, timeout=aiohttp.ClientTimeout(total=20), headers=headers) as req:
|
||||
text = await req.text()
|
||||
return text
|
||||
|
|
13
modules/cytoid/__init__.py
Normal file
13
modules/cytoid/__init__.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
import re
|
||||
from .profile import cytoid_profile
|
||||
|
||||
async def cytoid(kwargs: dict):
|
||||
command = kwargs['trigger_msg']
|
||||
command = re.sub('cytoid ', '', command)
|
||||
command_split = command.split(' ')
|
||||
if command_split[0] == 'profile':
|
||||
kwargs['trigger_msg'] = re.sub('profile ', '', command)
|
||||
await cytoid_profile(kwargs)
|
||||
|
||||
|
||||
command = {'cytoid': cytoid}
|
45
modules/cytoid/profile.py
Normal file
45
modules/cytoid/profile.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
import json
|
||||
|
||||
import re
|
||||
|
||||
from core.template import sendMessage
|
||||
from core.utils import get_url
|
||||
from graia.application.message.elements.internal import Plain, Image, UploadMethods
|
||||
from graia.application import MessageChain, Group, Friend
|
||||
|
||||
|
||||
async def cytoid_profile(kwargs: dict):
|
||||
if Group in kwargs:
|
||||
mth = UploadMethods.Group
|
||||
if Friend in kwargs:
|
||||
mth = UploadMethods.Friend
|
||||
name = kwargs['trigger_msg']
|
||||
profile_url = 'http://services.cytoid.io/profile/' + name
|
||||
profile = json.loads(await get_url(profile_url))
|
||||
uid = profile['user']['uid']
|
||||
nick = profile['user']['name']
|
||||
if nick is None:
|
||||
nick = False
|
||||
avatar = profile['user']['avatar']['large']
|
||||
basicExp = profile['exp']['basicExp']
|
||||
levelExp = profile['exp']['levelExp']
|
||||
totalExp = profile['exp']['totalExp']
|
||||
currentLevel = profile['exp']['currentLevel']
|
||||
nextLevelExp = profile['exp']['nextLevelExp']
|
||||
rating = profile['exp']['rating']
|
||||
grade = profile['grade']
|
||||
grade = f'A: {grade["A"]}, B: {grade["B"]}, C: {grade["C"]}, D: {grade["D"]}, F: {grade["F"]}, S: {grade["S"]}, SS: {grade["SS"]}'
|
||||
text = f'UID: {uid}\n' +\
|
||||
(f'Nickname: {nick}\n' if nick else '') +\
|
||||
f'BasicExp: {basicExp}\n' +\
|
||||
f'LevelExp: {levelExp}\n' +\
|
||||
f'TotalExp: {totalExp}\n' +\
|
||||
f'CurrentLevel: {currentLevel}\n' +\
|
||||
f'NextLevelExp: {nextLevelExp}\n' +\
|
||||
f'Rating: {rating}\n' +\
|
||||
f'Grade: {grade}'
|
||||
msg = MessageChain.create([Image.fromNetworkAddress(avatar, method=mth), Plain(text)])
|
||||
await sendMessage(kwargs, msg)
|
||||
|
||||
|
||||
|
Reference in a new issue