Skip to content

Commit bc1e2a4

Browse files
committed
fix(ui): suppress main menu link previews
1 parent 77b8521 commit bc1e2a4

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/handlers/handler_manager.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,7 @@ async def start_command(self, update: Update, context: ContextTypes.DEFAULT_TYPE
13061306
self._build_main_menu_text(username),
13071307
reply_markup=self._build_main_menu_keyboard(),
13081308
parse_mode="Markdown",
1309+
disable_web_page_preview=True,
13091310
)
13101311

13111312
except Exception as e:
@@ -1614,15 +1615,25 @@ async def _show_main_menu(self, query, user_id: Optional[int] = None):
16141615
username = query.from_user.first_name or query.from_user.username or "用户"
16151616
welcome_text = self._build_main_menu_text(username)
16161617
reply_markup = self._build_main_menu_keyboard()
1617-
await query.edit_message_text(welcome_text, reply_markup=reply_markup, parse_mode='Markdown')
1618+
await query.edit_message_text(
1619+
welcome_text,
1620+
reply_markup=reply_markup,
1621+
parse_mode="Markdown",
1622+
disable_web_page_preview=True,
1623+
)
16181624

16191625
async def _show_main_menu_message(self, message):
16201626
"""通过消息显示主菜单"""
16211627
self._reset_user_flow(message.from_user.id)
16221628
username = message.from_user.first_name or message.from_user.username or "用户"
16231629
welcome_text = self._build_main_menu_text(username)
16241630
reply_markup = self._build_main_menu_keyboard()
1625-
await message.reply_text(welcome_text, reply_markup=reply_markup, parse_mode='Markdown')
1631+
await message.reply_text(
1632+
welcome_text,
1633+
reply_markup=reply_markup,
1634+
parse_mode="Markdown",
1635+
disable_web_page_preview=True,
1636+
)
16261637

16271638
def _matchscope_endpoint(self) -> str:
16281639
return (

tests/test_ui_ux.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,11 @@ async def test_return_to_main_menu_resets_state_and_stale_actions(self):
330330
self.assertEqual(manager.user_states[42]["state"], "idle")
331331
self.assertEqual(manager.user_states[42]["data"], {})
332332
self.assertNotIn((42, "old"), manager._pending_actions)
333+
self.assertTrue(
334+
query.edit_message_text.await_args.kwargs[
335+
"disable_web_page_preview"
336+
]
337+
)
333338

334339
async def test_delete_placeholder_resets_state_without_deleting_rules(self):
335340
manager = self._stateful_manager()
@@ -376,6 +381,11 @@ async def test_start_command_invalidates_old_confirmation_buttons(self):
376381

377382
self.assertEqual(manager.user_states[42]["state"], "idle")
378383
self.assertNotIn((42, "old"), manager._pending_actions)
384+
self.assertTrue(
385+
update.message.reply_text.await_args.kwargs[
386+
"disable_web_page_preview"
387+
]
388+
)
379389

380390
async def test_unknown_command_keeps_membership_gate(self):
381391
manager = self._stateful_manager()

0 commit comments

Comments
 (0)