add bugs

parent e0ed0a49
...@@ -15,4 +15,6 @@ DEFAUIL_BRANCHES = [ ...@@ -15,4 +15,6 @@ DEFAUIL_BRANCHES = [
"p11", "p11",
"p10", "p10",
"p9" "p9"
] ]
\ No newline at end of file
BUGS_URL = "https://bugzilla.altlinux.org/"
...@@ -5,6 +5,7 @@ menu_kb = ( ...@@ -5,6 +5,7 @@ menu_kb = (
.add(Button("Профиль")) .add(Button("Профиль"))
.row() .row()
.add(Button("Отслеживание")) .add(Button("Отслеживание"))
.add(Button("Ошибки"))
.row() .row()
.add(Button("Статистика")) .add(Button("Статистика"))
).get_markup() ).get_markup()
\ No newline at end of file
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