Задать вопрос
@AsyJAIZ

Как обнаружить юзер-айди человека перед ключевым сообщением?

Здравствуйте! Пишу простого бота - модера в телеграмм, для себя. Если кто-то пишет одну и ту же фразу 3 раза, человек не может писать, но состоит в группе. Есть проблема: если я пытаюсь найти другое сообщение перед ключевым, я не знаю какой User ID (Message ID найти просто, надо запомнить значение MID первого ключевого сообщения и отнять 1) отправителя предыдущего сообщения. Я сделал вывод сообщений, UID и MID в консоль, но как высчитать - не знаю. Использую pyTelegramBotApi (TeleBot)
Кусок кода:
colvo = 0
mid = 0
@bot.message_handler(content_types=['text'])
def send_text(message):
    global colvo
    global mid
    print(message.chat.title)
    print(message.message_id)
    print(message.from_user.id)
    print(message.text)
    print()
    if message.text.lower() == 'ключевая фраза':
        colvo += 1
        mid = message.message_id - 1
        if colvo >= 3:
            bot.send_message(message.chat.id, 'здесь должна быть другая функция, эта для теста.')
            colvo = 0
    elif message.text.lower() == 'отмена':
        if 0 < colvo < 3:
            bot.send_message(message.chat.id, 'Отменено.')
        else:
            bot.send_message(message.chat.id, 'Отменять нет чего')

bot.polling()

Заранее спасибо!
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Guerro69
На счёт первого вопроса, объявите вашу переменную colvo до события @bot.message_handler
и объявите её глобальной в самом сообщение, а так вы перед каждым новым сообщением обнуляете переменную. Вот код:
colvo = 0
@bot.message_handler(content_types=['text'])
def send_text(message):
    global colvo
    print(message.chat.title)
    print(message.message_id)
    print(message.from_user.id)
    print(message.text)
    print()
    if message.text.lower() == 'ключевая фраза':
        colvo += 1
        mid = message.message_id - 1
        if colvo >= 3:
            bot.send_message(message.chat.id, 'здесь должна быть другая функция, эта для теста.')
            colvo = 0
    elif message.text.lower() == 'отмена':
        if 0 < colvo < 3:
            bot.send_message(message.chat.id, 'Отменено.')
        else:
            bot.send_message(message.chat.id, 'Отменять нет чего')

bot.polling()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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