Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
altlinux-packages-bot
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kirill Unitsaev
altlinux-packages-bot
Commits
c5661b9f
Verified
Commit
c5661b9f
authored
Jul 14, 2025
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugs module: fix bug url and add support for arguments
parent
88e289fc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
13 deletions
+38
-13
__init__.py
src/data/keyboards/__init__.py
+1
-0
bugs.py
src/data/keyboards/bugs.py
+12
-0
bugs.py
src/handlers/bugs.py
+25
-13
No files found.
src/data/keyboards/__init__.py
View file @
c5661b9f
...
@@ -2,3 +2,4 @@ from . import start as start_keyboards
...
@@ -2,3 +2,4 @@ from . import start as start_keyboards
from
.
import
menu
as
menu_keyboards
from
.
import
menu
as
menu_keyboards
from
.
import
profile
as
profile_keyboards
from
.
import
profile
as
profile_keyboards
from
.
import
watch
as
watch_keyboards
from
.
import
watch
as
watch_keyboards
from
.
import
bugs
as
bugs_keyboards
src/data/keyboards/bugs.py
0 → 100644
View file @
c5661b9f
from
telegrinder
import
InlineKeyboard
,
InlineButton
def
bugs_more_kb
(
maintainer
:
str
):
kb
=
InlineKeyboard
()
kb
.
add
(
InlineButton
(
"Полный список"
,
url
=
f
"https://packages.altlinux.org/ru/sisyphus/maintainers/{maintainer}/bugs"
,
)
)
return
kb
.
get_markup
()
src/handlers/bugs.py
View file @
c5661b9f
from
telegrinder
import
Dispatch
,
Message
from
telegrinder
import
Dispatch
,
Message
from
telegrinder.rules
import
Command
,
Text
,
IsUser
from
telegrinder.rules
import
Command
,
Argument
,
Text
,
IsPrivate
from
telegrinder.tools.formatting
import
HTMLFormatter
from
telegrinder.tools.formatting
import
HTMLFormatter
from
api
import
api
from
api
import
api
from
database.models
import
User
from
database.models
import
User
from
data.keyboards
import
bugs_keyboards
from
config
import
BUGS_URL
from
config
import
BUGS_URL
dp
=
Dispatch
()
dp
=
Dispatch
()
dp
.
message
.
auto_rules
=
IsUser
()
@dp.message
(
Command
(
"bugs"
,
Argument
(
"maintainer"
,
optional
=
True
)))
@dp.message
(
Command
(
"bugs"
)
|
Text
([
"bugs"
,
"ошибки"
],
ignore_case
=
True
))
@dp.message
(
Text
([
"bugs"
,
"ошибки"
],
ignore_case
=
True
),
IsPrivate
())
async
def
watch_handler
(
m
:
Message
,
user
:
User
|
None
)
->
None
:
async
def
watch_handler
(
m
:
Message
,
user
:
User
|
None
,
maintainer
:
str
|
None
)
->
None
:
if
user
is
None
:
if
maintainer
:
return
maintainer
=
maintainer
.
lower
()
maintainer_data
=
await
api
.
site
.
all_maintainers
(
"sisyphus"
)
bugs_data
=
await
api
.
bug
.
bugzilla_by_maintainer
(
user
.
maintainer
)
if
not
any
(
_m
.
packager_nickname
==
maintainer
for
_m
in
maintainer_data
.
maintainers
):
await
m
.
answer
(
f
"Сопровождающий {maintainer} не найден."
)
else
:
if
user
:
maintainer
=
user
.
maintainer
else
:
return
bugs_data
=
await
api
.
bug
.
bugzilla_by_maintainer
(
maintainer
)
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
if
not
len
(
unresolved_bugs
):
if
not
len
(
unresolved_bugs
):
await
m
.
answer
(
await
m
.
answer
(
"
У вас н
ет открытых багов"
"
Н
ет открытых багов"
)
)
return
return
...
@@ -34,10 +44,12 @@ async def watch_handler(m: Message, user: User | None) -> None:
...
@@ -34,10 +44,12 @@ async def watch_handler(m: Message, user: User | None) -> None:
for
i
,
bug
in
enumerate
(
unresolved_bugs
):
for
i
,
bug
in
enumerate
(
unresolved_bugs
):
if
i
==
20
:
if
i
==
20
:
break
break
bugs_message
+=
HTMLFormatter
(
f
"<a href='{BUGS_URL}
/
{bug.id}'>#{bug.id}</a>"
)
+
\
bugs_message
+=
HTMLFormatter
(
f
"<a href='{BUGS_URL}{bug.id}'>#{bug.id}</a>"
)
+
\
f
" | {bug.product} - {bug.component} | {bug.severity}
\n
"
f
" | {bug.product} - {bug.component} | {bug.severity}
\n
"
markup
=
None
if
len
(
unresolved_bugs
)
>
20
:
if
len
(
unresolved_bugs
)
>
20
:
bugs_message
+=
"
\n
..."
bugs_message
+=
"
\n
..."
markup
=
bugs_keyboards
.
bugs_more_kb
(
maintainer
)
await
m
.
answer
(
bugs_message
)
await
m
.
answer
(
bugs_message
,
reply_markup
=
markup
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment