refactor: parse video|file element

This commit is contained in:
linyuchen
2024-03-23 12:03:22 +08:00
parent 5cf45a452b
commit 89c3f07cba
4 changed files with 23 additions and 34 deletions

@@ -218,7 +218,6 @@ function onLoad() {
parseInt(operatorId),
oriMessage.msgShortId
)
postOB11Event(groupRecallEvent);
}
// 不让入库覆盖原来消息,不然就获取不到撤回的消息内容了

@@ -19,7 +19,7 @@ import {
SelfInfo,
Sex,
TipGroupElementType,
User
User, VideoElement
} from '../ntqqapi/types';
import {getFriend, getGroupMember, selfInfo, tempGroupCodeMap} from '../common/data';
import {EventType} from "./event/OB11BaseEvent";
@@ -157,38 +157,25 @@ export class OB11Constructor {
}).then()
// 不在自动下载图片
} else if (element.videoElement) {
message_data["type"] = OB11MessageDataType.video;
message_data["data"]["file"] = element.videoElement.fileName
message_data["data"]["path"] = element.videoElement.filePath
message_data["data"]["file_id"] = element.videoElement.fileUuid
message_data["data"]["file_size"] = element.videoElement.fileSize
dbUtil.addFileCache(element.videoElement.fileUuid, {
} else if (element.videoElement || element.fileElement) {
const videoOrFileElement = element.videoElement || element.fileElement
const ob11MessageDataType = element.videoElement ? OB11MessageDataType.video : OB11MessageDataType.file
message_data["type"] = ob11MessageDataType;
message_data["data"]["file"] = videoOrFileElement.fileName
message_data["data"]["path"] = videoOrFileElement.filePath
message_data["data"]["file_id"] = videoOrFileElement.fileUuid
message_data["data"]["file_size"] = videoOrFileElement.fileSize
dbUtil.addFileCache(videoOrFileElement.fileUuid, {
msgId: msg.msgId,
fileName: element.videoElement.fileName,
filePath: element.videoElement.filePath,
fileSize: element.videoElement.fileSize,
fileName: videoOrFileElement.fileName,
filePath: videoOrFileElement.filePath,
fileSize: videoOrFileElement.fileSize,
downloadFunc: async () => {
await NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid,
element.elementId, element.videoElement.thumbPath.get(0), element.videoElement.filePath)
}
}).then()
// 怎么拿到url呢
} else if (element.fileElement) {
message_data["type"] = OB11MessageDataType.file;
message_data["data"]["file"] = element.fileElement.fileName
// message_data["data"]["path"] = element.fileElement.filePath
message_data["data"]["file_id"] = element.fileElement.fileUuid
message_data["data"]["file_size"] = element.fileElement.fileSize
dbUtil.addFileCache(element.fileElement.fileUuid, {
msgId: msg.msgId,
fileName: element.fileElement.fileName,
fileUuid: element.fileElement.fileUuid,
filePath: element.fileElement.filePath,
fileSize: element.fileElement.fileSize,
downloadFunc: async () => {
await NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid,
element.elementId, null, element.fileElement.filePath)
await NTQQFileApi.downloadMedia(
msg.msgId, msg.chatType, msg.peerUid,
element.elementId,
ob11MessageDataType == OB11MessageDataType.video ? (videoOrFileElement as VideoElement).thumbPath.get(0) : null,
videoOrFileElement.filePath)
}
}).then()
// 怎么拿到url呢
@@ -235,8 +222,9 @@ export class OB11Constructor {
return;
}
if (msg.senderUin){
const member = await getGroupMember(msg.peerUid, msg.senderUin);
let member = await getGroupMember(msg.peerUid, msg.senderUin);
if (member && member.cardName !== msg.sendMemberName) {
member.cardName = msg.sendMemberName;
return new OB11GroupCardEvent(parseInt(msg.peerUid), parseInt(msg.senderUin), msg.sendMemberName, member.cardName)
}
}

@@ -108,6 +108,7 @@ export enum OB11MessageDataType {
reply = "reply",
json = "json",
face = "face",
mface = "face", // 商城表情
node = "node", // 合并转发消息
}

@@ -1,6 +1,7 @@
/// <reference path="../global.d.ts" />
import { CheckVersion } from '../common/types';
import {SettingButton, SettingItem, SettingList, SettingSwitch, SettingSelect} from './components';
// @ts-ignore
import StyleRaw from './style.css?raw';
// 打开设置界面时触发
@@ -118,7 +119,7 @@ async function onSettingWindowCreated(view: Element) {
),
SettingItem(
'使用 Base64 编码获取文件',
'开启后,调用 /get_image、/get_record 时,获取不到 url 时添加一个 Base64 字段',
'调用 /get_image、/get_record、/get_file 时,没有 url 时添加 Base64 字段',
SettingSwitch('enableLocalFile2Url', config.enableLocalFile2Url),
),
SettingItem(