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/github/search.py

38 lines
1.5 KiB
Python
Raw Normal View History

2021-07-30 08:06:10 +00:00
import traceback
2023-02-05 14:33:33 +00:00
from core.builtins import Bot, Url, ErrorMessage
from core.utils.http import get_url
2021-11-20 01:35:38 +00:00
from modules.github.utils import dirty_check, darkCheck
2021-07-30 08:06:10 +00:00
2021-08-07 07:56:48 +00:00
2023-02-05 14:33:33 +00:00
async def search(msg: Bot.MessageSession):
2021-07-30 08:06:10 +00:00
try:
2022-08-10 13:22:44 +00:00
result = await get_url('https://api.github.com/search/repositories?q=' + msg.parsed_msg['<query>'], 200,
fmt='json')
2023-06-04 05:29:42 +00:00
if result['total_count'] == 0:
message = msg.locale.t("github.message.search.none")
else:
items = result['items']
item_count_expected = int(result['total_count']) if result['total_count'] < 5 else 5
items_out = []
for item in items:
try:
items_out.append(str(item['full_name'] + ': ' + str(Url(item['html_url']))))
except TypeError:
continue
footnotes = msg.locale.t(
"github.message.search.more_information",
more_result=result['total_count'] -
5) if item_count_expected == 5 else ''
message = msg.locale.t("github.message.search", result=result['total_count']) + '\n' + '\n'.join(
items_out[0:item_count_expected]) + f'\n{footnotes}'
2021-07-30 08:06:10 +00:00
2021-11-20 01:35:38 +00:00
is_dirty = await dirty_check(message) or darkCheck(message)
2021-07-30 08:06:10 +00:00
if is_dirty:
2021-08-01 14:26:55 +00:00
message = 'https://wdf.ink/6OUp'
2021-07-30 08:06:10 +00:00
2022-05-21 16:04:29 +00:00
await msg.finish(message)
except ValueError as e:
2023-06-04 05:29:42 +00:00
await msg.sendMessage(ErrorMessage(str(e)))
2022-08-10 13:22:44 +00:00
traceback.print_exc()