From f7b7e87cffc9dcb2817b070d7a003ac234c96ec3 Mon Sep 17 00:00:00 2001 From: Tolmachev Igor Date: Mon, 23 Mar 2026 18:07:30 +0300 Subject: Add new_announcement command --- libs/msg.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 libs/msg.py (limited to 'libs/msg.py') diff --git a/libs/msg.py b/libs/msg.py new file mode 100644 index 0000000..9bcc52a --- /dev/null +++ b/libs/msg.py @@ -0,0 +1,25 @@ +import asyncio +from typing import AsyncGenerator, Iterable + +from aiogram import Bot +from aiogram.exceptions import TelegramAPIError, TelegramRetryAfter + +from models import RichText + + +async def publish( + bot: Bot, + users: Iterable[int], + rich_text: RichText, +) -> AsyncGenerator[int]: + for n, user_id in enumerate(users, start=1): + for _ in range(5): + try: + await rich_text.send(bot, user_id) + break + except TelegramRetryAfter as e: + await asyncio.sleep(e.retry_after + 1) + except TelegramAPIError: + await asyncio.sleep(5) + + yield n -- cgit v1.3