таймер сообщений pymongo + Discord не работает вместе

В настоящее время я пытаюсь создать таймер сообщений для разногласий, в основном я хочу, чтобы пользователь установил таймер сообщения. Я хочу, чтобы сообщение отправлялось каждые x секунд, но по какой-то причине оно отправляет сообщение только в одном канале, хотя Я уже настроил его по двум каналам.

Вот мой код.

async def on_ready(self):
    print("SmartCord rewrite is ready!")
    self.remove_command('help')
    #ch = self.get_channel(446904504210948099)
    #await ch.send("\n".join(good))
    await self.change_presence(activity=discord.Streaming(name=f"{len(self.guilds)} Guilds | /help", url="https://www.twitch.tv/smartcord"))
    for channel in self.get_all_channels():
        if db.messagetimers.find({"channel_id":str(channel.id)}).count():
            for x in db.messagetimers.find({"channel_id":str(channel.id)}):
                message = x['message']
                chan = x['channel_id']
            y = self.get_channel(int(chan))
            while True:
                await y.send(message)
                await asyncio.sleep(60) # Using 60 seconds as an example

Поскольку я не очень хорошо разбираюсь в python, я действительно не знаю, что делать, чтобы исправить эту проблему.


person Zen    schedule 28.05.2018    source источник


Ответы (1)


Мне кажется, это ошибка отступа. Вы устанавливаете переменную chan в цикле, а затем используете ее вне этого цикла для преобразования канала в переменную y. Поэтому, не вдаваясь слишком глубоко в код, я бы предположил, что последние четыре строки нуждаются в еще одном уровне отступа.

person Fynn Becker    schedule 28.05.2018
comment
к сожалению, это не решает проблему, я попытался создать команду, в которой они могли бы создать настраиваемую команду и сохранить команду и ответ в базе данных, и то, что я обнаружил, он получал только последние данные из базы данных . - person Zen; 28.05.2018