File size: 1,350 Bytes
339f372
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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()