diff --git a/src/config.py b/src/config.py
index 221c311..6845962 100644
--- a/src/config.py
+++ b/src/config.py
@@ -194,6 +194,9 @@ COMMAND_MESSAGES = {
"Способ 2: Поставить реакцию (работает как переключатель)\n"
"• Поставил 👍 → +1 карма | Убрал 👍 → -1 карма\n"
"• Поставил 👎 → -1 карма | Убрал 👎 → +1 карма\n"
+ "• Поставил 🔥 → +2 кармы | Убрал 🔥 → -2 кармы\n"
+ "• Поставил ❤ → +5 кармы | Убрал ❤ → -5 кармы\n"
+ "• Поставил ❤🔥 → +10 кармы | Убрал ❤🔥 → -10 кармы\n"
"• Нет ограничений по времени для реакций!\n\n"
"🔥 БОНУС: Благодарность с восклицательным знаком даёт x2 кармы!\n"
"• спасибо! → +2 кармы 👍👍\n"
diff --git a/src/modules/0_karma_tracker.py b/src/modules/0_karma_tracker.py
index c289039..730c22f 100644
--- a/src/modules/0_karma_tracker.py
+++ b/src/modules/0_karma_tracker.py
@@ -39,10 +39,11 @@ def register_handlers(bot: AsyncTeleBot):
"""
Обрабатывает реакции на сообщения.
Реакции работают как переключатель:
- - Поставил 👍 → +1 карма
- - Убрал 👍 → -1 карма
- - Поставил 👎 → -1 карма
- - Убрал 👎 → +1 карма
+ - Поставил 👍 → +1 карма | Убрал 👍 → -1 карма
+ - Поставил 👎 → -1 карма | Убрал 👎 → +1 карма
+ - Поставил 🔥 → +2 кармы | Убрал 🔥 → -2 кармы
+ - Поставил ❤ → +5 кармы | Убрал ❤ → -5 кармы
+ - Поставил ❤🔥 → +10 кармы | Убрал ❤🔥 → -10 кармы
"""
try:
logger.info(f"[KARMA] Получена реакция от {reaction.user.id}")
@@ -77,6 +78,9 @@ def register_handlers(bot: AsyncTeleBot):
# Проверяем старые реакции
old_thumbs_up = False
old_thumbs_down = False
+ old_heart = False
+ old_fire_heart = False
+ old_fire = False
if reaction.old_reaction:
for react in reaction.old_reaction:
if isinstance(react, ReactionTypeEmoji):
@@ -84,10 +88,19 @@ def register_handlers(bot: AsyncTeleBot):
old_thumbs_up = True
elif react.emoji == "👎":
old_thumbs_down = True
+ elif react.emoji == "❤":
+ old_heart = True
+ elif react.emoji == "❤🔥":
+ old_fire_heart = True
+ elif react.emoji == "🔥":
+ old_fire = True
# Проверяем новые реакции
new_thumbs_up = False
new_thumbs_down = False
+ new_heart = False
+ new_fire_heart = False
+ new_fire = False
if reaction.new_reaction:
for react in reaction.new_reaction:
if isinstance(react, ReactionTypeEmoji):
@@ -95,6 +108,12 @@ def register_handlers(bot: AsyncTeleBot):
new_thumbs_up = True
elif react.emoji == "👎":
new_thumbs_down = True
+ elif react.emoji == "❤":
+ new_heart = True
+ elif react.emoji == "❤🔥":
+ new_fire_heart = True
+ elif react.emoji == "🔥":
+ new_fire = True
# Определяем изменение кармы
karma_change = 0
@@ -122,10 +141,40 @@ def register_handlers(bot: AsyncTeleBot):
karma_change = 1
action_emoji = "👎"
action_text = "убрал 👎"
+ elif new_heart and not old_heart:
+ # Добавили ❤
+ karma_change = 5
+ action_emoji = "❤"
+ action_text = "поставил ❤"
+ elif old_heart and not new_heart:
+ # Убрали ❤
+ karma_change = -5
+ action_emoji = "❤"
+ action_text = "убрал ❤"
+ elif new_fire_heart and not old_fire_heart:
+ # Добавили ❤🔥
+ karma_change = 10
+ action_emoji = "❤🔥"
+ action_text = "поставил ❤🔥"
+ elif old_fire_heart and not new_fire_heart:
+ # Убрали ❤🔥
+ karma_change = -10
+ action_emoji = "❤🔥"
+ action_text = "убрал ❤🔥"
+ elif new_fire and not old_fire:
+ # Добавили 🔥
+ karma_change = 2
+ action_emoji = "🔥"
+ action_text = "поставил 🔥"
+ elif old_fire and not new_fire:
+ # Убрали 🔥
+ karma_change = -2
+ action_emoji = "🔥"
+ action_text = "убрал 🔥"
# Если нет изменений - выходим
if karma_change == 0:
- logger.info(f"[KARMA] Нет изменений в реакциях 👍/👎")
+ logger.info(f"[KARMA] Нет изменений в реакциях")
return
logger.info(f"[KARMA] {action_text} от {from_user.id} для {to_user_id}, изменение кармы: {karma_change}")