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/wiki/__init__.py

457 lines
23 KiB
Python
Raw Normal View History

2020-08-12 16:01:34 +00:00
import re
2021-02-01 15:13:11 +00:00
from graia.application import MessageChain
from graia.application.friend import Friend
from graia.application.group import Group, Member
from graia.application.message.elements.internal import Image, Voice
2021-02-01 15:13:11 +00:00
from graia.application.message.elements.internal import Plain
import modules.wiki.wikilib
from core.template import sendMessage, check_permission, wait_confirm, revokeMessage, Nudge, download_to_cache, \
slk_converter
2021-03-21 08:14:28 +00:00
from database import BotDB
from modules.wiki.database import WikiDB
2021-02-01 15:13:11 +00:00
from modules.wiki.helper import check_wiki_available
from .getinfobox import get_infobox_pic
2020-08-12 16:01:34 +00:00
2021-02-01 15:13:11 +00:00
async def wiki_loader(kwargs: dict):
2021-03-21 05:00:17 +00:00
kwargs['trigger_msg'] = cmd = re.sub(r'^wiki ', '', kwargs['trigger_msg'])
cmd = cmd.split(' ')
if isinstance(cmd, list):
if len(cmd) > 1:
if cmd[0] == 'set':
kwargs['trigger_msg'] = cmd[1]
await set_start_wiki(kwargs)
2021-04-02 16:35:26 +00:00
elif cmd[0] == 'iw':
2021-03-21 05:00:17 +00:00
kwargs['trigger_msg'] = ' '.join(cmd[1:])
await interwiki(kwargs)
2021-04-02 16:35:26 +00:00
elif cmd[0] == 'headers':
2021-03-21 05:00:17 +00:00
kwargs['trigger_msg'] = ' '.join(cmd[1:])
await set_headers(kwargs)
2021-04-02 16:35:26 +00:00
else:
await wiki_wrapper(kwargs)
2021-03-21 12:39:43 +00:00
else:
await wiki_wrapper(kwargs)
2021-03-21 05:00:17 +00:00
else:
await wiki_wrapper(kwargs)
async def wiki_wrapper(kwargs: dict):
2021-02-01 15:13:11 +00:00
command = kwargs['trigger_msg']
if Group in kwargs:
start_table = 'start_wiki_link_group'
2021-03-21 05:00:17 +00:00
headtable = 'request_headers_group'
headtarget = kwargs[Group].id
2021-02-01 15:13:11 +00:00
if Friend in kwargs:
start_table = 'start_wiki_link_self'
2021-03-21 05:00:17 +00:00
headtable = 'request_headers_self'
headtarget = kwargs[Friend].id
2021-04-08 12:50:56 +00:00
headers = WikiDB.config_headers('get', headtable, headtarget)
2021-02-16 07:29:17 +00:00
prompt = False
2021-04-08 12:50:56 +00:00
get_link = WikiDB.get_start_wiki(start_table, kwargs[Group].id)
2021-02-01 15:13:11 +00:00
if not get_link:
if Group in kwargs:
2021-02-16 07:29:17 +00:00
prompt = '没有指定起始Wiki已默认指定为中文Minecraft Wiki管理员可以在群内发送~wiki_start_site <域名>来设定自定义起始Wiki。' \
2021-03-21 05:12:52 +00:00
'\n例子:~wiki set https://minecraft-zh.gamepedia.com/'
2021-04-08 12:50:56 +00:00
WikiDB.add_start_wiki('start_wiki_link_group', kwargs[Group].id,
'https://minecraft-zh.gamepedia.com/api.php')
2021-02-16 07:29:17 +00:00
elif Friend in kwargs:
prompt = '没有指定起始Wiki已默认指定为中文Minecraft Wiki可以发送~wiki_start_site <域名>来设定自定义起始Wiki。' \
2021-03-21 05:12:52 +00:00
'\n例子:~wiki set https://minecraft-zh.gamepedia.com/'
2021-04-08 12:50:56 +00:00
WikiDB.add_start_wiki('start_wiki_link_self', kwargs[Friend].id,
'https://minecraft-zh.gamepedia.com/api.php')
2021-02-16 07:35:36 +00:00
get_link = 'https://minecraft-zh.gamepedia.com/api.php'
2021-02-16 07:29:17 +00:00
iw = None
co = False
if Group in kwargs:
2021-04-08 12:50:56 +00:00
check_gamepedia_addon_enable = BotDB.check_enable_modules(kwargs[Group].id,
'wiki_gamepedia_addon')
2021-02-16 07:29:17 +00:00
if Friend in kwargs:
2021-04-08 12:50:56 +00:00
check_gamepedia_addon_enable = BotDB.check_enable_modules_self(kwargs[Group].id,
'wiki_gamepedia_addon')
2021-02-16 07:29:17 +00:00
if check_gamepedia_addon_enable:
matchsite = re.match(r'~(.*?) (.*)', command)
if matchsite:
get_link = 'https://' + matchsite.group(1) + '.gamepedia.com/api.php'
iw = 'gp:' + matchsite.group(1)
co = True
command = matchsite.group(2)
matchgp = re.match(r'^gp:(.*?):(.*)', command)
if matchgp:
get_link = 'https://' + matchgp.group(1) + '.gamepedia.com/api.php'
iw = 'gp:' + matchgp.group(1)
co = True
command = matchsite.group(2)
if Group in kwargs:
2021-04-08 12:50:56 +00:00
check_fandom_addon_enable = BotDB.check_enable_modules(kwargs[Group].id,
'wiki_fandom_addon')
2021-02-16 07:29:17 +00:00
if Friend in kwargs:
2021-04-08 12:50:56 +00:00
check_fandom_addon_enable = BotDB.check_enable_modules_self(kwargs[Group].id,
'wiki_fandom_addon')
2021-02-16 07:29:17 +00:00
if check_fandom_addon_enable:
matchsite = re.match(r'\?(.*?) (.*)', command)
if matchsite:
get_link = 'https://' + matchsite.group(1) + '.fandom.com/api.php'
iw = 'fd:' + matchsite.group(1)
co = True
command = matchsite.group(2)
matchfd = re.match(r'^fd:(.*?):(.*)', command)
if matchfd:
get_link = 'https://' + matchfd.group(1) + '.fandom.com/api.php'
iw = 'fd:' + matchfd.group(1)
co = True
command = matchsite.group(2)
2021-02-19 05:29:22 +00:00
matchinterwiki = re.match(r'(.*?):(.*)', command)
2021-03-01 12:11:39 +00:00
if matchinterwiki:
if matchinterwiki.group(1) == 'w':
matchinterwiki = re.match(r'(.*?):(.*)', matchinterwiki.group(2))
if matchinterwiki:
if matchinterwiki.group(1) == 'c':
matchinterwiki = re.match(r'(.*?):(.*)', matchinterwiki.group(2))
if matchinterwiki:
interwiki_split = matchinterwiki.group(1).split('.')
if len(interwiki_split) == 2:
get_link = f'https://{interwiki_split[1]}.fandom.com/api.php'
command = interwiki_split[0] + ':' + matchinterwiki.group(2)
iw = interwiki_split[0]
else:
get_link = f'https://{matchinterwiki.group(1)}.fandom.com/api.php'
command = matchinterwiki.group(2)
iw = matchinterwiki.group(1)
co = True
2021-02-16 07:29:17 +00:00
print(co)
matchinterwiki = re.match(r'(.*?):(.*)', command)
if matchinterwiki and not co:
2021-02-01 15:13:11 +00:00
if Group in kwargs:
2021-04-08 12:50:56 +00:00
get_custom_iw = WikiDB.get_custom_interwiki('custom_interwiki_group', kwargs[Group].id,
matchinterwiki.group(1))
2021-02-10 15:14:47 +00:00
if Friend in kwargs:
2021-04-08 12:50:56 +00:00
get_custom_iw = WikiDB.get_custom_interwiki('custom_interwiki_self', kwargs[Friend].id,
matchinterwiki.group(1))
2021-02-16 07:29:17 +00:00
if get_custom_iw:
iw = matchinterwiki.group(1)
get_link = get_custom_iw
command = re.sub(matchinterwiki.group(1) + ':', '', command)
2021-03-21 12:33:05 +00:00
if command == 'random':
msg = await wikilib.wikilib().random_page(get_link, iw=iw, headers=headers)
else:
msg = await wikilib.wikilib().main(get_link, command, interwiki=iw, headers=headers)
2021-02-16 07:29:17 +00:00
if msg['status'] == 'done':
2021-02-19 12:20:00 +00:00
msgchain = MessageChain.create(
[Plain((prompt + '\n' if prompt else '') + (msg['url'] + '\n' if 'url' in msg else '') + msg['text'])])
2021-02-16 07:29:17 +00:00
if 'net_image' in msg:
try:
imgchain = MessageChain.create([Image.fromNetworkAddress(msg['net_image'])])
2021-02-16 07:29:17 +00:00
msgchain = msgchain.plusWith(imgchain)
except:
pass
await sendMessage(kwargs, msgchain)
if 'apilink' in msg:
get_link = msg['apilink']
if 'url' in msg:
2021-04-08 12:50:56 +00:00
check_options = BotDB.check_enable_modules_self(kwargs[Member].id if Group in kwargs else kwargs[Friend].id,
'wiki_infobox')
2021-02-16 07:29:17 +00:00
print(check_options)
if check_options:
2021-03-21 05:00:17 +00:00
pic = await get_infobox_pic(get_link, msg['url'], headers)
imgchain = MessageChain.create([Image.fromLocalFile(pic)])
2021-02-16 07:29:17 +00:00
await sendMessage(kwargs, imgchain)
2021-02-10 15:14:47 +00:00
2021-02-16 07:29:17 +00:00
elif msg['status'] == 'wait':
await sendMessage(kwargs, MessageChain.create([Plain(msg['text'])]))
wait = await wait_confirm(kwargs)
if wait:
msg = await wikilib.wikilib().main(get_link, msg['title'])
await sendMessage(kwargs, MessageChain.create([Plain((prompt + '\n' if prompt else '') + msg['title'])]))
elif msg['status'] == 'warn':
2021-02-10 15:14:47 +00:00
if Group in kwargs:
2021-02-16 07:29:17 +00:00
trigger = kwargs[Member].id
2021-02-10 15:14:47 +00:00
if Friend in kwargs:
2021-02-16 07:29:17 +00:00
trigger = kwargs[Friend].id
2021-04-08 12:50:56 +00:00
BotDB.warn_someone(trigger)
2021-02-16 07:29:17 +00:00
await sendMessage(kwargs, MessageChain.create([Plain((prompt + '\n' if prompt else '') + msg['text'])]))
2021-02-01 15:13:11 +00:00
async def set_start_wiki(kwargs: dict):
2021-03-21 05:00:17 +00:00
command = kwargs['trigger_msg']
command = re.sub(r'^wiki_start_site ', '', command)
2021-02-01 15:13:11 +00:00
if Group in kwargs:
if check_permission(kwargs):
check = await check_wiki_available(command)
if check:
2021-04-08 12:50:56 +00:00
result = WikiDB.add_start_wiki('start_wiki_link_group', kwargs[Group].id, check[0])
2021-02-01 15:13:11 +00:00
await sendMessage(kwargs, MessageChain.create([Plain(result + check[1])]))
else:
result = '错误此Wiki不是一个有效的MediaWiki/尝试建立连接超时。'
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
2020-09-09 14:57:25 +00:00
else:
2021-02-01 15:13:11 +00:00
result = '你没有使用该命令的权限。'
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
if Friend in kwargs:
check = await check_wiki_available(command)
if check:
2021-04-08 12:50:56 +00:00
result = WikiDB.add_start_wiki('start_wiki_link_self', kwargs[Friend].id, check[0])
2021-02-01 15:13:11 +00:00
await sendMessage(kwargs, MessageChain.create([Plain(result + check[1])]))
else:
result = '错误此Wiki不是一个有效的MediaWiki/尝试建立连接超时。'
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
async def interwiki(kwargs: dict):
command = kwargs['trigger_msg']
command = re.sub(r'^interwiki ', '', command)
command = command.split(' ')
2021-03-21 05:00:17 +00:00
print(command)
2021-02-01 15:13:11 +00:00
if Group in kwargs:
check = check_permission(kwargs)
2021-02-18 11:44:00 +00:00
if not check:
2021-02-01 15:13:11 +00:00
result = '你没有使用该命令的权限。'
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
2021-02-18 11:44:00 +00:00
return
table = 'custom_interwiki_group'
target = kwargs[Group].id
2021-02-01 15:13:11 +00:00
if Friend in kwargs:
2021-02-18 11:44:00 +00:00
table = 'custom_interwiki_self'
target = kwargs[Friend].id
if command[0] == 'add':
2021-03-21 05:00:17 +00:00
command = ' '.join(command[1:])
2021-02-18 11:44:00 +00:00
command = re.sub(' ', '>', command)
iw = command.split('>')
try:
check = await check_wiki_available(iw[1])
except:
2021-03-21 05:12:52 +00:00
await sendMessage(kwargs, '错误:命令不合法:~wiki iw add <interwiki> <url>')
2021-02-18 11:44:00 +00:00
return
if check:
2021-04-08 12:50:56 +00:00
result = WikiDB.config_custom_interwiki('add', table, target, iw[0],
check[0])
2021-03-21 05:00:17 +00:00
await sendMessage(kwargs, MessageChain.create([Plain(result + f'{iw[0]} > {check[1]}')]))
2021-02-18 11:44:00 +00:00
else:
result = '错误此Wiki不是一个有效的MediaWiki/尝试建立连接超时。'
link = re.match(r'^(https?://).*', iw[1])
if not link:
result = '错误所给的链接没有指明协议头链接应以http://或https://开头)。'
article = re.match(r'.*/wiki/', iw[1])
if article:
result += '\n提示:所给的链接似乎是文章地址(/wiki/请将文章地址去掉或直接指定api地址后再试。'
2021-02-01 15:13:11 +00:00
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
2021-02-18 11:44:00 +00:00
elif command[0] == 'del':
2021-04-08 12:50:56 +00:00
result = WikiDB.config_custom_interwiki('del', table, target, command[1])
2021-02-18 11:44:00 +00:00
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
elif command[0] == 'list':
2021-04-08 12:50:56 +00:00
query_database = WikiDB.get_custom_interwiki_list(table, target)
2021-02-18 11:44:00 +00:00
if query_database:
result = '当前设置了以下Interwiki\n' + query_database
await sendMessage(kwargs, result)
2020-09-17 12:05:44 +00:00
else:
2021-03-21 05:12:52 +00:00
await sendMessage(kwargs, '当前没有设置任何Interwiki使用~wiki iw add <interwiki> <wikilink>添加一个。')
2021-02-18 11:44:00 +00:00
else:
await sendMessage(kwargs, '命令不合法参数应为add/del/list。')
2021-02-01 15:13:11 +00:00
2021-03-21 05:00:17 +00:00
async def set_headers(kwargs: dict):
command = kwargs['trigger_msg']
command = command.split(' ')
if Group in kwargs:
check = check_permission(kwargs)
if not check:
result = '你没有使用该命令的权限。'
await sendMessage(kwargs, MessageChain.create([Plain(result)]))
return
table = 'request_headers_group'
id = kwargs[Group].id
if Friend in kwargs:
table = 'request_headers_self'
id = kwargs[Friend].id
do = command[0]
if do == 'show':
2021-04-08 12:50:56 +00:00
headers = WikiDB.config_headers(do, table, id)
2021-03-21 05:00:17 +00:00
msg = f'当前设置了以下标头:\n{headers}\n如需自定义,请使用~wiki headers <set> <headers>,不同标头之间使用换行隔开。'
else:
2021-04-08 12:50:56 +00:00
msg = WikiDB.config_headers(do, table, id, ' '.join(command[1:]))
2021-03-21 05:00:17 +00:00
await sendMessage(kwargs, msg)
2021-02-01 15:13:11 +00:00
async def regex_wiki(kwargs: dict):
display = kwargs[MessageChain].asDisplay()
async def regex_proc(kwargs: dict, display):
mains = re.findall(r'\[\[(.*?)\]\]', display, re.I)
templates = re.findall(r'\{\{(.*?)\}\}', display, re.I)
find_dict = {}
global_status = 'done'
for main in mains:
2021-02-14 15:25:39 +00:00
if main == '' or main in find_dict or main.find("{") != -1:
2021-02-01 15:13:11 +00:00
pass
else:
find_dict.update({main: 'main'})
for template in templates:
2021-02-14 15:25:39 +00:00
if template == '' or template in find_dict or template.find("{") != -1:
2021-02-01 15:13:11 +00:00
pass
2020-09-17 12:05:44 +00:00
else:
2021-02-01 15:13:11 +00:00
find_dict.update({template: 'template'})
if find_dict != {}:
2021-03-27 15:33:59 +00:00
await Nudge(kwargs)
2021-02-01 15:13:11 +00:00
waitlist = []
imglist = []
audlist = []
2021-02-01 15:13:11 +00:00
urllist = {}
msglist = MessageChain.create([])
waitmsglist = MessageChain.create([])
if Group in kwargs:
table = 'start_wiki_link_group'
target = kwargs[Group].id
2021-03-21 05:00:17 +00:00
headtable = 'request_headers_group'
2021-02-01 15:13:11 +00:00
if Friend in kwargs:
table = 'start_wiki_link_self'
target = kwargs[Friend].id
2021-03-21 05:00:17 +00:00
headtable = 'request_headers_self'
2021-04-08 12:50:56 +00:00
headers = WikiDB.config_headers('get', headtable, target)
2021-02-01 15:13:11 +00:00
for find in find_dict:
if find_dict[find] == 'template':
template = True
else:
template = False
2021-04-08 12:50:56 +00:00
get_link = WikiDB.get_start_wiki(table, target)
2021-02-16 07:29:17 +00:00
prompt = False
2021-02-01 15:13:11 +00:00
if not get_link:
if Group in kwargs:
2021-03-21 05:12:52 +00:00
prompt = '没有指定起始Wiki已默认指定为中文Minecraft Wiki管理员可以在群内发送~wiki set <域名>来设定自定义起始Wiki。' \
2021-04-01 16:43:17 +00:00
'\n例子:~wiki_start_site https://minecraft.fandom.com/zh/'
2021-04-08 12:50:56 +00:00
WikiDB.add_start_wiki('start_wiki_link_group', kwargs[Group].id,
'https://minecraft.fandom.com/zh/api.php')
2021-02-16 07:29:17 +00:00
elif Friend in kwargs:
2021-03-21 05:12:52 +00:00
prompt = '没有指定起始Wiki已默认指定为中文Minecraft Wiki可以发送~wiki set <域名>来设定自定义起始Wiki。' \
2021-04-01 16:43:17 +00:00
'\n例子:~wiki_start_site https://minecraft.fandom.com/zh/'
2021-04-08 12:50:56 +00:00
WikiDB.add_start_wiki('start_wiki_link_self', kwargs[Friend].id,
'https://minecraft.fandom.com/zh/api.php')
2021-04-01 16:43:17 +00:00
get_link = 'https://minecraft.fandom.com/zh/api.php'
2021-02-16 07:29:17 +00:00
iw = None
matchinterwiki = re.match(r'(.*?):(.*)', find)
if matchinterwiki:
if Group in kwargs:
iw_table = 'custom_interwiki_group'
2021-02-01 15:13:11 +00:00
if Friend in kwargs:
2021-02-16 07:29:17 +00:00
iw_table = 'custom_interwiki_self'
2021-04-08 12:50:56 +00:00
get_custom_iw = modules.wiki.WikiDB.get_custom_interwiki(iw_table,
target,
matchinterwiki.group(1))
2021-02-16 07:29:17 +00:00
if get_custom_iw:
get_link = get_custom_iw
find = re.sub(matchinterwiki.group(1) + ':', '', find)
iw = matchinterwiki.group(1)
# fandom addon
if matchinterwiki.group(1) == 'w':
matchinterwiki = re.match(r'(.*?):(.*)', matchinterwiki.group(2))
if matchinterwiki:
if matchinterwiki.group(1) == 'c':
2021-04-08 12:50:56 +00:00
check_fandom_addon_enable = BotDB.check_enable_modules(kwargs[Group].id,
'wiki_fandom_addon')
2021-02-16 07:29:17 +00:00
if check_fandom_addon_enable:
matchinterwiki = re.match(r'(.*?):(.*)', matchinterwiki.group(2))
if matchinterwiki:
interwiki_split = matchinterwiki.group(1).split('.')
if len(interwiki_split) == 2:
get_link = f'https://{interwiki_split[1]}.fandom.com/api.php'
find = interwiki_split[0] + ':' + matchinterwiki.group(2)
iw = interwiki_split[0]
else:
get_link = f'https://{matchinterwiki.group(1)}.fandom.com/api.php'
find = matchinterwiki.group(2)
iw = matchinterwiki.group(1)
msg = await modules.wiki.wikilib.wikilib().main(get_link, find, interwiki=iw, template=template,
headers=headers)
2021-02-16 07:29:17 +00:00
status = msg['status']
text = (prompt + '\n' if prompt else '') + msg['text']
2021-02-17 10:26:41 +00:00
if status == 'wait':
global_status = 'wait'
waitlist.append(msg['title'])
waitmsglist = waitmsglist.plusWith(MessageChain.create(
2021-02-17 10:31:28 +00:00
[Plain(('\n' if waitmsglist != MessageChain.create([]) else '') + text)]))
2021-02-17 10:26:41 +00:00
if status == 'warn':
global_status = 'warn'
msglist = msglist.plusWith(MessageChain.create(
[Plain(('\n' if msglist != MessageChain.create([]) else '') + text)]))
if status == 'done':
msglist = msglist.plusWith(MessageChain.create([Plain(
('\n' if msglist != MessageChain.create([]) else '') + (
msg['url'] + '\n' if 'url' in msg else '') + text)]))
if 'net_image' in msg:
imglist.append(msg['net_image'])
if 'net_audio' in msg:
audlist.append(msg['net_audio'])
2021-02-17 10:26:41 +00:00
if 'apilink' in msg:
get_link = msg['apilink']
if 'url' in msg:
urllist.update({msg['url']: get_link})
if status is None:
msglist = msglist.plusWith(MessageChain.create([Plain('发生错误:机器人内部代码错误,请联系开发者解决。')]))
2021-02-01 15:13:11 +00:00
if msglist != MessageChain.create([]):
await sendMessage(kwargs, msglist)
if imglist != []:
imgchain = MessageChain.create([])
for img in imglist:
imgchain = imgchain.plusWith(MessageChain.create([Image.fromNetworkAddress(img)]))
2021-02-01 15:13:11 +00:00
await sendMessage(kwargs, imgchain)
if audlist != []:
for aud in audlist:
audchain = MessageChain.create(
[Voice().fromLocalFile(await slk_converter(await download_to_cache(aud)))])
await sendMessage(kwargs, audchain)
2021-02-01 15:13:11 +00:00
if urllist != {}:
print(urllist)
2021-04-08 12:50:56 +00:00
check_options = BotDB.check_enable_modules_self(
2021-02-01 15:13:11 +00:00
kwargs[Member].id if Group in kwargs else kwargs[Friend].id, 'wiki_infobox')
if check_options:
infoboxchain = MessageChain.create([])
for url in urllist:
get_infobox = await get_infobox_pic(urllist[url], url, headers)
2021-02-01 15:13:11 +00:00
if get_infobox:
infoboxchain = infoboxchain.plusWith(
MessageChain.create([Image.fromLocalFile(get_infobox)]))
2021-02-01 15:13:11 +00:00
if infoboxchain != MessageChain.create([]):
2021-02-03 07:40:17 +00:00
await sendMessage(kwargs, infoboxchain, Quote=False)
2021-02-01 15:13:11 +00:00
if global_status == 'warn':
if Group in kwargs:
trigger = kwargs[Member].id
if Friend in kwargs:
trigger = kwargs[Friend].id
2021-04-08 12:50:56 +00:00
BotDB.warn_someone(trigger)
2021-02-01 15:13:11 +00:00
if waitmsglist != MessageChain.create([]):
send = await sendMessage(kwargs, waitmsglist)
wait = await wait_confirm(kwargs)
if wait:
nwaitlist = []
for waits in waitlist:
waits1 = f'[[{waits}]]'
nwaitlist.append(waits1)
await regex_proc(kwargs, '\n'.join(nwaitlist))
else:
await revokeMessage(send)
await regex_proc(kwargs, display)
2020-08-07 06:19:34 +00:00
2021-02-01 15:13:11 +00:00
command = {'wiki': wiki_loader, 'wiki_start_site': set_start_wiki, 'interwiki': interwiki}
regex = {'wiki_regex': regex_wiki}
self_options = ['wiki_infobox']
options = ['wiki_fandom_addon', 'wiki_gamepedia_addon']
2021-03-21 05:12:52 +00:00
help = {'wiki': {'help': '~wiki [interwiki:]<pagename> - 查询Wiki内容。\n' +
'~wiki set <wikilink> - 设置起始查询Wiki。\n' +
'~wiki iw <add/del> <interwiki> <wikiurl> - 设置自定义Interwiki跨站查询。\n' +
'~wiki headers <set/reset/show> - 设置请求标头。'},
'wiki_start_site': {'help': '~wiki_start_site <wikilink> - 设置起始查询Wiki。'},
'interwiki': {
2021-03-21 05:12:52 +00:00
'help': '~interwiki <add/del> <interwiki> <wikiurl> - 设置自定义Interwiki跨站查询。'},
'wiki_regex': {'help': '[[<pagename>]]|{{<pagename>}} - 当聊天中出现此种Wikitext时进行自动查询。'},
'wiki_infobox': {
'help': 'Infobox渲染当被查询的页面包含Infobox时自动提取并渲染为图片发送。群聊默认开启且不可全局关闭个人可使用~disable self wiki_infobox关闭',
'depend': 'wiki'},
'wiki_fandom_addon': {
'help': '为Fandom定制的Wiki查询功能包含有[[w:c:<wikiname>:[langcode:]<pagename>]]的消息会自动定向查询至Fandom的Wiki。'},
'wiki_gamepedia_addon': {
'help': '为Gamepedia定制的查询功能输入~wiki ~<wikiname> <pagename>会自动定向查询至Gamepedia的Wiki。'}}