Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/modules/user/__init__.py

42 lines
1.5 KiB
Python
Raw Normal View History

2021-08-01 14:26:55 +00:00
import re
from core.elements import Plain, Image, MessageSession
from core.loader.decorator import command
2021-08-07 07:56:48 +00:00
from modules.wiki.dbutils import WikiTargetInfo
2021-08-01 14:26:55 +00:00
from .userlib import GetUser
@command('user', ['u'], ('~user <username> [-r | -p] {获取一个MediaWiki用户的信息。-r - 获取详细信息。-p - 生成一张图片。)}'))
async def user(msg: MessageSession):
mode = None
metaurl = None
username = None
if msg.parsed_msg['-r'] is True:
mode = '-r'
if msg.parsed_msg['-p'] is True:
mode = '-p'
get_url = WikiTargetInfo(msg).get_start_wiki()
if get_url:
metaurl = get_url
username = msg.parsed_msg['<username>']
else:
await msg.sendMessage('未设置起始wiki且没有提供Interwiki。')
match_interwiki = re.match(r'(.*?):(.*)', username)
if match_interwiki:
get_iw = WikiTargetInfo(msg).get_interwikis()
if get_iw and match_interwiki.group(1) in get_iw:
metaurl = get_iw
username = match_interwiki.group(2)
result = await GetUser(metaurl, username, mode)
if result:
matchimg = re.match('.*\[\[uimgc:(.*)]]', result)
if matchimg:
imgchain = [Image(path=matchimg.group(1))]
result = re.sub('\[\[uimgc:.*]]', '', result)
msgchain = [Plain(result)]
msgchain = msgchain.append(imgchain)
else:
msgchain = [Plain(result)]
await msg.sendMessage(msgchain)