Archived
1
0
Fork 0
This commit is contained in:
yzhh 2023-04-08 17:27:16 +08:00
commit f2db02f044
3 changed files with 46 additions and 50 deletions

View file

@ -17,7 +17,7 @@
"wiki.wiki_inline.help.desc": "开启后将自动解析消息中带有的[[]]或{{}}字符串并自动查询 Wiki例如[[海晶石]]。",
"wiki.search.help": "搜索一个 Wiki 页面。",
"wiki.search.message": "查询到以下结果:",
"wiki.search.message.reply": "回复编号以查询对应的页面。",
"wiki.search.message.prompt": "回复编号以查询对应的页面。",
"wiki.set.help": "设置起始查询 Wiki。",
"wiki.set.message.success": "成功设置起始 Wiki${name}",
"wiki.set.message.default": "没有指定起始 Wiki已默认指定为中文 Minecraft Wiki发送 ${prefix}wiki set <域名> 来设定自定义起始 Wiki。\n示例${prefix}wiki set https://minecraft.fandom.com/zh/wiki/",
@ -29,7 +29,7 @@
"wiki.iw.list.help": "展示当前设置的 Interwiki。",
"wiki.iw.list.help.legacy": "展示当前设置的 Interwiki。旧版",
"wiki.iw.list.message": "使用 ${prefix}wiki iw get <Interwiki> 可以获取 Interwiki 对应的链接。",
"wiki.iw.list.message.legacy": "当前设置了以下 Interwiki\n",
"wiki.iw.list.message.legacy": "当前设置了以下 Interwiki",
"wiki.iw.list.message.redirect": "此处展示的是为机器人设定的自定义 Interwiki如需查看起始 Wiki 的 Interwiki请见${url}",
"wiki.iw.get.help": "获取设置的 Interwiki 对应的 API 地址。",
"wiki.iw.get.message.not_found": "未找到 Interwiki${iw}",
@ -42,7 +42,7 @@
"wiki.headers.reset.message.success": "成功:已重置请求时所使用的请求标头。",
"wiki.prefix.set.help": "设置自定义前缀。",
"wiki.prefix.reset.help": "重置自定义前缀。",
"wiki.prefix.set.message.success": "成功:已更新请求时所使用的前缀:${prefix}",
"wiki.prefix.set.message.success": "成功:已更新请求时所使用的前缀:${wiki_prefix}",
"wiki.fandom.enable.help": "开启 Fandom 全局 Interwiki 查询。",
"wiki.fandom.disable.help": "关闭 Fandom 全局 Interwiki 查询。",
"wiki.fandom.enable.message": "已开启 Fandom 全局 Interwiki 查询。",

View file

