@@ -93,6 +93,24 @@ async def _handle_data_update(self, changes: Dict[str, bool]) -> None:
9393 if changes .get ("geoip" ) or changes .get ("cn_ipv4" ):
9494 self .geoip_service .reload ()
9595
96+ async def _announce_private_addition (self , chat , domain : str , add_result : dict ) -> bool :
97+ """Broadcast only successful additions that originated in private chat."""
98+ if (
99+ not self .group_service
100+ or not add_result .get ("success" )
101+ or getattr (chat , "type" , None ) != "private"
102+ ):
103+ return False
104+ try :
105+ return await self .group_service .announce_rule_submission (
106+ domain ,
107+ add_result .get ("commit_sha" , "" ),
108+ add_result .get ("commit_url" , "" ),
109+ )
110+ except Exception as e :
111+ logger .warning ("群组播报调用异常,不影响私聊添加结果: {}" , e )
112+ return False
113+
96114 async def check_and_add_domain_auto (
97115 self ,
98116 domain : str ,
@@ -1359,6 +1377,12 @@ async def _handle_admin_force_add_callback(self, query, user_id: int, data: str)
13591377 reply_markup = InlineKeyboardMarkup (keyboard )
13601378
13611379 await query .edit_message_text (result_text , reply_markup = reply_markup , parse_mode = 'Markdown' )
1380+ if add_result .get ("success" ):
1381+ await self ._announce_private_addition (
1382+ getattr (query .message , "chat" , None ),
1383+ target_domain ,
1384+ add_result ,
1385+ )
13621386 self .set_user_state (user_id , "waiting_add_domain" )
13631387
13641388 except Exception as e :
@@ -1522,6 +1546,12 @@ async def _add_domain_to_github(self, query, user_id: int, description: str):
15221546 reply_markup = InlineKeyboardMarkup (keyboard )
15231547
15241548 await query .edit_message_text (result_text , reply_markup = reply_markup , parse_mode = 'Markdown' )
1549+ if add_result .get ("success" ):
1550+ await self ._announce_private_addition (
1551+ getattr (query .message , "chat" , None ),
1552+ target_domain ,
1553+ add_result ,
1554+ )
15251555
15261556 # 保持添加模式,便于继续输入域名
15271557 self .set_user_state (user_id , "waiting_add_domain" )
@@ -1587,6 +1617,12 @@ async def _add_domain_to_github_message(self, message, user_id: int, description
15871617 reply_markup = InlineKeyboardMarkup (keyboard )
15881618
15891619 await processing_msg .edit_text (result_text , reply_markup = reply_markup , parse_mode = 'Markdown' )
1620+ if add_result .get ("success" ):
1621+ await self ._announce_private_addition (
1622+ getattr (message , "chat" , None ),
1623+ target_domain ,
1624+ add_result ,
1625+ )
15901626
15911627 # 保持添加模式,便于继续输入域名
15921628 self .set_user_state (user_id , "waiting_add_domain" )
0 commit comments