я возможно глупый но я правда уже не знаю что мне надо поменять в коде что бы он работал , и автоматически добавлял 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)