@bodoh

Как сделать, чтобы бот автоматически добавлял id каналов в список CHANNELS?

я возможно глупый но я правда уже не знаю что мне надо поменять в коде что бы он работал , и автоматически добавлял id каналов . Версия aiogram 2.25.2
import logging
from aiogram import Bot, Dispatcher, executor, types
import aioschedule as schedule
import asyncio

logging.basicConfig(level=logging.INFO)

API_TOKEN = ''
CHANNELS = []

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)

async def on_bot_joined_channel(update: types.ChatMemberUpdated):
    if update.new_chat_member.status == 'administrator':
        chat_id = update.chat.id
        if update.from_user.id == (await bot.me).id:
            CHANNELS.append(chat_id)
            await bot.send_message(chat_id, "Бот добавлен в канал.")

def register_handlers_channel_join(dp: Dispatcher):
    dp.register_chat_member_handler(on_bot_joined_channel, chat_type=types.ChatType.CHANNEL, is_chat_admin=True)

async def scheduled_message():
    for channel_id in CHANNELS:
        await bot.send_message(chat_id=channel_id, text="Исходное сообщение.")

@dp.message_handler(commands=['start'])
async def cmd_start(message: types.Message):
    await message.reply("Бот запущен")

async def scheduler():
    schedule.every().day.at("20:38").do(scheduled_message)
    while True:
        await schedule.run_pending()
        await asyncio.sleep(1)

async def on_startup(dispatcher):
    asyncio.create_task(scheduler())
    register_handlers_channel_join(dispatcher)

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hardux2821
тут не со списком работать нужно, а с базой данных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы