mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix: private/group image rkey
This commit is contained in:
@@ -17,6 +17,9 @@ import http from "http";
|
|||||||
import {sleep} from "../../common/utils";
|
import {sleep} from "../../common/utils";
|
||||||
import {hookApi} from "../external/moehook/hook";
|
import {hookApi} from "../external/moehook/hook";
|
||||||
|
|
||||||
|
let privateImageRKey = '';
|
||||||
|
let groupImageRKey = '';
|
||||||
|
|
||||||
export class NTQQFileApi {
|
export class NTQQFileApi {
|
||||||
static async getFileType(filePath: string) {
|
static async getFileType(filePath: string) {
|
||||||
return await callNTQQApi<{ ext: string }>({
|
return await callNTQQApi<{ ext: string }>({
|
||||||
@@ -156,14 +159,34 @@ export class NTQQFileApi {
|
|||||||
log('hookApi is not available');
|
log('hookApi is not available');
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
let rkey = hookApi.getRKey();
|
let isPrivateImage = false;
|
||||||
|
if (url.indexOf('appid=1406') !== -1) {
|
||||||
|
// 私聊图片
|
||||||
|
isPrivateImage = true;
|
||||||
|
}
|
||||||
|
let rkey = '';
|
||||||
|
if (isPrivateImage) {
|
||||||
|
rkey = privateImageRKey;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rkey = groupImageRKey;
|
||||||
|
}
|
||||||
|
rkey = rkey || hookApi.getRKey();
|
||||||
|
const saveRKey = ()=>{
|
||||||
|
if (isPrivateImage){
|
||||||
|
privateImageRKey = rkey;
|
||||||
|
}else {
|
||||||
|
groupImageRKey = rkey;
|
||||||
|
}
|
||||||
|
};
|
||||||
const refreshRKey = async () => {
|
const refreshRKey = async () => {
|
||||||
log('正在获取图片rkey...');
|
log('正在获取图片rkey...');
|
||||||
NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid, msgElement.elementId, '', msgElement.picElement.sourcePath, true).then().catch(() => {
|
NTQQFileApi.downloadMedia(msg.msgId, msg.chatType, msg.peerUid, msgElement.elementId, '', msgElement.picElement.sourcePath, true).then().catch(() => {
|
||||||
});
|
});
|
||||||
await sleep(300);
|
await sleep(300);
|
||||||
rkey = hookApi.getRKey();
|
const _rkey = hookApi.getRKey();
|
||||||
if (rkey) {
|
if (_rkey) {
|
||||||
|
rkey = _rkey;
|
||||||
log('图片rkey获取成功', rkey);
|
log('图片rkey获取成功', rkey);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -216,10 +239,12 @@ export class NTQQFileApi {
|
|||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
await checkUrl;
|
await checkUrl;
|
||||||
const end = Date.now();
|
const end = Date.now();
|
||||||
console.log('Check rkey request time:', end - start);
|
log('Check rkey request time:', end - start);
|
||||||
|
saveRKey();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
try {
|
try {
|
||||||
await refreshRKey();
|
await refreshRKey();
|
||||||
|
saveRKey();
|
||||||
imageUrl = IMAGE_HTTP_HOST_NT + url + `${rkey}`;
|
imageUrl = IMAGE_HTTP_HOST_NT + url + `${rkey}`;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log('获取rkey失败', e);
|
log('获取rkey失败', e);
|
||||||
|
Reference in New Issue
Block a user