From 543990996d78cc1ef9aa619dd56215ed13f53da2 Mon Sep 17 00:00:00 2001 From: woni <320753691@qq.com> Date: Wed, 5 Jun 2024 11:39:06 +0800 Subject: [PATCH] fix cover creator --- app/task.py | 6 +- app/test/tmp.py | 197 +++++++++------------------------------------ app/utils/utils.py | 27 ++++++- 3 files changed, 70 insertions(+), 160 deletions(-) diff --git a/app/task.py b/app/task.py index 979df78..87f0574 100644 --- a/app/task.py +++ b/app/task.py @@ -171,7 +171,11 @@ def process_message_callback( send_group_message(client, message_id, content) # 表格触发器会自动设置 "创建人-售后专用" 为创建者, 使用接口调整 - time.sleep(2) + for _ in range(100): + creator_names = get_record_creator_name_by_id(client, bitable_token, table_id, record_id) + if "官方应用指令" in creator_names: + break + time.sleep(2) update_data = {"创建人-售后专用": [{"id": thread_sender_id}]} update_record(client, bitable_token, table_id, record_id, update_data) diff --git a/app/test/tmp.py b/app/test/tmp.py index b7e7070..9844d6f 100644 --- a/app/test/tmp.py +++ b/app/test/tmp.py @@ -1,166 +1,47 @@ -import json - -data = { - "code": 0, - "data": { - "has_more": False, - "items": [ - { - "body": { - "content": '{"title":"","content":[[{"tag":"text","text":"图文测试 ","style":[]}],[{"tag":"img","image_key":"img_v3_02ba_8d84e41e-97c1-4fc4-813a-2a21e9569c2g","width":390,"height":221}]]}' - }, - "chat_id": "oc_078dfeaefc42b43a25c35d3de348c7fc", - "create_time": "1716885856662", - "deleted": False, - "message_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "msg_type": "post", - "sender": { - "id": "ou_d542891996bf1961f9a94563e6bd4d49", - "id_type": "open_id", - "sender_type": "user", - "tenant_key": "11cf67642edc175f", - }, - "thread_id": "omt_153011a9ab87175d", - "update_time": "1716885856662", - "updated": False, - }, - { - "body": {"content": '{"text":"测试"}'}, - "chat_id": "oc_078dfeaefc42b43a25c35d3de348c7fc", - "create_time": "1716885862510", - "deleted": False, - "message_id": "om_c42796d82e790d1e840e28407f7feb4f", - "msg_type": "text", - "parent_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "root_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "sender": { - "id": "ou_d542891996bf1961f9a94563e6bd4d49", - "id_type": "open_id", - "sender_type": "user", - "tenant_key": "11cf67642edc175f", - }, - "thread_id": "omt_153011a9ab87175d", - "update_time": "1716885862510", - "updated": False, - }, - { - "body": {"content": '{"text":"@_user_1 记录问题"}'}, - "chat_id": "oc_078dfeaefc42b43a25c35d3de348c7fc", - "create_time": "1716885870380", - "deleted": False, - "mentions": [ - { - "id": "ou_76322e169bb6bb8f6e1c8b6631b54d72", - "id_type": "open_id", - "key": "@_user_1", - "name": "官方应用指令", - "tenant_key": "11cf67642edc175f", - } - ], - "message_id": "om_84cf62c399045ff9a522f75519919dd2", - "msg_type": "text", - "parent_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "root_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "sender": { - "id": "ou_d542891996bf1961f9a94563e6bd4d49", - "id_type": "open_id", - "sender_type": "user", - "tenant_key": "11cf67642edc175f", - }, - "thread_id": "omt_153011a9ab87175d", - "update_time": "1716885870380", - "updated": False, - }, - { - "body": { - "content": '{"text":"问题已经记录到多维表格, 及时更新工单状态💕"}' - }, - "chat_id": "oc_078dfeaefc42b43a25c35d3de348c7fc", - "create_time": "1716885873082", - "deleted": False, - "message_id": "om_6cb45fa521c10b1859b68efbe49f969c", - "msg_type": "text", - "parent_id": "om_84cf62c399045ff9a522f75519919dd2", - "root_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "sender": { - "id": "cli_a5110cd1da70900b", - "id_type": "app_id", - "sender_type": "app", - "tenant_key": "11cf67642edc175f", - }, - "thread_id": "omt_153011a9ab87175d", - "update_time": "1716885873082", - "updated": False, - }, - { - "body": { - "content": '{"title":"","content":[[{"tag":"img","image_key":"img_v3_02ba_faca622b-d422-43a7-b72e-b6888c3a85dg","width":932,"height":271}]]}' - }, - "chat_id": "oc_078dfeaefc42b43a25c35d3de348c7fc", - "create_time": "1716887901602", - "deleted": False, - "message_id": "om_65d7ba979bdd8dbe9ff3ea0f2a8c6272", - "msg_type": "post", - "parent_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "root_id": "om_3bc3b34aafeba7cb69c6a83d0695041e", - "sender": { - "id": "ou_d542891996bf1961f9a94563e6bd4d49", - "id_type": "open_id", - "sender_type": "user", - "tenant_key": "11cf67642edc175f", - }, - "thread_id": "omt_153011a9ab87175d", - "update_time": "1716887901602", - "updated": False, - }, - ], - "page_token": "", - }, - "msg": "success", -} -sender_id = "" - -message_content_data = [] -message_images_data = [] +import lark_oapi as lark +from lark_oapi.api.bitable.v1 import * -items = data.get("data").get("items") +# SDK 使用说明: https://github.com/larksuite/oapi-sdk-python#readme +def main(): + # 创建client + # 使用 user_access_token 需开启 token 配置, 并在 request_option 中配置 token + client = ( + lark.Client.builder() + .enable_set_token(True) + .log_level(lark.LogLevel.DEBUG) + .build() + ) -for index, item in enumerate(items): - print("=======================") + # 构造请求对象 + request: GetAppTableRecordRequest = ( + GetAppTableRecordRequest.builder() + .app_token("XDmHbhbZcaY4gZsOvBJcLcHonKh") + .table_id("tblwgGCDCE74Ugv6") + .record_id("recueIjTAp0vXl") + .build() + ) - sender_id_item = item.get("sender").get("id") - if index == 0: - sender_id = sender_id_item + # 发起请求 + option = ( + lark.RequestOption.builder() + .user_access_token("u-ejSdCjHxt11FS5WMMy7wOwlh5NuQh459pww045mEyxe.") + .build() + ) + response: GetAppTableRecordResponse = client.bitable.v1.app_table_record.get( + request, option + ) - if sender_id != sender_id_item: - continue + # 处理失败返回 + if not response.success(): + lark.logger.error( + f"client.bitable.v1.app_table_record.get failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}" + ) + return - item_content = json.loads(item.get("body").get("content")) + # 处理业务结果 + print([item.get("name") for item in response.data.record.fields["创建人-售后专用"]]) - message_id = item.get("message_id") - 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({message_id: tmp_content_data_item.get("image_key")}) - - # print(item_content) - -print("==========sum=============") - -print(message_content_data) -print(message_images_data) +if __name__ == "__main__": + main() diff --git a/app/utils/utils.py b/app/utils/utils.py index 189c79c..35fc471 100644 --- a/app/utils/utils.py +++ b/app/utils/utils.py @@ -261,6 +261,32 @@ def get_filtered_record_by_uuid( print("找到了多条记录") +def get_record_creator_name_by_id(client, bitable_token, table_id, record_id): + """获取记录创建人姓名 售后专用""" + # 构造请求对象 + request: GetAppTableRecordRequest = ( + GetAppTableRecordRequest.builder() + .app_token(bitable_token) + .table_id(table_id) + .record_id(record_id) + .build() + ) + + response: GetAppTableRecordResponse = client.bitable.v1.app_table_record.get( + request + ) + + # 处理失败返回 + if not response.success(): + lark.logger.error( + f"client.bitable.v1.app_table_record.get failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}" + ) + return + + # 处理业务结果 + return [item.get("name") for item in response.data.record.fields["创建人-售后专用"]] + + if __name__ == "__main__": app_id = os.environ["APP_ID"] @@ -283,4 +309,3 @@ if __name__ == "__main__": .log_level(lark.LogLevel.DEBUG) .build() ) -