add bugs

parent e0ed0a49
......@@ -15,4 +15,6 @@ DEFAUIL_BRANCHES = [
"p11",
"p10",
"p9"
]
\ No newline at end of file
]
BUGS_URL = "https://bugzilla.altlinux.org/"
......@@ -5,6 +5,7 @@ menu_kb = (
.add(Button("Профиль"))
.row()
.add(Button("Отслеживание"))
.add(Button("Ошибки"))
.row()
.add(Button("Статистика"))
).get_markup()
\ No newline at end of file
).get_markup()
from telegrinder import Dispatch, Message
from telegrinder.rules import Command, Text, IsUser
from telegrinder.tools.formatting import HTMLFormatter
from api import api
from database.models import User
from config import BUGS_URL
dp = Dispatch()
dp.message.auto_rules = IsUser()
@dp.message(Command("bugs") | Text(["bugs", "ошибки"], ignore_case=True))
async def watch_handler(m: Message, user: User | None) -> None:
if user is None:
return
bugs_data = await api.bug.bugzilla_by_maintainer(user.maintainer)
unresolved_bugs = [bug for bug in bugs_data.bugs if bug.status not in ["RESOLVED", "CLOSED"]]
if not len(unresolved_bugs):
await m.answer(
"У вас нет открытых багов"
)
return
bugs_message = "Ошибки:\n\n"
for i, bug in enumerate(unresolved_bugs):
if i == 20:
break
bugs_message += HTMLFormatter(f"<a href='{BUGS_URL}/{bug.id}'>#{bug.id}</a>") + \
f" | {bug.product} - {bug.component} | {bug.severity}\n"
if len(unresolved_bugs) > 20:
bugs_message += "\n..."
await m.answer(bugs_message)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment