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
4d998a9a
Verified
Commit
4d998a9a
authored
Aug 19, 2025
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
package module: add ftbfs info
parent
2aebb41e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
2 deletions
+26
-2
package.py
src/handlers/package.py
+26
-2
No files found.
src/handlers/package.py
View file @
4d998a9a
from
telegrinder
import
Dispatch
,
Message
from
telegrinder.rules
import
Command
,
Argument
from
telegrinder.tools.formatting
import
HTMLFormatter
,
link
from
datetime
import
datetime
from
altrepo
import
altrepo
...
...
@@ -57,7 +59,7 @@ async def package_info_handler(
await
m
.
answer
(
"Ошибка обработки параметров."
)
return
buildtime
=
datetime
.
fromtimestamp
(
package
.
buildtime
)
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
buildtime
=
await
date_format
(
package
.
buildtime
)
packager
=
DB
.
maintainer
.
get
(
package
.
packager_nickname
)
if
arch
:
...
...
@@ -72,6 +74,7 @@ async def package_info_handler(
appstream_names
=
[
package
.
name
]
new_version
=
None
ftbfs
=
None
if
not
arch
:
new_version
=
package
.
new_version
if
new_version
:
...
...
@@ -81,6 +84,12 @@ async def package_info_handler(
f
" Новая версия: {new_version[0].version}-{new_version[0].release}"
)
ftbfs_message
=
_bold
(
"Ошибки пересборки:
\n
"
)
for
beehive
in
package
.
beehive
:
if
beehive
.
status
==
"error"
:
ftbfs
=
True
ftbfs_message
+=
" "
+
await
ftbfs_message_format
(
beehive
)
appstream_ids
=
[]
appstream_names
=
[]
binary_packages_message
=
_bold
(
"
\n\n
Бинарные пакеты:
\n
"
)
...
...
@@ -90,7 +99,7 @@ async def package_info_handler(
break
binary_packages_message
+=
f
" {binary_package.name}"
binary_packages_message
+=
f
" ({"
,
".join(binary_package.archs)})
\n
"
if
not
any
(
skip
in
binary_package
.
name
for
skip
in
APPSTREAM_SKIP_LIST
):
app_id
=
altrepo
.
appstream
.
package
.
id_by_pkgname
(
binary_package
.
name
,
branch
...
...
@@ -107,6 +116,7 @@ async def package_info_handler(
message
=
(
f
"{_bold("
Пакет
" + package.name)}
\n\n
"
f
"{f"
{
new_version_message
}
\
n
\
n
" if new_version else ""}"
f
"{f"
{
ftbfs_message
}
\
n
" if ftbfs else ""}"
f
"Версия: {package.version}-{package.release}
\n
"
f
"{f"
Архитектура
:
{
package
.
arch
}
\
n
" if arch else ""}"
f
"Собран: {buildtime}
\n
"
...
...
@@ -126,3 +136,17 @@ async def package_info_handler(
appstream_ids
,
appstream_names
)
if
appstream_ids
else
None
)
async
def
date_format
(
time
)
->
str
:
if
isinstance
(
time
,
(
int
,
float
)):
dt
=
datetime
.
fromtimestamp
(
time
)
elif
isinstance
(
time
,
str
):
dt
=
datetime
.
fromisoformat
(
time
)
return
dt
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
async
def
ftbfs_message_format
(
beehive
):
return
HTMLFormatter
(
link
(
beehive
.
url
,
text
=
beehive
.
arch
))
+
" | "
+
await
date_format
(
beehive
.
updated
)
+
"
\n
"
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