From 7992cf9e2610d85df365d4e2d3f80fbe8802079e Mon Sep 17 00:00:00 2001 From: yazhog Date: Wed, 10 Sep 2025 01:58:26 +0300 Subject: [PATCH] Change QR photo back to logo when leaving referral QR --- app/utils/message_patch.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/utils/message_patch.py b/app/utils/message_patch.py index 102fefe5..a9c6d606 100644 --- a/app/utils/message_patch.py +++ b/app/utils/message_patch.py @@ -3,22 +3,33 @@ from aiogram.types import Message, FSInputFile, InputMediaPhoto LOGO_PATH = Path("vpn_logo.png") + +def _is_qr_message(message: Message) -> bool: + return bool(message.caption and message.caption.startswith("\U0001F517 Ваша реферальная ссылка")) + + _original_answer = Message.answer _original_edit_text = Message.edit_text + async def _answer_with_photo(self: Message, text: str = None, **kwargs): if LOGO_PATH.exists(): return await self.answer_photo(FSInputFile(LOGO_PATH), caption=text, **kwargs) return await _original_answer(self, text, **kwargs) + async def _edit_with_photo(self: Message, text: str, **kwargs): if self.photo: - media_kwargs = {"media": self.photo[-1].file_id, "caption": text} + media = self.photo[-1].file_id + if _is_qr_message(self) and LOGO_PATH.exists(): + media = FSInputFile(LOGO_PATH) + media_kwargs = {"media": media, "caption": text} if "parse_mode" in kwargs: media_kwargs["parse_mode"] = kwargs.pop("parse_mode") return await self.edit_media(InputMediaPhoto(**media_kwargs), **kwargs) return await _original_edit_text(self, text, **kwargs) + def patch_message_methods(): Message.answer = _answer_with_photo Message.edit_text = _edit_with_photo