таймер сообщений несоответствия + не работает хорошо вместе - PullRequest
0 голосов
/ 28 мая 2018

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

1 Ответ

0 голосов
/ 28 мая 2018

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

...