• Как подружить Flask и Discord.py?

    @Persifox
    Запускай не фласк, а Quart - тот же фласк, только async.

    Бота через Thead, а Quart в основном потоке.

    Примерно так реализовано у меня:

    # main.py
    bot = NoirBot(debug=True)
    
    thread_bot = threading.Thread(target=bot.run, name="bot")
    
    try:
        thread_bot.start()
        asyncio.run(bot.serve_app())
    
    except Exception as exp:
        lprint(f"Connection failed: {exp}", Color.red)
    finally:
        lprint(f"Stopped", Color.yellow)
        exit()


    # Bot.py
    # Run & Stop funcs
        def run(self) -> None:
            try:
                self.loop.run_until_complete(self.start())
            except KeyboardInterrupt:
                self.node.disconnect()
                self.loop.run_until_complete(self.close())
                # cancel all tasks lingering
            finally:
                self.loop.close()
    
        def start(self):
            if self._debug:
                return super().start(self._config.get("altsecrets", "token"))
            return super().start(self._config.get("secrets", "token"))


    # Bot.py
    
    # App
        async def serve_app(self):
            lprint("Checking routers", Color.blue, worker="APP")
    
            routersLoad(self)
    
            lprint("Loading Quart", Color.blue, worker="APP")
    
            config = hypercorn.Config()
            config.bind = ["0.0.0.0:5001"]
            config.use_reloader = True
    
            lprint("Done", Color.green, worker="APP")
    
            await serve(self._app, config)
    Ответ написан
    Комментировать
  • Почему программа со списками в питоне выводит неверный ответ?

    @Persifox
    import random
    x=[random.randint(-10,10) for i in range(12)]
    x.sort()
    x.reverse()
     
    for i in x:
        if i>=0:
            c=0
        if i<0:
             continue
        c=x[x.index(i) + 1] #если индекс отличается на 1, значит мы это насильно изменим
    y=x.index(c)
    
    print(x)
    print(c,y)
    Ответ написан
    Комментировать
  • Обработчик ошибок Python?

    @Persifox
    если делаешь на discord.py 2.0, то там есть обработчик ошибок такого типа декоратора:
    @playinfa.error
    async def playinfa_error(self, ctx, error):
        await ctx.send(f"произошла ошибка: ```{error}```")
    Ответ написан
  • Как сделать боту дискорд статус онлайн с телефона?

    @Persifox
    Никак. У дпу есть только 4 варианта не дефолтных статуса: dnd(не беспокоить), idle(неактивен), offline(не в сети), и streaming(стримит).
    Ответ написан
    Комментировать
  • Как выдать таймаут disnake?

    @Persifox Автор вопроса
    проблема решилась. Поставил await перед строкой ахахахахаха
    Ответ написан
    Комментировать