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}")