Compare commits

...

2 Commits

2 changed files with 16 additions and 8 deletions

View File

@@ -188,9 +188,12 @@ COMMAND_MESSAGES = {
" Ответьте на сообщение: <code>/karma</code>\n\n" " Ответьте на сообщение: <code>/karma</code>\n\n"
"<b>💡 Как начислить карму?</b>\n" "<b>💡 Как начислить карму?</b>\n"
"Ответьте на сообщение пользователя словами благодарности:\n" "Ответьте на сообщение пользователя словами благодарности:\n"
"• спасибо\n" "• спасибо → +1 карма\n"
"• благодарю\n" "• благодарю → +1 карма\n"
"• спс, сенкс, thanks и др.\n\n" "• спс, сенкс, thanks и др. → +1 карма\n\n"
"<b>🔥 БОНУС: Благодарность с восклицательным знаком даёт x2 кармы!</b>\n"
"• спасибо! → +2 кармы 👍👍\n"
"• thanks! → +2 кармы 👍👍\n\n"
"<i>⏱ Одному пользователю можно давать карму раз в час</i>" "<i>⏱ Одному пользователю можно давать карму раз в час</i>"
), ),
'top_karma_help': ( 'top_karma_help': (

View File

@@ -61,8 +61,11 @@ def register_handlers(bot: AsyncTeleBot):
# Молча игнорируем, чтобы не спамить # Молча игнорируем, чтобы не спамить
return return
# Определяем количество кармы: x2 если есть восклицательный знак
karma_amount = 2 if '!' in message.text else 1
# Начисляем карму (благодарность уже записана атомарно выше) # Начисляем карму (благодарность уже записана атомарно выше)
db.add_karma(to_user.id, chat_id, 1) db.add_karma(to_user.id, chat_id, karma_amount)
# Получаем новую карму пользователя # Получаем новую карму пользователя
new_karma = db.get_karma(to_user.id, chat_id) new_karma = db.get_karma(to_user.id, chat_id)
@@ -74,15 +77,17 @@ def register_handlers(bot: AsyncTeleBot):
else: else:
to_user_display = to_user_name to_user_display = to_user_name
# Отправляем уведомление # Отправляем уведомление с указанием количества кармы
response = f"👍 Карма пользователя {to_user_display} увеличена! Текущая карма: {new_karma}" karma_emoji = "👍👍" if karma_amount == 2 else "👍"
karma_change = f"+{karma_amount}"
response = f"{karma_emoji} Карма пользователя {to_user_display} увеличена ({karma_change})! Текущая карма: {new_karma}"
sent_message = await bot.reply_to(message, response) sent_message = await bot.reply_to(message, response)
logger.info(f"Пользователь {from_user.id} поблагодарил {to_user.id}, карма: {new_karma}") logger.info(f"Пользователь {from_user.id} поблагодарил {to_user.id}, карма: {new_karma}")
# Удаляем уведомление через 5 секунд # Удаляем уведомление через 25 секунд
await asyncio.sleep(5) await asyncio.sleep(25)
try: try:
await bot.delete_message(chat_id, sent_message.message_id) await bot.delete_message(chat_id, sent_message.message_id)
except Exception as e: except Exception as e: