1 parent
14e1f91658
commit
4d92f700ad
14 files changed
+493
-132
No files matched your search
+81
@@ -0,0 +1,81 @@
|
||||
import time
|
||||
import json
|
||||
|
||||
from itertools import chain
|
||||
|
||||
from celery import shared_task
|
||||
from celery import Task
|
||||
|
||||
from app.utils import *
|
||||
|
||||
|
||||
@shared_task(ignore_result=False)
|
||||
def add(a: int, b: int) -> int:
|
||||
return a + b
|
||||
|
||||
|
||||
@shared_task()
|
||||
def block() -> None:
|
||||
time.sleep(5)
|
||||
|
||||
|
||||
@shared_task(bind=True, ignore_result=False)
|
||||
def process(self: Task, total: int) -> object:
|
||||
for i in range(total):
|
||||
self.update_state(state="PROGRESS", meta={"current": i + 1, "total": total})
|
||||
time.sleep(1)
|
||||
|
||||
return {"current": total, "total": total}
|
||||
|
||||
|
||||
@shared_task(include_result=False)
|
||||
def process_message_callback(client, bitable_token, table_id, cache_dir, data) -> None:
|
||||
record = {}
|
||||
images = []
|
||||
images_token = []
|
||||
message_content = ""
|
||||
message_type = data.event.message.message_type
|
||||
content = json.loads(data.event.message.content)
|
||||
|
||||
if message_type == "post":
|
||||
content = content["content"]
|
||||
for item in chain.from_iterable(content):
|
||||
if item.get("tag") == "text":
|
||||
message_content += item["text"]
|
||||
|
||||
if item.get("tag") == "img":
|
||||
images.append(item["image_key"])
|
||||
|
||||
if message_type == "text":
|
||||
message_content = content["text"].replace("@_user_1", "").strip()
|
||||
|
||||
sender_id = data.event.sender.sender_id.open_id
|
||||
record["问题概述"] = message_content
|
||||
record["创建人"] = sender_id
|
||||
message_id = data.event.message.message_id
|
||||
|
||||
# 对 image_key 处理并并上传至多维表格
|
||||
|
||||
for image in images:
|
||||
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)
|
||||
print("上传文件成功:", file_token)
|
||||
images_token.append(file_token)
|
||||
|
||||
if images:
|
||||
record["附件"] = [{"file_token": image} for image in images_token]
|
||||
|
||||
record_id = add_record(client, bitable_token, table_id, record)
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
update_data = {"创建人": {"id": sender_id}}
|
||||
update_record(client, bitable_token, table_id, record_id, update_data)
|
||||
|
||||
# content = {"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}
|
||||
# send_message(receive_id, content)
|
||||
|
||||
# 回复群组的消息
|
||||
content = f'{{"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}}'
|
||||
send_group_message(client, message_id, content)
|
||||
Reference in new issue
Block a user