From fd10469685677178461d64acd64b8dbfb46066e4 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Mon, 10 Jun 2024 14:35:00 +0800 Subject: [PATCH] feat: video url --- src/ntqqapi/api/file.ts | 10 +++++++++- src/onebot11/constructor.ts | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ntqqapi/api/file.ts b/src/ntqqapi/api/file.ts index c956757..8776e2c 100644 --- a/src/ntqqapi/api/file.ts +++ b/src/ntqqapi/api/file.ts @@ -10,15 +10,23 @@ import { ElementType, IMAGE_HTTP_HOST, IMAGE_HTTP_HOST_NT, PicElement, - RawMessage, } from '../types' import path from 'path' import fs from 'fs' import { ReceiveCmdS } from '../hook' import { log } from '@/common/utils' import { rkeyManager } from '@/ntqqapi/api/rkey' +import { wrapperApi } from '@/ntqqapi/native/wrapper' +import { Peer } from '@/ntqqapi/api/msg' export class NTQQFileApi { + static async getVideoUrl(peer: Peer, msgId: string, elementId: string): Promise { + return (await wrapperApi.NodeIQQNTWrapperSession.getRichMediaService().getVideoPlayUrlV2(peer, + msgId, + elementId, + 0, + { downSourceType: 1, triggerType: 1 })).urlResult?.domainUrl[0]?.url; + } static async getFileType(filePath: string) { return await callNTQQApi<{ ext: string }>({ className: NTQQApiClass.FS_API, diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts index e179f01..378f6e5 100644 --- a/src/onebot11/constructor.ts +++ b/src/onebot11/constructor.ts @@ -200,6 +200,13 @@ export class OB11Constructor { message_data['data']['path'] = videoOrFileElement.filePath message_data['data']['file_id'] = videoOrFileElement.fileUuid message_data['data']['file_size'] = videoOrFileElement.fileSize + if (element.videoElement) { + message_data['data']['url'] = await NTQQFileApi.getVideoUrl({ + chatType: msg.chatType, + peerUid: msg.peerUid, + }, msg.msgId, element.elementId, + ) + } dbUtil .addFileCache(videoOrFileElement.fileUuid, { msgId: msg.msgId,