From 8e09a9e0fd7b026f9059b5db3cb6a8c8039d9869 Mon Sep 17 00:00:00 2001
From: linyuchen <lin.yu.chen@hotmail.com>
Date: Tue, 27 Feb 2024 03:37:52 +0800
Subject: [PATCH] fix: receive video and file

---
 src/ntqqapi/types.ts        | 38 ++++++++++++++++++++-----------------
 src/onebot11/constructor.ts | 18 ++++++++++--------
 2 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/src/ntqqapi/types.ts b/src/ntqqapi/types.ts
index 4056148..e1c4a0a 100644
--- a/src/ntqqapi/types.ts
+++ b/src/ntqqapi/types.ts
@@ -45,11 +45,12 @@ export interface Group {
     members: GroupMember[]  // 原始数据是没有这个的,为了方便自己加了这个字段
 }
 
-export enum GroupMemberRole{
+export enum GroupMemberRole {
     normal = 2,
     admin = 3,
     owner = 4
 }
+
 export interface GroupMember {
     avatarPath: string;
     cardName: string;
@@ -142,24 +143,26 @@ export interface SendFaceElement {
     faceElement: FaceElement
 }
 
+export interface FileElement {
+    "fileMd5"?: "",
+    "fileName": string,
+    "filePath": string,
+    "fileSize": string,
+    "picHeight"?: number,
+    "picWidth"?: number,
+    "picThumbPath"?: {},
+    "file10MMd5"?: "",
+    "fileSha"?: "",
+    "fileSha3"?: "",
+    "fileUuid"?: "",
+    "fileSubId"?: "",
+    "thumbFileSize"?: number
+}
+
 export interface SendFileElement {
     "elementType": ElementType.FILE,
     "elementId": "",
-    "fileElement": {
-        "fileMd5"?: "",
-        "fileName": string,
-        "filePath": string,
-        "fileSize": string,
-        "picHeight"?: number,
-        "picWidth"?: number,
-        "picThumbPath"?: {},
-        "file10MMd5"?: "",
-        "fileSha"?: "",
-        "fileSha3"?: "",
-        "fileUuid"?: "",
-        "fileSubId"?: "",
-        "thumbFileSize"?: number
-    }
+    "fileElement": FileElement
 }
 
 export type SendMessageElement = SendTextElement | SendPttElement |
@@ -291,7 +294,8 @@ export interface RawMessage {
         arkElement: ArkElement;
         grayTipElement: GrayTipElement;
         faceElement: FaceElement;
-        videoElement: VideoElement
+        videoElement: VideoElement;
+        fileElement: FileElement;
     }[];
 }
 
diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts
index 69b66c6..2c49a89 100644
--- a/src/onebot11/constructor.ts
+++ b/src/onebot11/constructor.ts
@@ -109,15 +109,17 @@ export class OB11Constructor {
                 }
             } else if (element.videoElement) {
                 message_data["type"] = OB11MessageDataType.video;
-                message_data["data"]["file"] = element.pttElement.filePath
-                message_data["data"]["file_id"] = element.pttElement.fileUuid
+                message_data["data"]["file"] = element.videoElement.filePath
+                message_data["data"]["file_id"] = element.videoElement.fileUuid
                 // 怎么拿到url呢
-                try {
-                    // await NTQQApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid,
-                    //     element.elementId, element.picElement.thumbPath.get(0), element.picElement.sourcePath)
-                } catch (e) {
-                }
-            } else if (element.pttElement) {
+            } else if (element.fileElement) {
+                message_data["type"] = OB11MessageDataType.file;
+                message_data["data"]["file"] = element.fileElement.filePath
+                message_data["data"]["file_id"] = element.fileElement.fileUuid
+                message_data["data"]["file_size"] = element.fileElement.fileSize
+                // 怎么拿到url呢
+            }
+            else if (element.pttElement) {
                 message_data["type"] = OB11MessageDataType.voice;
                 message_data["data"]["file"] = element.pttElement.filePath
                 message_data["data"]["file_id"] = element.pttElement.fileUuid