у меня игровой тг бот, хочу сделать код который будет выдавать число и после будет бездействующим ( одноразовый промокод
это код в боте для получения бонуса, хочу понять как сделать такой, но одноразовый
@bot.message_handler(func=lambda message: message.text.lower() == 'бонус' or message.text == '💠 Бонус')
def bonus(message):
baninf = cursor.execute(f"SELECT ban FROM users WHERE id = {message.chat.id}").fetchone()
if baninf[0] == 0:
usernick = cursor.execute(f'SELECT nick FROM users WHERE id = {message.chat.id}').fetchone()
bonust = cursor.execute(f'SELECT bonus_last FROM users WHERE id = {message.chat.id}').fetchone()
s = time.localtime(time.time())
if bonust[0] != s.tm_sec:
cursor.execute(f"UPDATE users SET money = money + ? WHERE id = {message.chat.id}", (cfg['bonus'],))
cursor.execute(f"UPDATE users SET bonus_last = ? WHERE id = {message.chat.id}",
(time.localtime(time.time()).tm_sec,))
db.commit()
f"{usernick[0]} Вы успешно получили бонус в размере {cfg['bonus']}$ {SMILE[5]}")
else:
bot.reply_to(message, f"{usernick[0]} Вы уже получали бонус {EMOJI_SAD[0]}")
Источник: Stack Overflow на русском