Ответы пользователя по тегу Боты
  • Как сделать логи банов?

    @davGro
    Шушуть люблю питон, по шушуть тыкаю где-то год.
    Лучше не хранить ничего в файлах, а создать таблицу в бд с колонками banTimeStart memberUid reason authorOfBan duration и channel.

    banTimeStart это int(time.time()) на момент внесения записи в таблицу.
    Можно удалять разбаненых из таблицы, а можно добавить столбец unbanned где будет 0 если человек ещё в бане и 1 если человек разбанен.
    Каждую минуту (или чаще, на ваше усмотрение) делать запрос в базу на подобии
    from time import time
    ...
    cursor.execute("""SELECT memberUid, channel from bans where banTimeStart + duration <= {0}""".format(int(time()))

    Данный запрос будет выводить данные о забаненных, чье время бана уже истекло
    Ответ написан
  • Бот игнорирует триггер если в сообщении есть пробел, как исправить?

    @davGro
    Шушуть люблю питон, по шушуть тыкаю где-то год.
    Лучшим решением будет такое:
    goodNight = ['доброй ночи']
    botMen = ['бот', 'bot']
    # пишем все строки в нижнем регистре 
    # (маленькими буквами) для корректного сравнения в будущем
    
    
    @Bot.event
    async def on_message(message, txt: message.content, send: message.channel.send): # упрощаем себе жизнь
        if message.author == Bot.user:
            return
        else:
            content = " ".join(txt.lower().split()) 
            """
            строкой выше мы из " ДоБрой НочИ " делаем "доброй ночи"
            то есть убираем лишние пробелы в начале и в конце
            и приводим к нижнему регистру для корректного сравнения"""
            if content in goodNight:
                await send('Ты уже уходишь или это ночное приветствие? %s' % Bot.get_emoji(755856809436250253))
            if content in botMen:
                await send('Да, я вас слушаю %s' % Bot.get_emoji(810645595089535087))
        await Bot.process_commands(message)


    Не знаю на каком фреймворке вы пишете, но подозреваю что в нем можно писать return "Спокойной ночи" вместо await message.channel.send('Спокойной ночи'). И да, как приметили до меня, переменные не называют с большой буквы, только классы. Рекомендую пройти небольшой курс для самый начинающих в питоне. Думаю вам будет полезно.
    Ответ написан