File tree Expand file tree Collapse file tree
astrbot/core/platform/sources/kook Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -332,16 +332,18 @@ async def send_text(
332332 async with self ._http_client .post (url , json = payload ) as resp :
333333 if resp .status == 200 :
334334 result = await resp .json ()
335- if result .get ("code" ) == 0 :
336- logger .info ("[KOOK] 发送消息成功" )
337- else :
338- logger .error (
339- f'[KOOK] 发送kook消息类型 "{ kook_message_type .name } " 失败: { result } '
335+ if result .get ("code" ) != 0 :
336+ raise RuntimeError (
337+ f'发送kook消息类型 "{ kook_message_type .name } " 失败: { result } '
340338 )
339+ # else:
340+ # logger.info("[KOOK] 发送消息成功")
341341 else :
342- logger . error (
343- f'[KOOK] 发送kook消息类型 "{ kook_message_type .name } " HTTP错误: { resp .status } , 响应内容 : { await resp .text ()} '
342+ raise RuntimeError (
343+ f'发送kook消息类型 "{ kook_message_type .name } " HTTP错误: { resp .status } , 响应内容 : { await resp .text ()} '
344344 )
345+ except RuntimeError :
346+ raise
345347 except Exception as e :
346348 logger .error (
347349 f'[KOOK] 发送kook消息类型 "{ kook_message_type .name } " 异常: { e } '
Original file line number Diff line number Diff line change @@ -164,18 +164,35 @@ async def send(self, message: MessageChain):
164164 # order_messages.sort(key=lambda x: 0 if x.reply_id else 1)
165165
166166 reply_id : str | int = ""
167+ # TODO 暂时用不了 ExceptionGroup,
168+ # 因为pyproject的target-version是"py3.10"
169+ errors : list [Exception ] = []
167170 for item in order_messages :
168171 if item .reply_id :
169172 reply_id = item .reply_id
170173 if not item .text :
171174 logger .debug (f'[Kook] 跳过空消息,类型为"{ item .type } "' )
172175 continue
173- await self .client .send_text (
174- self .channel_id ,
175- item .text ,
176- self .astrbot_message_type ,
177- item .type ,
178- reply_id ,
179- )
176+ try :
177+ await self .client .send_text (
178+ self .channel_id ,
179+ item .text ,
180+ self .astrbot_message_type ,
181+ item .type ,
182+ reply_id ,
183+ )
184+ except RuntimeError as exp :
185+ await self .client .send_text (
186+ self .channel_id ,
187+ str (exp ),
188+ self .astrbot_message_type ,
189+ KookMessageType .TEXT ,
190+ reply_id ,
191+ )
192+ errors .append (exp )
193+
194+ if errors :
195+ err_msg = "\n " .join ([str (err ) for err in errors ])
196+ logger .error (f"[kook] { err_msg } " )
180197
181198 await super ().send (message )
You can’t perform that action at this time.
0 commit comments