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/meme/jiki.py

40 lines
1.3 KiB
Python
Raw Normal View History

import traceback
2022-07-31 08:27:58 +00:00
2022-07-26 09:54:43 +00:00
from bs4 import BeautifulSoup
2022-01-03 09:13:42 +00:00
2022-07-31 08:27:58 +00:00
from config import Config
2023-02-05 14:33:33 +00:00
from core.builtins import Url
2022-08-04 07:52:42 +00:00
from core.logger import Logger
2023-02-05 14:33:33 +00:00
from core.utils.http import get_url
2023-04-15 08:18:51 +00:00
from core.utils.i18n import Locale
2022-01-03 09:13:42 +00:00
2022-01-20 12:13:03 +00:00
2023-04-15 08:18:51 +00:00
async def jiki(term: str, locale: Locale):
2022-01-03 09:13:42 +00:00
'''查询小鸡百科。
:param term: 需要查询的term
:returns: 查询结果'''
try:
2022-07-26 09:54:43 +00:00
api = 'https://jikipedia.com/search?phrase=' + term
webrender = Config('web_render')
if webrender:
api = webrender + 'source?url=' + api
2022-08-01 15:33:35 +00:00
html = await get_url(api, 200)
2022-08-04 07:52:42 +00:00
Logger.debug(html)
2022-07-26 09:54:43 +00:00
bs = BeautifulSoup(html, 'html.parser')
result = bs.select_one('[data-index="0"]')
title_ele = result.select_one(
'a.title-container.block.title-normal')
content_ele = result.select_one('.lite-card-content')
title = title_ele.get_text()
link = title_ele.get('href')
content = content_ele.get_text()
results = bs.select('.lite-card').__len__()
count = str(result) if results < 15 else '15+'
2023-04-15 09:28:18 +00:00
return f'[{locale.t("meme.message.jiki")}] {locale.t("meme.message.result", result=count)}{title}\n{content}\n{str(Url(link))}'
except Exception:
traceback.print_exc()
2023-04-15 09:28:18 +00:00
return f'[{locale.t("meme.message.jiki")}] {locale.t("meme.message.error")}'