Archived
1
0
Fork 0
This commit is contained in:
yzhh 2022-03-26 22:56:58 +08:00
parent 43ae2148b6
commit 211f571db4
2 changed files with 12 additions and 11 deletions

View file

@ -3,6 +3,7 @@ import re
import traceback
from typing import Union
import ffmpy
import filetype
import ujson as json
@ -484,9 +485,7 @@ async def query_pages(session: Union[MessageSession, QueryInfo], title: Union[st
if r.desc is not None and r.desc != '':
plain_slice.append(r.desc)
if r.invalid_namespace and r.before_title is not None:
s = r.before_title.split(":")
if len(s) > 1:
plain_slice.append(f'此Wiki上没有名为{s[0]}的命名空间,请检查拼写后再试。')
plain_slice.append(f'此Wiki上没有名为{r.invalid_namespace}的命名空间,请检查拼写后再试。')
if plain_slice:
msg_list.append(Plain('\n'.join(plain_slice)))
if wait_plain_slice:

View file

@ -102,7 +102,8 @@ class PageInfo:
status: bool = True,
before_page_property: str = 'page',
page_property: str = 'page',
invalid_namespace: bool = False
namespace: str = '',
invalid_namespace: Union[str, bool] = False
):
self.info = info
self.id = id
@ -327,11 +328,11 @@ class WikiLib:
new_page_name = get_page['query']['search'][0]['title'] if len(get_page['query']['search']) > 0 else None
title_split = page_name.split(':')
print(title_split, len(title_split))
is_invalid_namespace = False
invalid_namespace = False
if len(title_split) > 1 and title_split[0] not in self.wiki_info.namespaces \
and title_split[0].lower() not in self.wiki_info.namespacealiases:
is_invalid_namespace = True
return new_page_name, is_invalid_namespace
invalid_namespace = title_split[0]
return new_page_name, invalid_namespace
async def parse_page_info(self, title: str = None, pageid: int = None, doc_mode=False,
tried_iw=0, iw_prefix='', iw_mode=False, search_mode=False) -> PageInfo:
@ -342,7 +343,7 @@ class WikiLib:
:param tried_iw: 尝试iw跳转的次数
:param iw_prefix: iw前缀
:param iw_mode: 是否为iw模式
:param research_mode: 是否为搜索模式
:param search_mode: 是否为搜索模式
:return:
"""
try:
@ -361,7 +362,7 @@ class WikiLib:
section = None
if title is not None:
if title == '':
return PageInfo(title='', link=self.wiki_info.articlepath.replace("$1", ""), info=self.wiki_info)
return PageInfo(title='', link=self.wiki_info.articlepath.replace("$1", ""), info=self.wiki_info, interwiki_prefix=iw_prefix)
split_name = re.split(r'([#?])', title)
title = re.sub('_', ' ', split_name[0])
arg_list = []
@ -456,6 +457,7 @@ class WikiLib:
page_info.file = reparse.file
page_info.before_title = title
page_info.status = reparse.status
page_info.invalid_namespace = reparse.invalid_namespace
else:
if len(split_title) > 1 and split_title[0] in self.wiki_info.namespaces:
research = await self.research_page(title, self.wiki_info.namespaces[split_title[0]])
@ -522,11 +524,11 @@ class WikiLib:
before_page_info = page_info
page_info = iw_query
if iw_query.title == '':
page_info.title = title
page_info.title = ''
else:
page_info.before_title = before_page_info.title
t = page_info.title
if t is not None:
if t != '':
if before_page_info.args is not None:
page_info.before_title += urllib.parse.unquote(before_page_info.args)
t += urllib.parse.unquote(before_page_info.args)