diff --git a/src/message_router.py b/src/message_router.py index 4d56153..6928be2 100644 --- a/src/message_router.py +++ b/src/message_router.py @@ -25,18 +25,18 @@ def route_im_message(ctx: Context, conf: Config, event: MessageReceiveEvent) -> Any: # ignore request if sender_type is not user - if event.event.sender.sender_type != "user": + if event.event.sender.sender_type != 'user': return # ignore request if event_type is not im.message.receive_v1 - if event.header.event_type != "im.message.receive_v1": + if event.header.event_type != 'im.message.receive_v1': return if event_is_processed(event): - app_logger.debug("Skip already processed: %s", attr.asdict(event.event)) + app_logger.debug('Skip already processed: %s', attr.asdict(event.event)) return if event.event.message.create_time < (time.time() * 1000 - 10 * 60 * 1000): # ignore event if event is 10 minutes old - app_logger.debug("Skip old event: %s", attr.asdict(event.event)) + app_logger.debug('Skip old event: %s', attr.asdict(event.event)) return myevent = MyReceiveEvent(event.event) @@ -44,12 +44,12 @@ def route_im_message(ctx: Context, conf: Config, event: MessageReceiveEvent) -> if myevent.is_group_chat() and not myevent.is_mentioned_bot(): return - feishu_logger.info("Feishu message: %s", attr.asdict(event)) + feishu_logger.info('Feishu message: %s', attr.asdict(event)) # ignore request if event has no content if not myevent.has_content(): message_sender.send_text_message(myevent, '请发送包含文字或图片的消息') - feishu_logger.info("Skip event with no content:") + feishu_logger.info('Skip event with no content:') return done = False @@ -64,7 +64,10 @@ def route_im_message(ctx: Context, conf: Config, event: MessageReceiveEvent) -> else: done = image_handler.handle_image(myevent) - if done: - mark_event_processed(event) + if not done: + message_sender.send_text_message(myevent, '生成失败!', True) + + mark_event_processed(event) + except Exception as e: message_sender.send_text_message(myevent, f'发生错误: {e}', True)