news: split bug reports by category

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