@john_does13

Как во время работы кода подключать неопределённое количество новых Discord ботов асинхронно?

Я использую disnake.py и asyncio для реализации моей идеи. Её суть в том, что-бы запустить некий событийный цикл, который будет ожидать, что в любой момент мы захотим подключить к нашему коду нового Discord бота (количество заранее неизвестно). В процессе реализации я столкнулся с проблемой: у меня не получаеться подключить нового бота в асинхронном режиме работы.

import asyncio
import disnake


class BotHandler:
    def __init__(self, token: str):
        self.token = token
        intents = disnake.Intents.all()
        self.bot = disnake.Client(intents=intents)

        @self.bot.event
        async def on_ready():
            print(f"'{self.bot.user.name}' is online!")

    async def start(self):
        await self.bot.start(self.token)


async def start_bots():
    bot1 = BotHandler(token1)
    bot2 = BotHandler(token2)

    tasks = [bot1.start(), bot2.start()]
    await asyncio.gather(*tasks)


if __name__ == '__main__':
    asyncio.run(start_bots())

Код, написанный мной выше, работает, но не так, как мне хотелось бы. Боты действительно запускаются, они работают. Но, при таком подходе я не имею возможности подключить ещё одного бота.
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

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

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