task: improve the style

parent 262d2b5e
from telegrinder import Dispatch, Message from telegrinder import Dispatch, Message
from telegrinder.rules import Command, Argument from telegrinder.rules import Command, Argument
from telegrinder.tools.formatting import HTMLFormatter from telegrinder.tools.formatting import HTMLFormatter, code_inline
from altrepo import altrepo from altrepo import altrepo
from altrepo.api.errors import DataNotFoundError from altrepo.api.errors import DataNotFoundError
...@@ -87,40 +87,49 @@ async def task_handler(m: Message, user: User | None, task: int | None = None) - ...@@ -87,40 +87,49 @@ async def task_handler(m: Message, user: User | None, task: int | None = None) -
build_time = await date_format(task_data.task_changed) build_time = await date_format(task_data.task_changed)
subtasks_message = "" task_message = [
_bold(
f"Таск {task_data.task_repo}/{task_data.task_id} от {task_data.task_owner}\n"),
f"Статус: {task_data.task_state} (try {task_data.task_try})",
f"Собран: {build_time}",
]
if task_data.task_message:
task_message.append(f"Сообщение: {task_data.task_message}")
markup = None
if task_data.subtasks: if task_data.subtasks:
subtasks_message = "\nСабтаски:\n" task_message.append("\nСабтаски:")
last_subtask_id_len = len(str(task_data.subtasks[-1].subtask_id))
subtask_lines = []
for i, subtask in enumerate(task_data.subtasks): for i, subtask in enumerate(task_data.subtasks):
markup = None
if i == 40: if i == 40:
subtasks_message += "..." subtask_lines.append("...")
markup = tasks_keyboards.task_page_kb(task) markup = tasks_keyboards.task_page_kb(task)
break break
subtask_type = "build" if subtask.subtask_type in [ subtask_type = "build" if subtask.subtask_type in [
"gear", "srpm"] else subtask.subtask_type "gear", "srpm"] else subtask.subtask_type
subtask_package = subtask.subtask_package or subtask.subtask_srpm_name or \ subtask_package = subtask.subtask_package or subtask.subtask_srpm_name or \
subtask.subtask_dir.split("/")[-1].split(".")[0] subtask.subtask_dir.split("/")[-1].split(".")[0]
subtask_version = subtask.subtask_srpm_evr or subtask.subtask_tag_name or None subtask_version = subtask.subtask_srpm_evr or subtask.subtask_tag_name or None
subtask_version = f"= {subtask_version}" if subtask_version else "" subtask_version = f"/{subtask_version}" if subtask_version else ""
subtasks_message += ( subtask_id = f"{subtask.subtask_id:<{last_subtask_id_len}}"
f"{subtask_types[subtask_type]} | {subtask.subtask_id} | {subtask_package} {subtask_version}\n"
)
task_message = _bold( subtask_lines.append(
f"Таск {task_data.task_repo}/{task_data.task_id} от {task_data.task_owner}\n\n" f"{subtask_types[subtask_type]} | "
) f"{HTMLFormatter(code_inline(subtask_id))} | "
f"{subtask_package}{subtask_version}"
)
task_message += ( task_message.append("\n".join(subtask_lines))
f"Статус: {task_data.task_state} (try {task_data.task_try})\n"
f"Собран: {build_time}\n"
f"{f"Сообщение: {task_data.task_message}\n" if task_data.task_message else ""}"
f"{subtasks_message}"
)
await m.answer(task_message, reply_markup=markup) await m.answer("\n".join(task_message), reply_markup=markup)
async def create_tasks_message(tasks) -> str: async def create_tasks_message(tasks) -> str:
...@@ -130,5 +139,5 @@ async def create_tasks_message(tasks) -> str: ...@@ -130,5 +139,5 @@ async def create_tasks_message(tasks) -> str:
subtasks = len(task.subtasks) subtasks = len(task.subtasks)
tasks_message += HTMLFormatter(f"<a href='{TASK_URL}{task.task_id}'>{task.task_id}</a>") + \ 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" f" | {task.task_repo} | {task.task_state} | {build_time} | {subtasks} | {task.task_message}\n"
return tasks_message return tasks_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