diff --git a/app/task.py b/app/task.py index 1bc5aac..3c92ab2 100644 --- a/app/task.py +++ b/app/task.py @@ -12,6 +12,48 @@ from app.utils.feishu import create_doc, get_doc_block, create_doc_block, get_me from app.utils.utils import update_record +def parse_history_message(data): + sender_id = "" + + message_content_data = [] + message_images_data = [] + + items = data.get("data").get("items") + + for index, item in enumerate(items): + + sender_id_item = item.get("sender").get("id") + if index == 0: + sender_id = sender_id_item + + if sender_id != sender_id_item: + continue + + item_content = json.loads(item.get("body").get("content")) + + if item_content.get("text"): + message_content_data.append(item_content.get("text")) + + if item_content.get("content"): + message_content_content_data = item_content.get("content") + + tmp_content_data = [] + for message_content_content_item in message_content_content_data: + for message_content_content_item_item in message_content_content_item: + tmp_content_data.append(message_content_content_item_item) + + for tmp_content_data_item in tmp_content_data: + print(tmp_content_data_item) + if tmp_content_data_item.get("tag") == "text": + message_content_data.append(tmp_content_data_item.get("text")) + if tmp_content_data_item.get("tag") == "img": + message_images_data.append(tmp_content_data_item.get("image_key")) + + print(message_content_data) + print(message_images_data) + + return message_content_data, message_images_data + @shared_task(include_result=False) def process_message_callback( app_id, app_secret, bitable_token, table_id, cache_dir, data @@ -74,13 +116,18 @@ def process_message_callback( .build() ) - record["问题概述"] = content_text record["创建人"] = [{"id": sender_id}] history_message_data = get_messages(client, "thread", thread_id, cache_dir) lark.logger.info(f"history_message_data: {history_message_data}") - for image in images: + message_content_data, message_images_data = parse_history_message( + history_message_data + ) + + record["问题概述"] = "\n".join(message_content_data) + + for image in message_images_data: image_path = get_message_resource(client, message_id, image, "image", cache_dir) print("下载文件成功:", image, image_path) file_token = upload_media(client, image_path, "bitable_image", bitable_token) @@ -130,6 +177,7 @@ def sync_xbot_activity_info(): office_activity_uuids = get_activity_info(token) print(f"office_activity_uuids count: {len(office_activity_uuids)}") + for item in office_activity_uuids: robot_uuid = item.get("robotUuid") package_view_name = item.get("packageViewName") diff --git a/app/utils/feishu.py b/app/utils/feishu.py index 6924e8b..cfaffe7 100644 --- a/app/utils/feishu.py +++ b/app/utils/feishu.py @@ -289,6 +289,8 @@ def get_messages(client, container_id_type="", container_id="", page_size=50): ListMessageRequest.builder() .container_id_type(container_id_type) .container_id(container_id) + .sort_type("ByCreateTimeAsc") + .page_size(50) .build() )