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
4cc086b4
Verified
Commit
4cc086b4
authored
Jul 21, 2025
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
watch and bugs modules: fix
parent
01722978
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
18 deletions
+35
-18
methods.py
src/altrepo/api/methods.py
+19
-11
bugs.py
src/handlers/bugs.py
+5
-2
profile.py
src/handlers/profile.py
+8
-2
watch.py
src/handlers/watch.py
+3
-3
No files found.
src/altrepo/api/methods.py
View file @
4cc086b4
...
...
@@ -105,12 +105,17 @@ class BugInfo:
def
__init__
(
self
,
client
:
BaseAPI
):
self
.
client
=
client
async
def
bugzilla_by_maintainer
(
self
,
maintainer_nickname
:
str
,
by_acl
:
str
|
None
=
None
):
data
=
await
self
.
client
.
get
(
"/bug/bugzilla_by_maintainer"
,
{
"maintainer_nickname"
:
maintainer_nickname
,
"by_acl"
:
by_acl
if
by_acl
else
"none"
}
)
async
def
bugzilla_by_maintainer
(
self
,
maintainer_nickname
:
str
,
by_acl
:
str
|
None
=
None
)
->
models
.
BugzillaInfoModel
|
None
:
try
:
data
=
await
self
.
client
.
get
(
"/bug/bugzilla_by_maintainer"
,
{
"maintainer_nickname"
:
maintainer_nickname
,
"by_acl"
:
by_acl
if
by_acl
else
"none"
}
)
except
errors
.
DataNotFoundError
:
return
None
return
models
.
BugzillaInfoModel
(
**
data
)
...
...
@@ -155,11 +160,14 @@ class SiteInfo:
)
return
models
.
MaintainerInfoModel
(
**
data
)
async
def
watch_by_maintainer
(
self
,
maintainer_nickname
:
str
)
->
models
.
SiteWatchByMaintainerModel
:
data
=
await
self
.
client
.
get
(
"/site/watch_by_maintainer"
,
{
"maintainer_nickname"
:
maintainer_nickname
}
)
async
def
watch_by_maintainer
(
self
,
maintainer_nickname
:
str
)
->
models
.
SiteWatchByMaintainerModel
|
None
:
try
:
data
=
await
self
.
client
.
get
(
"/site/watch_by_maintainer"
,
{
"maintainer_nickname"
:
maintainer_nickname
}
)
except
errors
.
DataNotFoundError
:
return
None
return
models
.
SiteWatchByMaintainerModel
(
**
data
)
...
...
src/handlers/bugs.py
View file @
4cc086b4
...
...
@@ -30,8 +30,11 @@ async def bugs_handler(m: Message, user: User | None, maintainer: str | None = N
return
bugs_data
=
await
altrepo
.
api
.
bug
.
bugzilla_by_maintainer
(
maintainer
)
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
if
bugs_data
:
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
else
:
unresolved_bugs
=
[]
if
not
len
(
unresolved_bugs
):
await
m
.
answer
(
"Нет открытых багов"
...
...
src/handlers/profile.py
View file @
4cc086b4
...
...
@@ -26,13 +26,19 @@ async def profile_handler(m: Message, user: User | None) -> None:
roles
=
DB
.
user
.
get_roles
(
m
.
from_user
.
id
)
bugs_data
=
await
altrepo
.
api
.
bug
.
bugzilla_by_maintainer
(
user
.
maintainer
)
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
if
bugs_data
:
all_bugs
=
bugs_data
.
bugs
unresolved_bugs
=
[
bug
for
bug
in
bugs_data
.
bugs
if
bug
.
status
not
in
[
"RESOLVED"
,
"CLOSED"
]]
else
:
all_bugs
=
[]
unresolved_bugs
=
[]
await
m
.
answer
(
"Профиль:
\n\n
"
f
"Сопровождающий: {maintainer.packager_name} ({maintainer.packager_nickname})
\n
"
f
"Исходные пакеты: {maintainer.count_source_pkg}
\n
"
"
\n
"
f
"Всего багов: {
bugs_data.length
}
\n
"
f
"Всего багов: {
len(all_bugs)
}
\n
"
f
"Открытых багов: {len(unresolved_bugs)}
\n\n
"
f
"Роли в боте: {"
,
".join(roles) or "
пользователь
"}"
,
reply_markup
=
profile_keyboards
.
profile_kb
...
...
src/handlers/watch.py
View file @
4cc086b4
...
...
@@ -28,15 +28,15 @@ async def watch_handler(m: Message, user: User | None, maintainer: str | None =
return
watch_data
=
await
altrepo
.
api
.
site
.
watch_by_maintainer
(
maintainer
)
if
not
len
(
watch_
data
.
packages
):
watch_packages
=
watch_data
.
packages
if
watch_data
else
[]
if
not
len
(
watch_packages
):
await
m
.
answer
(
"Нет устаревших пакетов"
)
return
watch_message
=
"Отслеживание:
\n\n
"
packages
=
{}
for
package
in
watch_
data
.
packages
:
for
package
in
watch_packages
:
name
=
package
.
pkg_name
if
name
not
in
packages
or
"src.rpm"
in
packages
[
name
]
.
url
:
packages
[
name
]
=
package
...
...
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