From d6753501e7e56f97696495be1ba7e45481729c1b Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 21 Sep 2025 06:13:59 +0300 Subject: [PATCH 1/3] Fix edit_text patch signature --- app/utils/message_patch.py | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/app/utils/message_patch.py b/app/utils/message_patch.py index 6e078318..246b1a5e 100644 --- a/app/utils/message_patch.py +++ b/app/utils/message_patch.py @@ -20,7 +20,16 @@ async def _answer_with_photo(self: Message, text: str = None, **kwargs): return await _original_answer(self, text, **kwargs) -async def _edit_with_photo(self: Message, text: str, **kwargs): +async def _edit_with_photo( + self: Message, + text: str, + parse_mode: str | None = None, + entities=None, + disable_web_page_preview: bool | None = None, + reply_markup=None, + message_effect_id=None, + **kwargs, +): if self.photo: # Всегда используем логотип если включен режим логотипа, # кроме специальных случаев (QR сообщения) @@ -31,10 +40,28 @@ async def _edit_with_photo(self: Message, text: str, **kwargs): else: media = self.photo[-1].file_id 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) + if parse_mode: + media_kwargs["parse_mode"] = parse_mode + if entities: + media_kwargs["caption_entities"] = entities + + edit_kwargs = {**kwargs} + if reply_markup is not None: + edit_kwargs["reply_markup"] = reply_markup + if message_effect_id is not None: + edit_kwargs["message_effect_id"] = message_effect_id + + return await self.edit_media(InputMediaPhoto(**media_kwargs), **edit_kwargs) + return await _original_edit_text( + self, + text, + parse_mode=parse_mode, + entities=entities, + disable_web_page_preview=disable_web_page_preview, + reply_markup=reply_markup, + message_effect_id=message_effect_id, + **kwargs, + ) def patch_message_methods(): From d226fedf7517df01f447858f60bb243b44aa6d29 Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 21 Sep 2025 06:24:59 +0300 Subject: [PATCH 2/3] Revert "Fix edit_text patch signature" --- app/utils/message_patch.py | 37 +++++-------------------------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/app/utils/message_patch.py b/app/utils/message_patch.py index 246b1a5e..6e078318 100644 --- a/app/utils/message_patch.py +++ b/app/utils/message_patch.py @@ -20,16 +20,7 @@ async def _answer_with_photo(self: Message, text: str = None, **kwargs): return await _original_answer(self, text, **kwargs) -async def _edit_with_photo( - self: Message, - text: str, - parse_mode: str | None = None, - entities=None, - disable_web_page_preview: bool | None = None, - reply_markup=None, - message_effect_id=None, - **kwargs, -): +async def _edit_with_photo(self: Message, text: str, **kwargs): if self.photo: # Всегда используем логотип если включен режим логотипа, # кроме специальных случаев (QR сообщения) @@ -40,28 +31,10 @@ async def _edit_with_photo( else: media = self.photo[-1].file_id media_kwargs = {"media": media, "caption": text} - if parse_mode: - media_kwargs["parse_mode"] = parse_mode - if entities: - media_kwargs["caption_entities"] = entities - - edit_kwargs = {**kwargs} - if reply_markup is not None: - edit_kwargs["reply_markup"] = reply_markup - if message_effect_id is not None: - edit_kwargs["message_effect_id"] = message_effect_id - - return await self.edit_media(InputMediaPhoto(**media_kwargs), **edit_kwargs) - return await _original_edit_text( - self, - text, - parse_mode=parse_mode, - entities=entities, - disable_web_page_preview=disable_web_page_preview, - reply_markup=reply_markup, - message_effect_id=message_effect_id, - **kwargs, - ) + 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(): From 7330c729e0b9563245aeecf6d3f7a82ee6d6f6fb Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 21 Sep 2025 06:27:10 +0300 Subject: [PATCH 3/3] Fix subscription extension success message --- app/handlers/subscription.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/handlers/subscription.py b/app/handlers/subscription.py index 8f3e18b6..b00bd0fe 100644 --- a/app/handlers/subscription.py +++ b/app/handlers/subscription.py @@ -2100,11 +2100,15 @@ async def confirm_extend_subscription( except Exception as e: logger.error(f"Ошибка отправки уведомления о продлении: {e}") + success_message = ( + "✅ Подписка успешно продлена!\n\n" + f"⏰ Добавлено: {days} дней\n" + f"Действует до: {subscription.end_date.strftime('%d.%m.%Y %H:%M')}\n\n" + f"💰 Списано: {texts.format_price(price)}" + ) + await callback.message.edit_text( - f"✅ Подписка успешно продлена!\n\n", - f"⏰ Добавлено: {days} дней\n", - f"Действует до: {subscription.end_date.strftime('%d.%m.%Y %H:%M')}\n\n", - f"💰 Списано: {texts.format_price(price)}", + success_message, reply_markup=get_back_keyboard(db_user.language) )