blob: c8c8f2b3e300846ba70605c590eca0f090371056 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import re
import json
from nonebot.adapters.cqhttp import Bot, MessageEvent
from ATRI.service import Service as sv
from ATRI.utils.request import get_bytes
from ATRI.exceptions import RequestError
URL = "https://api.github.com/repos/{owner}/{repo}/issues/{issue_number}"
github_issues = sv.on_message()
@github_issues.handle()
async def _github_issues(bot: Bot, event: MessageEvent) -> None:
msg = str(event.message)
patt = r"https://github.com/(.*)/(.*)/issues/(.*)"
need_info = re.findall(patt, msg)
if not need_info:
return
for i in need_info:
need_info = list(i)
owner = need_info[0]
repo = need_info[1]
issue_number = need_info[2]
url = URL.format(owner=owner, repo=repo, issue_number=issue_number)
try:
data = await get_bytes(url)
except RequestError:
return
data = json.loads(data)
msg0 = (
f"{repo}: #{issue_number} {data['state']}\n"
f"comments: {data['comments']}\n"
f"update: {data['updated_at']}\n"
f"{data['body']}"
)
await github_issues.finish(msg0)
|