news: split bug reports by category

parent cee9fa5d
......@@ -49,8 +49,8 @@ async def news_handler(
chat_id=m.from_user.id, text="Новостей пока нет."
)
return
bugs = await format_bugs(bugs_data)
await m.ctx_api.send_message(chat_id=m.from_user.id, text=bugs)
for msg in await format_bugs(bugs_data):
await m.ctx_api.send_message(chat_id=m.from_user.id, text=msg)
elif news_type == "ftbfs":
ftbfs_data = await altrepo.parser.packages.ftbfs()
if not ftbfs_data:
......
from telegrinder.tools.formatting import HTMLFormatter, link, bold, block_quote
from telegrinder.tools.formatting import HTMLFormatter, link, bold
from altrepo.parser.models import BugsModel, BugsElementModel
......@@ -8,9 +8,8 @@ from config import BUGS_URL, PACKAGES_URL
repo = PACKAGES_URL.format(repo="sisyphus")
async def format_bugs(bugs: BugsModel):
bug_message = HTMLFormatter(bold("Новости Багзиллы\n\n"))
async def format_bugs(bugs: BugsModel) -> list[str]:
messages = []
categories = [
("Быстрозакрытые", bugs.quickly_resolved),
("Новые", bugs.new),
......@@ -22,16 +21,17 @@ async def format_bugs(bugs: BugsModel):
for title, bug_list in categories:
if bug_list:
bug_message += f"{title}:\n"
bug_message = HTMLFormatter(bold(f"Новости Багзиллы: {title}\n\n"))
for bug in bug_list:
bug_message += await _format_bug(bug)
messages.append(bug_message)
bug_message += (
info_message = (
HTMLFormatter(bold("Сделаем Багзиллу чище!\n")) +
"— Приглашаем активных участников к проверке багов на воспроизводимость.\n\n"
)
bug_message += (
info_message += (
"Источник: " +
HTMLFormatter(bold(link(bugs.url, text="sisyphus-cybertalk"))) +
"\n\n#Репорты\n\n"
......@@ -39,7 +39,8 @@ async def format_bugs(bugs: BugsModel):
HTMLFormatter(bold(link("https://t.me/altlinux_packages_bot", text="ALT Packages Bot")))
)
return bug_message
messages.append(info_message)
return messages
async def _format_bug(bug: BugsElementModel):
......
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