This commit is contained in:
手瓜一十雪 2024-08-04 23:26:51 +08:00
parent 38894177ee
commit 1c38833998
6 changed files with 16 additions and 15 deletions

View File

@ -86,7 +86,7 @@ export abstract class HttpServerBase {
this.start(port, host); this.start(port, host);
} }
abstract handleFailed(res: Response, payload: any, err: any): void abstract handleFailed(res: Response, payload: any, err: Error): void
registerRouter(method: 'post' | 'get' | string, url: string, handler: RegisterHandler) { registerRouter(method: 'post' | 'get' | string, url: string, handler: RegisterHandler) {
if (!url.startsWith('/')) { if (!url.startsWith('/')) {
@ -111,7 +111,7 @@ export abstract class HttpServerBase {
try { try {
res.send(await handler(res, payload)); res.send(await handler(res, payload));
} catch (e: any) { } catch (e: any) {
this.handleFailed(res, payload, e.stack.toString()); this.handleFailed(res, payload, e);
} }
}); });
} }

View File

@ -14,7 +14,7 @@ export class NTQQFriendApi {
); );
return Array.from(data.values()); return Array.from(data.values());
} }
@CacheClassFuncAsyncExtend(5000, 'getBuddyIdMap', true) @CacheClassFuncAsyncExtend(3600 * 1000, 'getBuddyIdMap', () => true)
static async getBuddyIdMapCache(refresh = false): Promise<LimitedHashTable<string, string>> { static async getBuddyIdMapCache(refresh = false): Promise<LimitedHashTable<string, string>> {
return await NTQQFriendApi.getBuddyIdMap(refresh); return await NTQQFriendApi.getBuddyIdMap(refresh);
} }
@ -30,6 +30,7 @@ export class NTQQFriendApi {
data.forEach((value, key) => { data.forEach((value, key) => {
retMap.set(value.uin!, value.uid!); retMap.set(value.uin!, value.uid!);
}); });
//console.log('getBuddyIdMap', retMap.getValue);
return retMap; return retMap;
} }
static async getBuddyV2ExWithCate(refresh = false) { static async getBuddyV2ExWithCate(refresh = false) {

View File

@ -23,7 +23,7 @@ export class NTQQGroupApi {
return groupList; return groupList;
} }
@CacheClassFuncAsyncExtend(600, "LastestSendTime", () => true) @CacheClassFuncAsyncExtend(3600 * 1000, "LastestSendTime", () => true)
static async getGroupMemberLastestSendTimeCache(GroupCode: string) { static async getGroupMemberLastestSendTimeCache(GroupCode: string) {
return NTQQGroupApi.getGroupMemberLastestSendTime(GroupCode); return NTQQGroupApi.getGroupMemberLastestSendTime(GroupCode);
} }
@ -184,7 +184,7 @@ export class NTQQGroupApi {
if (result.errCode !== 0) { if (result.errCode !== 0) {
throw ('获取群成员列表出错,' + result.errMsg); throw ('获取群成员列表出错,' + result.errMsg);
} }
//logDebug(`获取群(${groupQQ})成员列表结果:`, `finish: ${result.result.finish}`); //, Array.from(result.result.infos.values())); //logDebug(`获取群(${groupQQ})成员列表结果:`, `finish: ${result.result.finish}`); //, Array.from(result.result.infos.values()));
return result.result.infos; return result.result.infos;
/* /*

View File

@ -202,11 +202,11 @@ export class NTQQUserApi {
} }
return skey; return skey;
} }
@CacheClassFuncAsyncExtend(3600, 'Uin2Uid', (Uin: string, Uid: string | undefined) => { @CacheClassFuncAsyncExtend(3600 * 1000, 'Uin2Uid', (Uin: string, Uid: string | undefined) => {
if (Uid && Uid.indexOf('u_') != -1) { if (Uid && Uid.indexOf('u_') != -1) {
return true return true
} }
logWarn("uin转换到uid时异常", Uin); logWarn("uin转换到uid时异常", Uin, Uid);
return false; return false;
}) })
static async getUidByUin(Uin: string) { static async getUidByUin(Uin: string) {
@ -216,11 +216,11 @@ export class NTQQUserApi {
} }
return await NTQQUserApi.getUidByUinV1(Uin); return await NTQQUserApi.getUidByUinV1(Uin);
} }
@CacheClassFuncAsyncExtend(3600, 'Uid2Uin', (Uid: string | undefined, Uin: number | undefined) => { @CacheClassFuncAsyncExtend(3600 * 1000, 'Uid2Uin', (Uid: string | undefined, Uin: number | undefined) => {
if (Uin && Uin != 0 && !isNaN(Uin)) { if (Uin && Uin != 0 && !isNaN(Uin)) {
return true return true
} }
logWarn("uid转换到uin时异常", Uid); logWarn("uid转换到uin时异常", Uid, Uin);
return false; return false;
}) })
static async getUinByUid(Uid: string) { static async getUinByUid(Uid: string) {
@ -239,13 +239,13 @@ export class NTQQUserApi {
if (uid) return uid; if (uid) return uid;
uid = (await napCatCore.session.getUixConvertService().getUid([Uin])).uidInfo.get(Uin); uid = (await napCatCore.session.getUixConvertService().getUid([Uin])).uidInfo.get(Uin);
if (uid) return uid; if (uid) return uid;
console.log((await NTQQFriendApi.getBuddyIdMapCache(true)));
uid = (await NTQQFriendApi.getBuddyIdMapCache(true)).getValue(Uin);//从Buddy缓存获取Uid uid = (await NTQQFriendApi.getBuddyIdMapCache(true)).getValue(Uin);//从Buddy缓存获取Uid
if (uid) return uid; if (uid) return uid;
uid = (await NTQQFriendApi.getBuddyIdMap(true)).getValue(Uin); uid = (await NTQQFriendApi.getBuddyIdMap(true)).getValue(Uin);
if (uid) return uid; if (uid) return uid;
// let unveifyUid = (await NTQQUserApi.getUserDetailInfoByUin(Uin)).info.uid;//从QQ Native 特殊转换 let unveifyUid = (await NTQQUserApi.getUserDetailInfoByUinV2(Uin)).detail.uid;//从QQ Native 特殊转换
// if (unveifyUid.indexOf("*") == -1) uid = unveifyUid; if (unveifyUid.indexOf("*") == -1) uid = unveifyUid;
//if (uid) return uid; //if (uid) return uid;
return uid; return uid;
} }

View File

@ -128,7 +128,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
return { valid: false, message: `${payload.group_id}不存在` }; return { valid: false, message: `${payload.group_id}不存在` };
} }
if (payload.user_id && payload.message_type !== 'group') { if (payload.user_id && payload.message_type !== 'group') {
const uid = await NTQQUserApi.getUidByUin(payload.user_id); const uid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
const isBuddy = await NTQQFriendApi.isBuddy(uid!); const isBuddy = await NTQQFriendApi.isBuddy(uid!);
// 此处有问题 // 此处有问题
if (!isBuddy) { if (!isBuddy) {

View File

@ -10,8 +10,8 @@ import { postOB11Event } from '@/onebot11/server/postOB11Event';
class OB11HTTPServer extends HttpServerBase { class OB11HTTPServer extends HttpServerBase {
name = 'OneBot V11 server'; name = 'OneBot V11 server';
handleFailed(res: Response, payload: any, e: any) { handleFailed(res: Response, payload: any, e: Error) {
res.send(OB11Response.error(e.stack.toString(), 200)); res.send(OB11Response.error(e?.stack?.toString() || e.message || "Error Handle", 200));
} }
protected listen(port: number, host: string) { protected listen(port: number, host: string) {