from aiogram import Router, F from aiogram.types import Message, CallbackQuery from aiogram.fsm.context import FSMContext from app.database import requests as rq from app.keyboards import admin_keyboards as kb from app.states import Other from app.database.requests import get_broadcast_users from app.middleware.authentification import admin_check from time import sleep from random import randint router = Router() @router.message(F.text == 'Отправить сообщение в рассылку') async def compose_message(message: Message, state: FSMContext): if not await admin_check(message, {}): await message.answer("У вас нет доступа к админ-панели") return await state.set_state(Other.admin_send_mailing) await message.answer('Напишите Ваше сообщение') @router.message(Other.admin_send_mailing) async def send_message(message: Message, state: FSMContext): user_ids = await get_broadcast_users() if not user_ids: await message.answer("Нет подписчиков для рассылки") return for user_id in user_ids: await message.copy_to(user_id) sleep(randint(1,5)) await message.answer(f"Сообщение отправлено {len(user_ids)} пользователям") await state.clear()