Задать вопрос
Lihan3301
@Lihan3301

Aiogram3 мультибот, как запустить ботов из списка токенов?

Первый раз работаю с мультиботами в aiogram, пытаюсь сделать запуска новых ботов из основного по токену, как мне правильно при запуске бота запустить и добавленных в мой список ботов ["token1", "token2"]?

Пример из документации (https://github.com/aiogram/aiogram/blob/dev-3.x/ex...) работает как мне нужно, но где он хранит токены я так и не понял, так-что мне нужно запускать ботов по токенам из переданого мной списка.

Функция для запуска которая у меня вышла:

def main():
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)

    session = AiohttpSession()
    bot_settings = {"session": session, "default": DefaultBotProperties(parse_mode="HTML")}

    main_dispatcher = Dispatcher(storage=storage)
    main_dispatcher.include_router(router.main)
    main_dispatcher.include_router(router.user_main)
    main_dispatcher.startup.register(on_startup)

    multibot_dispatcher = Dispatcher(storage=storage)
    multibot_dispatcher.include_router(router.user_multi)

    app = web.Application()
    main_bot = Bot(token=api_bot, **bot_settings)
    SimpleRequestHandler(dispatcher=main_dispatcher, bot=main_bot).register(app, path=MAIN_BOT_PATH)

    bot_list = [
        "токен 1",
        "токен 2"
    ]

    for bot in bot_list:
        # Что тут нужно добавить для запуска ботов по токену?

    setup_application(app, main_dispatcher, bot=main_bot)
    setup_application(app, multibot_dispatcher)

    web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT)
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
В функции command_add_bot создается новый экземпляр бота с использованием токена.
Каждый раз, когда новый бот добавляется, его вебхук регистрируется в системе, что позволяет главному боту получать обновления от всех добавленных ботов.

Состояния ботов хранится в MemoryStorage, как вариант, вам предлагают использовать RedisStorage.

З.Ы. Если вы не хотите добавлять из интерфейса, то итерируйтесь по списку токенов и применяйте кишки из command_add_bot.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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