@ -91,7 +91,7 @@ async def search_pages(session: Bot.MessageSession, title: Union[str, list, tupl
i += 1
w = f'{i}. {w}'
msg_list.append(w)
msg_list.append(msg.locale.t('wiki.search.message.reply'))
msg_list.append(msg.locale.t('wiki.search.message.prompt'))
reply = await session.waitReply(Plain('\n'.join(msg_list)))
if reply.asDisplay(text_only=True).isdigit():
reply_number = int(reply.asDisplay(text_only=True)) - 1

View file

@ -9,7 +9,7 @@ from .wiki import wiki
from config import Config
@wiki.handle('set <WikiUrl> {设置起始查询Wiki}', required_admin=True)
@wiki.handle('set <WikiUrl> {{wiki.set.help}}', required_admin=True)
async def set_start_wiki(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
check = await WikiLib(msg.parsed_msg['<WikiUrl>'], headers=target.get_headers()).check_wiki_available()
@ -18,19 +18,18 @@ async def set_start_wiki(msg: Bot.MessageSession):
result = WikiTargetInfo(msg).add_start_wiki(check.value.api)
if result:
await msg.finish(
f'成功添加起始Wiki{check.value.name}' + ('\n' + check.message if check.message != '' else '') +
(('\n注意此Wiki当前没有加入本机器人的白名单列表中查询此Wiki时将会对返回内容进行一些限制。\n'
'如需取消限制,请在此处申请白名单:\n' + Config("wiki_whitelist_url"))
msg.locale.t("wiki.set.message.success", name=check.value.name) + ('\n' + check.message if check.message != '' else '') +
(('\n' + msg.locale.t("wiki.message.untrust") + Config("wiki_whitelist_url"))
if not check.value.in_allowlist else ''))
else:
await msg.finish(f'错误:{check.value.name}处于黑名单中。')
await msg.finish(msg.locale.t("wiki.message.error.blocked", name=check.value.name))
else:
result = '错误无法添加此Wiki。' + \
('\n详细信息:' + check.message if check.message != '' else '')
result = msg.locale.t('wiki.message.error.add') + \
('\n' + msg.locale.t('wiki.message.error.info') + check.message if check.message != '' else '')
await msg.finish(result)
@wiki.handle('iw (add|set) <Interwiki> <WikiUrl> {添加自定义Interwiki}', required_admin=True)
@wiki.handle('iw (add|set) <Interwiki> <WikiUrl> {{wiki.iw.set.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
iw = msg.parsed_msg['<Interwiki>']
url = msg.parsed_msg['<WikiUrl>']
@ -40,29 +39,28 @@ async def _(msg: Bot.MessageSession):
if not check.value.in_blocklist or check.value.in_allowlist:
result = target.config_interwikis(iw, check.value.api, let_it=True)
if result:
await msg.finish(f'成功添加自定义Interwiki\n{iw} -> {check.value.name}' +
(('\n注意此Wiki当前没有加入本机器人的白名单列表中查询此Wiki时将会对返回内容进行一些限制。\n'
'如需取消限制,请在此处申请白名单:\n' + Config("wiki_whitelist_url"))
await msg.finish(msg.locale.t("wiki.iw.set.message.success", iw=iw, name=check.value.name) +
(('\n' + msg.locale.t("wiki.message.untrust") + Config("wiki_whitelist_url"))
if not check.value.in_allowlist else ''))
else:
await msg.finish(f'错误:{check.value.name}处于黑名单中。')
await msg.finish(msg.locale.t("wiki.message.error.blocked", name=check.value.name))
else:
result = '错误无法添加此Wiki。' + \
('\n详细信息:' + check.message if check.message != '' else '')
result = msg.locale.t('wiki.message.error.add') + \
('\n' + msg.locale.t('wiki.message.error.info') + check.message if check.message != '' else '')
await msg.finish(result)
@wiki.handle('iw (del|delete|remove|rm) <Interwiki> {删除自定义Interwiki}', required_admin=True)
@wiki.handle('iw (del|delete|remove|rm) <Interwiki> {{wiki.iw.remove.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
iw = msg.parsed_msg['<Interwiki>']
target = WikiTargetInfo(msg)
result = target.config_interwikis(iw, let_it=False)
if result:
await msg.finish(f'成功删除自定义Interwiki“{msg.parsed_msg["<Interwiki>"]}')
await msg.finish(msg.locale.t("wiki.iw.remove.message.success", iw=iw))
@wiki.handle(['iw (list|show) {展示当前设置的Interwiki}',
'iw (list|show) legacy {展示当前设置的Interwiki旧版}'])
@wiki.handle(['iw (list|show) {{wiki.iw.list.help}}',
'iw (list|show) legacy {{wiki.iw.list.help.legacy}}'])
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
query = target.get_interwikis()
@ -79,21 +77,21 @@ async def _(msg: Bot.MessageSession):
else:
img = False
if img:
mt = f'使用{msg.prefixes[0]}wiki iw get <Interwiki> 可以获取interwiki对应的链接。'
mt = msg.locale.t("wiki.iw.list.message", prefix=msg.prefixes[0])
if base_interwiki_link is not None:
mt += f'\n此处展示的是为机器人设定的自定义Interwiki如需查看起始wiki的Interwiki请见{str(Url(base_interwiki_link))}'
mt += '\n' + msg.locale.t("wiki.iw.list.message.redirect", url=str(Url(base_interwiki_link)))
await msg.finish([Image(img), Plain(mt)])
else:
result = '当前设置了以下Interwiki\n' + \
result = msg.locale.t("wiki.iw.list.message.legacy") + '\n' + \
'\n'.join([f'{x}: {query[x]}' for x in query])
if base_interwiki_link is not None:
result += f'\n此处展示的是为机器人设定的自定义Interwiki如需查看起始wiki的Interwiki请见{str(Url(base_interwiki_link))}'
result += '\n' + msg.locale.t("wiki.iw.list.message.redirect", url=str(Url(base_interwiki_link)))
await msg.finish(result)
else:
await msg.finish('当前没有设置任何Interwiki使用~wiki iw add <interwiki> <api_endpoint_link>添加一个。')
await msg.finish(msg.locale.t("wiki.iw.message.none", prefix=msg.prefixes[0]))
@wiki.handle('iw get <Interwiki> {获取设置的Interwiki对应的api地址}')
@wiki.handle('iw get <Interwiki> {{wiki.iw.get.help}}')
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
query = target.get_interwikis()
@ -101,81 +99,79 @@ async def _(msg: Bot.MessageSession):
if msg.parsed_msg['<Interwiki>'] in query:
await msg.finish(Url(query[msg.parsed_msg['<Interwiki>']]))
else:
await msg.finish(f'未找到Interwiki{msg.parsed_msg["<Interwiki>"]}')
await msg.finish(msg.locale.t("wiki.iw.get.message.not_found", iw=iw))
else:
await msg.finish('当前没有设置任何Interwiki使用~wiki iw add <interwiki> <api_endpoint_link>添加一个。')
await msg.finish(msg.locale.t("wiki.iw.message.none", prefix=msg.prefixes[0]))
@wiki.handle(['headers (list|show) {展示当前设置的headers}'])
@wiki.handle(['headers (list|show) {{wiki.headers.list.help}}'])
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
headers = target.get_headers()
prompt = f'当前设置了以下标头:\n{json.dumps(headers)}\n如需自定义,请使用~wiki headers set <headers>。\n' \
f'格式:\n' \
f'~wiki headers set {{"accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"}}'
prompt = msg.locale.t("wiki.headers.list.message")
await msg.finish(prompt)
@wiki.handle('headers (add|set) <Headers> {添加自定义headers}', required_admin=True)
@wiki.handle('headers (add|set) <Headers> {{wiki.headers.set.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
add = target.config_headers(
" ".join(msg.trigger_msg.split(" ")[3:]), let_it=True)
if add:
await msg.finish(f'成功更新请求时所使用的Headers\n{json.dumps(target.get_headers())}')
await msg.finish(msg.locale.t("wiki.headers.set.message.success", headers=json.dumps(target.get_headers())))
@wiki.handle('headers (del|delete|remove|rm) <HeaderKey> {删除一个headers}', required_admin=True)
@wiki.handle('headers (del|delete|remove|rm) <HeaderKey> {{wiki.headers.remove.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
delete = target.config_headers(
[msg.parsed_msg['<HeaderHey>']], let_it=False)
if delete:
await msg.finish(f'成功更新请求时所使用的Headers\n{json.dumps(target.get_headers())}')
await msg.finish(msg.locale.t("wiki.headers.set.message.success", headers=json.dumps(target.get_headers())))
@wiki.handle('headers reset {重置headers}', required_admin=True)
@wiki.handle('headers reset {{wiki.headers.reset.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
reset = target.config_headers('{}', let_it=None)
if reset:
await msg.finish(f'成功更新请求时所使用的Headers\n{json.dumps(target.get_headers())}')
await msg.finish(msg.locale.t("wiki.headers.reset.message.success"))
@wiki.handle('prefix set <prefix> {设置查询自动添加前缀}', required_admin=True)
@wiki.handle('prefix set <prefix> {{wiki.prefix.set.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
prefix = msg.parsed_msg['<prefix>']
set_prefix = target.set_prefix(prefix)
if set_prefix:
await msg.finish(f'成功更新请求时所使用的前缀:{prefix}')
await msg.finish(msg.locale.t("wiki.prefix.set.message.success", wiki_prefix=prefix))
@wiki.handle('prefix reset {重置查询自动添加的前缀}', required_admin=True)
@wiki.handle('prefix reset {{wiki.prefix.reset.help}}', required_admin=True)
async def _(msg: Bot.MessageSession):
target = WikiTargetInfo(msg)
set_prefix = target.del_prefix()
if set_prefix:
await msg.finish(f'成功重置请求时所使用的前缀。')
await msg.finish(msg.locale.t("wiki.prefix.reset.message.success"))
@wiki.handle('fandom enable {启用Fandom全局Interwiki查询}', 'fandom disable {禁用Fandom全局Interwiki查询}',
@wiki.handle('fandom enable {{wiki.fandom.enable.help}}', 'fandom disable {{wiki.fandom.disable.help}}',
required_admin=True)
async def _(msg: Bot.MessageSession):
if msg.parsed_msg.get('enable', False):
msg.data.edit_option('wiki_fandom_addon', True)
await msg.finish('已启用Fandom全局Interwiki查询。')
await msg.finish(msg.locale.t("wiki.fandom.enable.message"))
else:
msg.data.edit_option('wiki_fandom_addon', False)
await msg.finish('已禁用Fandom全局Interwiki查询。')
await msg.finish(msg.locale.t("wiki.fandom.disable.message"))
@wiki.handle('redlink enable {启用不存在页面时返回编辑链接}', 'redlink disable {禁用不存在页面时返回编辑链接}',
@wiki.handle('redlink enable {{wiki.redlink.enable.help}}', 'redlink disable {{wiki.redlink.disable.help}}',
required_admin=True)
async def _(msg: Bot.MessageSession):
if msg.parsed_msg.get('enable', False):
msg.data.edit_option('wiki_redlink', True)
await msg.finish('已启用不存在页面时返回编辑链接。')
await msg.finish(msg.locale.t("wiki.redlink.enable.message"))
else:
msg.data.edit_option('wiki_redlink', False)
await msg.finish('已禁用不存在页面时返回编辑链接。')
await msg.finish(msg.locale.t("wiki.redlink.disable.message"))