Cooldown для команды в телеграм боте

начал создавать своего Телеграм бота, но столкнулся с проблемой. Что бы был невозможен фарм валюты я решил сделать кулдаун, но это оказалось не так просто, можете помочь? нужен кулдаун в 60 секунд

def welcome(message):
    chat_id = message.chat.id
    keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    work = telebot.types.KeyboardButton(text="Заработать ?")
    keyboard.add(work)
    bot.send_message(chat_id, 'Выберите кнопку',reply_markup=keyboard)

@bot.message_handler(func=lambda message: message.text == 'Заработать ?')
    money = random.randint(1000, 5000)
    chat_id = message.chat.id
    bot.send_message(chat_id, 'Вы заработали ' + str(money) + '?')```

Ответы (1 шт):

Автор решения: BArbosspirat

Можно создать словать data = {'member': "last_try(объект datetime)"} и в функции сравнивать последнее время использования с now(). Как-то так:

@bot.message_handler(func=lambda message: message.text == 'Заработать ?')
def a():
    last_try = data.get('айдишник пользователя(я не помню как это делается в telebot)', None)
    if last_try is not None:
        delta = datetime.datetime.now() - last_try
        if delta.total_seconds() < 60:
            """можешь отправить сообщение о том что у него ещё кулдаун"""
            return
    data['айдишник пользователя'] = datetime.datetime.now()

    money = random.randint(1000, 5000)
    chat_id = message.chat.id
    bot.send_message(chat_id, 'Вы заработали ' + str(money) + '?')
→ Ссылка