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
80856eb8
Verified
Commit
80856eb8
authored
Nov 04, 2025
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tasks: add task_search command
parent
4752dd9d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
9 deletions
+38
-9
tasks.py
src/handlers/tasks.py
+38
-9
No files found.
src/handlers/tasks.py
View file @
80856eb8
...
...
@@ -41,25 +41,43 @@ async def tasks_handler(m: Message, user: User | None, maintainer: str | None =
tasks_data
=
await
altrepo
.
api
.
task
.
progress
.
find_tasks
(
input
=
[
f
"@{maintainer.nickname}"
],
branch
=
branch
)
try
:
tasks_data
=
await
altrepo
.
api
.
task
.
progress
.
find_tasks
(
input
=
[
f
"@{maintainer.nickname}"
],
branch
=
branch
)
except
DataNotFoundError
:
await
m
.
answer
(
"Таски не найдены."
)
return
if
not
tasks_data
.
tasks
:
await
m
.
answer
(
"Нет тасков."
)
return
tasks
=
[
task
for
task
in
tasks_data
.
tasks
if
task
.
task_state
not
in
[
"DONE"
]]
tasks_message
=
_bold
(
"Таски:
\n\n
"
)
for
i
,
task
in
enumerate
(
tasks
):
if
i
==
100
:
break
build_time
=
await
date_format
(
task
.
task_changed
)
subtasks
=
len
(
task
.
subtasks
)
tasks_message
+=
HTMLFormatter
(
f
"<a href='{TASK_URL}{task.task_id}'>{task.task_id}</a>"
)
+
\
f
" | {task.task_state} | {build_time} | {subtasks} | {task.task_message}
\n
"
tasks_message
=
await
create_tasks_message
(
tasks
)
await
m
.
answer
(
tasks_message
)
@dp.message
(
Command
(
"task_search"
,
Argument
(
"args"
,
optional
=
True
)))
async
def
task_search_handler
(
m
:
Message
,
args
:
str
|
None
=
None
)
->
None
:
if
not
args
:
return
await
m
.
answer
(
"Укажите параметры поиска."
)
try
:
tasks_data
=
await
altrepo
.
api
.
task
.
progress
.
find_tasks
(
input
=
args
.
split
())
except
DataNotFoundError
:
return
await
m
.
answer
(
"Таски не найдены."
)
if
not
tasks_data
.
tasks
:
return
await
m
.
answer
(
"Нет тасков."
)
msg
=
await
create_tasks_message
(
tasks_data
.
tasks
)
answer
=
(
await
m
.
answer
(
msg
))
.
unwrap_or_none
()
if
answer
is
None
:
await
m
.
answer
(
"Слишком много результатов, уточните поиск."
)
@dp.message
(
Command
(
"task"
,
Argument
(
"task"
,
[
int_validator
],
optional
=
True
)))
async
def
task_handler
(
m
:
Message
,
user
:
User
|
None
,
task
:
int
|
None
=
None
)
->
None
:
...
...
@@ -115,3 +133,14 @@ async def task_handler(m: Message, user: User | None, task: int | None = None) -
)
await
m
.
answer
(
task_message
,
reply_markup
=
markup
)
async
def
create_tasks_message
(
tasks
)
->
str
:
tasks_message
=
_bold
(
"Таски:
\n\n
"
)
for
task
in
tasks
:
build_time
=
await
date_format
(
task
.
task_changed
)
subtasks
=
len
(
task
.
subtasks
)
tasks_message
+=
HTMLFormatter
(
f
"<a href='{TASK_URL}{task.task_id}'>{task.task_id}</a>"
)
+
\
f
" | {task.task_repo} | {task.task_state} | {build_time} | {subtasks} | {task.task_message}
\n
"
return
tasks_message
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