Compare commits

...

5 Commits

Author SHA1 Message Date
手瓜一十雪
e8d6f86458 feat: 修复一些问题 2025-11-07 19:35:35 +08:00
手瓜一十雪
a000ffdf0d fix: buddylist 2025-11-07 19:29:39 +08:00
Mlikiowa
202338a160 release: v4.9.27 2025-11-07 09:05:14 +00:00
手瓜一十雪
e3eb129a52 Update ffmpeg native binaries for all platforms
Replaces ffmpegAddon binaries for Darwin ARM64, Linux ARM64, Linux x64, and Windows x64 with new versions. Ensures compatibility and includes latest native changes.
2025-11-07 17:04:29 +08:00
手瓜一十雪
7654e9f2bb Update ffmpeg native binaries for all platforms
Replaces ffmpegAddon binaries for Darwin ARM64, Linux ARM64, Linux x64, and Windows x64. Ensures compatibility and includes latest native code updates.
2025-11-07 12:54:36 +08:00
12 changed files with 81 additions and 62 deletions

4
.gitignore vendored
View File

@@ -14,4 +14,6 @@ devconfig/*
*.db *.db
checkVersion.sh checkVersion.sh
bun.lockb bun.lockb
tests/run/ tests/run/
guild1.db-wal
guild1.db-shm

View File

@@ -4,7 +4,7 @@
"name": "NapCatQQ", "name": "NapCatQQ",
"slug": "NapCat.Framework", "slug": "NapCat.Framework",
"description": "高性能的 OneBot 11 协议实现", "description": "高性能的 OneBot 11 协议实现",
"version": "4.9.26", "version": "4.9.27",
"icon": "./logo.png", "icon": "./logo.png",
"authors": [ "authors": [
{ {

View File

@@ -2,7 +2,7 @@
"name": "napcat", "name": "napcat",
"private": true, "private": true,
"type": "module", "type": "module",
"version": "4.9.26", "version": "4.9.27",
"scripts": { "scripts": {
"build:universal": "npm run build:webui && npm run dev:universal || exit 1", "build:universal": "npm run build:webui && npm run dev:universal || exit 1",
"build:framework": "npm run build:webui && npm run dev:framework || exit 1", "build:framework": "npm run build:webui && npm run dev:framework || exit 1",

View File

@@ -1 +1 @@
export const napCatVersion = '4.9.26'; export const napCatVersion = '4.9.27';

View File

@@ -17,8 +17,14 @@ export class NTQQFriendApi {
async getBuddyV2SimpleInfoMap () { async getBuddyV2SimpleInfoMap () {
const buddyService = this.context.session.getBuddyService(); const buddyService = this.context.session.getBuddyService();
const buddyListV2 = await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL); let uids: string[] = [];
const uids = buddyListV2.data.flatMap(item => item.buddyUids); if (this.core.context.basicInfoWrapper.requireMinNTQQBuild('40990')) {
const buddyListV2NT = await buddyService.getBuddyListV2('0', true, BuddyListReqType.KNOMAL);
uids = buddyListV2NT.data.flatMap(item => item.buddyUids);
} else {
const buddyListV2 = await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL);
uids = buddyListV2.data.flatMap(item => item.buddyUids);
}
return await this.core.eventWrapper.callNoListenerEvent( return await this.core.eventWrapper.callNoListenerEvent(
'NodeIKernelProfileService/getCoreAndBaseInfo', 'NodeIKernelProfileService/getCoreAndBaseInfo',
'nodeStore', 'nodeStore',

View File

@@ -3,122 +3,133 @@ import { NodeIKernelBuddyListener } from '@/core/listeners';
import { BuddyListReqType } from '@/core/types/user'; import { BuddyListReqType } from '@/core/types/user';
export interface NodeIKernelBuddyService { export interface NodeIKernelBuddyService {
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & { getBuddyListV2 (callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & {
data: Array<{ data: Array<{
categoryId: number, categoryId: number,
categorySortId: number, categorySortId: number,
categroyName: string, categroyName: string,
categroyMbCount: number, categroyMbCount: number,
onlineCount: number, onlineCount: number,
buddyUids: Array<string> buddyUids: Array<string>;
}> }>;
}>;
getBuddyListV2 (callFrom: string, isPullRefresh: boolean, reqType: BuddyListReqType): Promise<GeneralCallResult & {
data: Array<{
categoryId: number,
categorySortId: number,
categroyName: string,
categroyMbCount: number,
onlineCount: number,
buddyUids: Array<string>;
}>;
}>; }>;
getBuddyListFromCache(reqType: BuddyListReqType): Promise<Array<
{
categoryId: number, // 9999为特别关心
categorySortId: number, // 排序方式
categroyName: string, // 分类名
categroyMbCount: number, // 不懂
onlineCount: number, // 在线数目
buddyUids: Array<string>// Uids
}>>;
addKernelBuddyListener(listener: NodeIKernelBuddyListener): number; getBuddyListFromCache (reqType: BuddyListReqType): Promise<Array<
{
categoryId: number, // 9999为特别关心
categorySortId: number, // 排序方式
categroyName: string, // 分类名
categroyMbCount: number, // 不懂
onlineCount: number, // 在线数目
buddyUids: Array<string>;// Uids
}>>;
getAllBuddyCount(): number; addKernelBuddyListener (listener: NodeIKernelBuddyListener): number;
removeKernelBuddyListener(listenerId: number): void; getAllBuddyCount (): number;
removeKernelBuddyListener (listenerId: number): void;
// getBuddyList(nocache: boolean): Promise<GeneralCallResult>; // getBuddyList(nocache: boolean): Promise<GeneralCallResult>;
getBuddyNick(uid: number): string; getBuddyNick (uid: number): string;
getBuddyRemark(uid: number): string; getBuddyRemark (uid: number): string;
setBuddyRemark(param: { uid: string, remark: string, signInfo?: unknown }): void; setBuddyRemark (param: { uid: string, remark: string, signInfo?: unknown; }): void;
getAvatarUrl(uid: number): string; getAvatarUrl (uid: number): string;
isBuddy(uid: string): boolean; isBuddy (uid: string): boolean;
getCategoryNameWithUid(uid: number): string; getCategoryNameWithUid (uid: number): string;
getTargetBuddySetting(uid: number): unknown; getTargetBuddySetting (uid: number): unknown;
getTargetBuddySettingByType(uid: number, type: number): unknown; getTargetBuddySettingByType (uid: number, type: number): unknown;
getBuddyReqUnreadCnt(): number; getBuddyReqUnreadCnt (): number;
getBuddyReq(): Promise<GeneralCallResult>; getBuddyReq (): Promise<GeneralCallResult>;
delBuddyReq(uid: number): void; delBuddyReq (uid: number): void;
clearBuddyReqUnreadCnt(): Promise<GeneralCallResult>; clearBuddyReqUnreadCnt (): Promise<GeneralCallResult>;
reqToAddFriends(uid: number, msg: string): void; reqToAddFriends (uid: number, msg: string): void;
setSpacePermission(uid: number, permission: number): void; setSpacePermission (uid: number, permission: number): void;
approvalFriendRequest(arg: { approvalFriendRequest (arg: {
friendUid: string; friendUid: string;
reqTime: string; reqTime: string;
accept: boolean; accept: boolean;
}): Promise<void>; }): Promise<void>;
delBuddy(param: { delBuddy (param: {
friendUid: string; friendUid: string;
tempBlock: boolean; tempBlock: boolean;
tempBothDel: boolean; tempBothDel: boolean;
}): Promise<unknown>; }): Promise<unknown>;
delBatchBuddy(uids: number[]): void; delBatchBuddy (uids: number[]): void;
getSmartInfos(uid: number): unknown; getSmartInfos (uid: number): unknown;
setBuddyCategory(uid: number, category: number): void; setBuddyCategory (uid: number, category: number): void;
setBatchBuddyCategory(uids: number[], category: number): void; setBatchBuddyCategory (uids: number[], category: number): void;
addCategory(category: string): void; addCategory (category: string): void;
delCategory(category: string): void; delCategory (category: string): void;
renameCategory(oldCategory: string, newCategory: string): void; renameCategory (oldCategory: string, newCategory: string): void;
resortCategory(categorys: string[]): void; resortCategory (categorys: string[]): void;
pullCategory(uid: number, category: string): void; pullCategory (uid: number, category: string): void;
setTop(uid: number, isTop: boolean): void; setTop (uid: number, isTop: boolean): void;
SetSpecialCare(uid: number, isSpecialCare: boolean): void; SetSpecialCare (uid: number, isSpecialCare: boolean): void;
setMsgNotify(uid: number, isNotify: boolean): void; setMsgNotify (uid: number, isNotify: boolean): void;
hasBuddyList(): boolean; hasBuddyList (): boolean;
setBlock(uid: number, isBlock: boolean): void; setBlock (uid: number, isBlock: boolean): void;
isBlocked(uid: number): boolean; isBlocked (uid: number): boolean;
modifyAddMeSetting(setting: unknown): void; modifyAddMeSetting (setting: unknown): void;
getAddMeSetting(): unknown; getAddMeSetting (): unknown;
getDoubtBuddyReq(reqId: string, num: number, uk:string): Promise<GeneralCallResult>; getDoubtBuddyReq (reqId: string, num: number, uk: string): Promise<GeneralCallResult>;
getDoubtBuddyUnreadNum(): number; getDoubtBuddyUnreadNum (): number;
approvalDoubtBuddyReq(uid: string, str1: string, str2: string): void; approvalDoubtBuddyReq (uid: string, str1: string, str2: string): void;
delDoubtBuddyReq(uid: number): void; delDoubtBuddyReq (uid: number): void;
delAllDoubtBuddyReq(): Promise<GeneralCallResult>; delAllDoubtBuddyReq (): Promise<GeneralCallResult>;
reportDoubtBuddyReqUnread(): void; reportDoubtBuddyReqUnread (): void;
getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise<GeneralCallResult & { arkMsg: string }>; getBuddyRecommendContactArkJson (uid: string, phoneNumber: string): Promise<GeneralCallResult & { arkMsg: string; }>;
isNull(): boolean; isNull (): boolean;
} }

Binary file not shown.