From 45dedb4872570d7e773e4ca8a1762e9019c6ba2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 15 Sep 2024 09:35:10 +0800 Subject: [PATCH 01/18] fix: 28060 --- src/common/helper.ts | 6 +++--- src/common/qq-basic-info.ts | 28 +++++++++++++++------------- src/core/index.ts | 5 +++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/common/helper.ts b/src/common/helper.ts index c758c3a9..198c44da 100644 --- a/src/common/helper.ts +++ b/src/common/helper.ts @@ -179,18 +179,18 @@ export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { }; } -export function getQQPackageInfoPath(exePath: string = ''): string { +export function getQQPackageInfoPath(exePath: string = '', version: string): string { if (os.platform() === 'darwin') { return path.join(path.dirname(exePath), '..', 'Resources', 'app', 'package.json'); } else { - return path.join(path.dirname(exePath), 'resources', 'app', 'package.json'); + return path.join(path.dirname(exePath), './versions/9.9.15-28060/resources/app/package.json'); } } export function getQQVersionConfigPath(exePath: string = ''): string | undefined { let configVersionInfoPath; if (os.platform() === 'win32') { - configVersionInfoPath = path.join(path.dirname(exePath), 'resources', 'app', 'versions', 'config.json'); + configVersionInfoPath = path.join(path.dirname(exePath), 'versions', 'config.json'); } else if (os.platform() === 'darwin') { const userPath = os.homedir(); const appDataPath = path.resolve(userPath, './Library/Application Support/QQ'); diff --git a/src/common/qq-basic-info.ts b/src/common/qq-basic-info.ts index 4184902b..91570676 100644 --- a/src/common/qq-basic-info.ts +++ b/src/common/qq-basic-info.ts @@ -19,14 +19,16 @@ export class QQBasicInfoWrapper { //基础目录获取 this.context = context; this.QQMainPath = process.execPath; - this.QQPackageInfoPath = getQQPackageInfoPath(this.QQMainPath); this.QQVersionConfigPath = getQQVersionConfigPath(this.QQMainPath); + //基础信息获取 无快更则启用默认模板填充 this.isQuickUpdate = !!this.QQVersionConfigPath; this.QQVersionConfig = this.isQuickUpdate ? JSON.parse(fs.readFileSync(this.QQVersionConfigPath!).toString()) : getDefaultQQVersionConfigInfo(); + + this.QQPackageInfoPath = getQQPackageInfoPath(this.QQMainPath, this.QQVersionConfig?.curVersion!); this.QQPackageInfo = JSON.parse(fs.readFileSync(this.QQPackageInfoPath).toString()); const { appid: IQQVersionAppid, qua: IQQVersionQua } = this.getAppidV2(); this.QQVersionAppid = IQQVersionAppid; @@ -53,23 +55,23 @@ export class QQBasicInfoWrapper { //此方法不要直接使用 getQUAInternal() { switch (systemPlatform) { - case 'linux': - return `V1_LNX_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - case 'darwin': - return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - default: - return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + case 'linux': + return `V1_LNX_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + case 'darwin': + return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + default: + return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; } } getAppidInternal() { switch (systemPlatform) { - case 'linux': - return '537243600'; - case 'darwin': - return '537243441'; - default: - return '537243538'; + case 'linux': + return '537243600'; + case 'darwin': + return '537243441'; + default: + return '537243538'; } } diff --git a/src/core/index.ts b/src/core/index.ts index cf6667b2..6f9791eb 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -46,14 +46,15 @@ export function loadQQWrapper(QQVersion: string): WrapperNodeApi { if (os.platform() === 'darwin') { appPath = path.resolve(path.dirname(process.execPath), '../Resources/app'); } else { - appPath = path.resolve(path.dirname(process.execPath), './resources/app'); + appPath = path.resolve(path.dirname(process.execPath), `./versions/${QQVersion}/`); } let wrapperNodePath = path.resolve(appPath, 'wrapper.node'); if (!fs.existsSync(wrapperNodePath)) { - wrapperNodePath = path.join(appPath, `versions/${QQVersion}/wrapper.node`); + wrapperNodePath = path.join(appPath, `./resources/app./wrapper.node`); } const nativemodule: any = { exports: {} }; process.dlopen(nativemodule, wrapperNodePath); + //\versions\9.9.15-28060\resources\app\wrapper.node return nativemodule.exports; } From 16f7bb48f2bbdec744dabe36e8b2738a2ad4d344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 15 Sep 2024 14:34:47 +0800 Subject: [PATCH 02/18] fix: launcher 28060 --- launcher/NapCatWinBootHook.dll | Bin 11264 -> 18944 bytes launcher/NapCatWinBootMain.exe | Bin 22528 -> 22528 bytes launcher/launcher-win10.bat | 2 +- launcher/launcher.bat | 2 +- launcher/patchNapCat.js | 1 - launcher/qqnt.json | 23 +++++++++++++++++++++++ 6 files changed, 25 insertions(+), 3 deletions(-) delete mode 100644 launcher/patchNapCat.js create mode 100644 launcher/qqnt.json diff --git a/launcher/NapCatWinBootHook.dll b/launcher/NapCatWinBootHook.dll index cd6ff3464883df9f8117133e1dc1c4a1ec8b7c3c..0ad9943f96946c5feeecb44b628a4b276c7ea4cb 100644 GIT binary patch literal 18944 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 E--IJ}WB>pF diff --git a/launcher/NapCatWinBootMain.exe b/launcher/NapCatWinBootMain.exe index 9cd3132b9ee6c6145708042001196c6538557fd2..5d054fbd86a195c88213c27eb279b5e6119a859c 100644 GIT binary patch delta 27 fcmZqJz}T>XaRUb<^LPJeo4FZp>Vp~24J6e8nwASo delta 27 fcmZqJz}T>XaRUb Date: Sun, 15 Sep 2024 16:18:43 +0800 Subject: [PATCH 03/18] feat: skip Qrcode When Login --- src/shell/napcat.ts | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index bef7f21b..e28c75dc 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -103,18 +103,21 @@ export async function NCoreInitShell() { const selfInfo = await new Promise((resolve) => { const loginListener = new NodeIKernelLoginListener(); - + let isLogined = false; // from constructor loginListener.onUserLoggedIn = (userid: string) => { logger.logError(`当前账号(${userid})已登录,无法重复登录`); }; - loginListener.onQRCodeLoginSucceed = async (loginResult) => resolve({ - uid: loginResult.uid, - uin: loginResult.uin, - nick: '', // 获取不到 - online: true, - }); + loginListener.onQRCodeLoginSucceed = async (loginResult) => { + isLogined = true; + resolve({ + uid: loginResult.uid, + uin: loginResult.uin, + nick: '', // 获取不到 + online: true, + }); + } loginListener.onQRCodeGetPicture = ({ pngBase64QrcodeData, qrcodeUrl }) => { //设置WebuiQrcode @@ -142,7 +145,7 @@ export async function NCoreInitShell() { if (errType == 1 && errCode == 3) { // 二维码过期刷新 } - loginService.getQRCodePicture(); + if (!isLogined) loginService.getQRCodePicture(); }; loginListener.onLoginFailed = (args) => { //logger.logError('登录失败(onLoginFailed)', args); @@ -189,14 +192,14 @@ export async function NCoreInitShell() { .then(result => { if (result.loginErrorInfo.errMsg) { logger.logError('快速登录错误:', result.loginErrorInfo.errMsg); - loginService.getQRCodePicture(); + if (!isLogined) loginService.getQRCodePicture(); } }) .catch(); }, 1000); } else { logger.logError('快速登录失败,未找到该 QQ 历史登录记录,将使用二维码登录方式'); - loginService.getQRCodePicture(); + if (!isLogined) loginService.getQRCodePicture(); } } else { logger.log('没有 -q 指令指定快速登录,将使用二维码登录方式'); @@ -204,7 +207,7 @@ export async function NCoreInitShell() { logger.log(`可用于快速登录的 QQ:\n${historyLoginList .map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`) .join('\n') - }`); + }`); } loginService.getQRCodePicture(); } From 66656304f991ab2b0c4fe88a178347bc2522a972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 15 Sep 2024 16:24:08 +0800 Subject: [PATCH 04/18] fix --- src/shell/napcat.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index e28c75dc..6943110f 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -141,11 +141,13 @@ export async function NCoreInitShell() { }; loginListener.onQRCodeSessionFailed = (errType: number, errCode: number, errMsg: string) => { //logger.logError('登录失败(onQRCodeSessionFailed)', errCode, errMsg); - logger.logError('[Core] [Login] Login Error,ErrCode: ', errCode, ' ErrMsg:', errMsg); - if (errType == 1 && errCode == 3) { - // 二维码过期刷新 + if (!isLogined) { + logger.logError('[Core] [Login] Login Error,ErrCode: ', errCode, ' ErrMsg:', errMsg); + if (errType == 1 && errCode == 3) { + // 二维码过期刷新 + } + loginService.getQRCodePicture(); } - if (!isLogined) loginService.getQRCodePicture(); }; loginListener.onLoginFailed = (args) => { //logger.logError('登录失败(onLoginFailed)', args); From 8d6397028b262a770c40e499d4a77b45eed33685 Mon Sep 17 00:00:00 2001 From: Alen Date: Sun, 15 Sep 2024 17:31:01 +0800 Subject: [PATCH 05/18] Revert "style" This reverts commit 7e7457831238cc5e64b77efd250a5169193fa49c. --- src/onebot/api/msg.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index 919a51ae..c8090c0b 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -629,7 +629,7 @@ export class OneBotMsgApi { if (element.grayTipElement.subElementType == NTGrayTipElementSubTypeV2.GRAYTIP_ELEMENT_SUBTYPE_XMLMSG) { //好友添加成功事件 if (element.grayTipElement.xmlElement.templId === '10229' && msg.peerUin !== '') { - return new OB11FriendAddNoticeEvent(this.core, parseInt(msg.peerUin || await this.core.apis.UserApi.getUinByUidV2(msg.peerUid))); + return new OB11FriendAddNoticeEvent(this.core, parseInt(msg.peerUin) || Number(await this.core.apis.UserApi.getUinByUidV2(msg.peerUid))); } } } From 515a21761dc2640d98960159bcb3ff42a54df858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:11:33 +0800 Subject: [PATCH 06/18] back: linux to 27254 --- src/common/helper.ts | 13 +++++++++++-- src/common/qq-basic-info.ts | 24 ++++++++++++------------ src/core/external/appid.json | 11 +++++++++++ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/common/helper.ts b/src/common/helper.ts index c758c3a9..637fa803 100644 --- a/src/common/helper.ts +++ b/src/common/helper.ts @@ -163,8 +163,17 @@ export function isEqual(obj1: any, obj2: any) { export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { if (os.platform() === 'linux') { return { - baseVersion: '3.2.12-27597', - curVersion: '3.2.12-27597', + baseVersion: '3.2.12.27254', + curVersion: '3.2.12.27254', + prevVersion: '', + onErrorVersions: [], + buildId: '27254', + }; + } + if (os.platform() === 'darwin') { + return { + baseVersion: '6.9.53.27597', + curVersion: '6.9.53.27597', prevVersion: '', onErrorVersions: [], buildId: '27597', diff --git a/src/common/qq-basic-info.ts b/src/common/qq-basic-info.ts index 4184902b..9d6aa50a 100644 --- a/src/common/qq-basic-info.ts +++ b/src/common/qq-basic-info.ts @@ -53,23 +53,23 @@ export class QQBasicInfoWrapper { //此方法不要直接使用 getQUAInternal() { switch (systemPlatform) { - case 'linux': - return `V1_LNX_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - case 'darwin': - return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - default: - return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + case 'linux': + return `V1_LNX_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + case 'darwin': + return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; + default: + return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; } } getAppidInternal() { switch (systemPlatform) { - case 'linux': - return '537243600'; - case 'darwin': - return '537243441'; - default: - return '537243538'; + case 'linux': + return '537240795'; + case 'darwin': + return '537243538'; + default: + return '537243441'; } } diff --git a/src/core/external/appid.json b/src/core/external/appid.json index 50d410db..cdc03108 100644 --- a/src/core/external/appid.json +++ b/src/core/external/appid.json @@ -1,4 +1,14 @@ { + + "3.2.12-27254":{ + "appid": 537240795, + "qua": "V1_LNX_NQ_3.2.12_27254_GW_B" + }, + "9.9.15-27254":{ + "appid": 537240709, + "qua": "V1_WIN_NQ_9.9.15_27254_GW_B" + }, + "3.2.12-27597": { "appid": 537243600, "qua": "V1_LNX_NQ_3.2.12_27597_GW_B" @@ -11,6 +21,7 @@ "appid": 537243538, "qua": "V1_MAC_NQ_6.9.53_27597_GW_B" }, + "9.9.15-28060":{ "appid": 537246092, "qua": "V1_WIN_NQ_9.9.15_28060_GW_B" From e9ede6924eea492c1d682749b83ae22a7e1f0a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:12:00 +0800 Subject: [PATCH 07/18] release: 2.5.2 --- manifest.json | 2 +- package.json | 2 +- src/common/version.ts | 2 +- src/webui/ui/NapCat.ts | 2 +- static/assets/renderer.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index 91bb7bff..ba55d3f0 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "name": "NapCatQQ", "slug": "NapCat.Framework", "description": "高性能的 OneBot 11 协议实现", - "version": "2.5.1", + "version": "2.5.2", "icon": "./logo.png", "authors": [ { diff --git a/package.json b/package.json index d7248fe2..f784b22e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "napcat", "private": true, "type": "module", - "version": "2.5.1", + "version": "2.5.2", "scripts": { "build:framework": "vite build --mode framework", "build:shell": "vite build --mode shell", diff --git a/src/common/version.ts b/src/common/version.ts index 60516350..75e68bff 100644 --- a/src/common/version.ts +++ b/src/common/version.ts @@ -1 +1 @@ -export const napCatVersion = '2.5.1'; +export const napCatVersion = '2.5.2'; diff --git a/src/webui/ui/NapCat.ts b/src/webui/ui/NapCat.ts index ef87090a..6e5b4416 100644 --- a/src/webui/ui/NapCat.ts +++ b/src/webui/ui/NapCat.ts @@ -30,7 +30,7 @@ async function onSettingWindowCreated(view: Element) { SettingItem( 'Napcat', undefined, - SettingButton('V2.5.1', 'napcat-update-button', 'secondary'), + SettingButton('V2.5.2', 'napcat-update-button', 'secondary'), ), ]), SettingList([ diff --git a/static/assets/renderer.js b/static/assets/renderer.js index fa3d67e8..2039e1f4 100644 --- a/static/assets/renderer.js +++ b/static/assets/renderer.js @@ -164,7 +164,7 @@ async function onSettingWindowCreated(view) { SettingItem( 'Napcat', void 0, - SettingButton("V2.5.1", "napcat-update-button", "secondary") + SettingButton("V2.5.2", "napcat-update-button", "secondary") ) ]), SettingList([ From c145935d46c40c707827dceec482d76a3ed2fa51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:47:51 +0800 Subject: [PATCH 08/18] feat: contact --- src/core/services/NodeIKernelBuddyService.ts | 2 +- src/onebot/api/msg.ts | 8 ++++++++ src/onebot/types/message.ts | 12 +++++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/core/services/NodeIKernelBuddyService.ts b/src/core/services/NodeIKernelBuddyService.ts index 9273d05d..ac96b5a3 100644 --- a/src/core/services/NodeIKernelBuddyService.ts +++ b/src/core/services/NodeIKernelBuddyService.ts @@ -114,7 +114,7 @@ export interface NodeIKernelBuddyService { reportDoubtBuddyReqUnread(): void; - getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise; + getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise; isNull(): boolean; } diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index c8090c0b..4f056038 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -607,6 +607,14 @@ export class OneBotMsgApi { }), [OB11MessageDataType.miniapp]: async () => undefined, + + [OB11MessageDataType.contact]: async ({ data }, context) => { + let arkJson = await this.core.apis.UserApi.getBuddyRecommendContactArkJson(data.qq, ''); + return this.ob11ToRawConverters.json({ + data: { data: arkJson.arkMsg }, + type: OB11MessageDataType.json + }, context); + } }; constructor(obContext: NapCatOneBot11Adapter, core: NapCatCore) { diff --git a/src/onebot/types/message.ts b/src/onebot/types/message.ts index bf2f3530..1386aa52 100644 --- a/src/onebot/types/message.ts +++ b/src/onebot/types/message.ts @@ -62,6 +62,7 @@ export enum OB11MessageDataType { dice = 'dice', RPS = 'rps', miniapp = 'miniapp',//json类 + contact = 'contact', Location = 'location' } @@ -81,10 +82,15 @@ export interface OB11MessageText { text: string, // 纯文本 } } - +export interface OB11MessageContext { + type: OB11MessageDataType.contact, + data: { + qq: string, + } +} export interface OB11MessageFileBase { data: { - file_unique?:string, + file_unique?: string, path?: string; thumb?: string; name?: string; @@ -198,7 +204,7 @@ export type OB11MessageData = OB11MessageAt | OB11MessageReply | OB11MessageImage | OB11MessageRecord | OB11MessageFile | OB11MessageVideo | OB11MessageNode | OB11MessageIdMusic | OB11MessageCustomMusic | OB11MessageJson | - OB11MessageDice | OB11MessageRPS | OB11MessageMarkdown | OB11MessageForward + OB11MessageDice | OB11MessageRPS | OB11MessageMarkdown | OB11MessageForward | OB11MessageContext export interface OB11PostSendMsg { message_type?: 'private' | 'group' From 1ff6ce2343958f5f52c57ef853fa24c8bcfbe9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:51:05 +0800 Subject: [PATCH 09/18] feat: FetchOtherProfileLike --- src/onebot/action/extends/FetchOtherProfileLike.ts | 11 +++++++++++ src/onebot/action/index.ts | 2 ++ src/onebot/action/types.ts | 1 + 3 files changed, 14 insertions(+) create mode 100644 src/onebot/action/extends/FetchOtherProfileLike.ts diff --git a/src/onebot/action/extends/FetchOtherProfileLike.ts b/src/onebot/action/extends/FetchOtherProfileLike.ts new file mode 100644 index 00000000..820542fa --- /dev/null +++ b/src/onebot/action/extends/FetchOtherProfileLike.ts @@ -0,0 +1,11 @@ +import BaseAction from '../BaseAction'; +import { ActionName } from '../types'; + +export class FetchOtherProfileLike extends BaseAction<{ qq: number }, any> { + actionName = ActionName.FetchOtherProfileLike; + + async _handle(payload: { qq: number }) { + if (!payload.qq) throw new Error('qq is required'); + return await this.core.apis.UserApi.getUidByUinV2(payload.qq.toString()); + } +} diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index c55e9b0a..d8f1f13f 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -84,6 +84,7 @@ import { GetGroupFileSystemInfo } from '@/onebot/action/go-cqhttp/GetGroupFileSy import { GetGroupRootFiles } from '@/onebot/action/go-cqhttp/GetGroupRootFiles'; import { GetGroupFilesByFolder } from '@/onebot/action/go-cqhttp/GetGroupFilesByFolder'; import { GetGroupSystemMsg } from './system/GetSystemMsg'; +import { FetchOtherProfileLike } from './extends/fetchOtherProfileLike'; export type ActionMap = Map>; @@ -178,6 +179,7 @@ export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCo new GetGroupFileSystemInfo(obContext, core), new GetGroupFilesByFolder(obContext, core), new GetGroupSystemMsg(obContext, core), + new FetchOtherProfileLike(obContext, core), ]; const actionMap = new Map(); for (const action of actionHandlers) { diff --git a/src/onebot/action/types.ts b/src/onebot/action/types.ts index 54d8cd68..0cc7644a 100644 --- a/src/onebot/action/types.ts +++ b/src/onebot/action/types.ts @@ -118,4 +118,5 @@ export enum ActionName { DelGroupNotice = '_del_group_notice', GetGroupInfoEx = "get_group_info_ex", GetGroupSystemMsg = 'get_group_system_msg', + FetchOtherProfileLike = "fetch_other_profile_like", } From 73b6d3be84b8972706a782fc01d704dc51c39b43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:51:26 +0800 Subject: [PATCH 10/18] release: 2.5.3 --- manifest.json | 2 +- package.json | 2 +- src/common/version.ts | 2 +- src/webui/ui/NapCat.ts | 2 +- static/assets/renderer.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/manifest.json b/manifest.json index ba55d3f0..2f8aa4d1 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "name": "NapCatQQ", "slug": "NapCat.Framework", "description": "高性能的 OneBot 11 协议实现", - "version": "2.5.2", + "version": "2.5.3", "icon": "./logo.png", "authors": [ { diff --git a/package.json b/package.json index f784b22e..57cc6eda 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "napcat", "private": true, "type": "module", - "version": "2.5.2", + "version": "2.5.3", "scripts": { "build:framework": "vite build --mode framework", "build:shell": "vite build --mode shell", diff --git a/src/common/version.ts b/src/common/version.ts index 75e68bff..85b145aa 100644 --- a/src/common/version.ts +++ b/src/common/version.ts @@ -1 +1 @@ -export const napCatVersion = '2.5.2'; +export const napCatVersion = '2.5.3'; diff --git a/src/webui/ui/NapCat.ts b/src/webui/ui/NapCat.ts index 6e5b4416..c7deba23 100644 --- a/src/webui/ui/NapCat.ts +++ b/src/webui/ui/NapCat.ts @@ -30,7 +30,7 @@ async function onSettingWindowCreated(view: Element) { SettingItem( 'Napcat', undefined, - SettingButton('V2.5.2', 'napcat-update-button', 'secondary'), + SettingButton('V2.5.3', 'napcat-update-button', 'secondary'), ), ]), SettingList([ diff --git a/static/assets/renderer.js b/static/assets/renderer.js index 2039e1f4..51296347 100644 --- a/static/assets/renderer.js +++ b/static/assets/renderer.js @@ -164,7 +164,7 @@ async function onSettingWindowCreated(view) { SettingItem( 'Napcat', void 0, - SettingButton("V2.5.2", "napcat-update-button", "secondary") + SettingButton("V2.5.3", "napcat-update-button", "secondary") ) ]), SettingList([ From d0f248aaf92a5276d1747f609ee5dcfd9df14d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 18:53:26 +0800 Subject: [PATCH 11/18] fix --- src/common/qq-basic-info.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/common/qq-basic-info.ts b/src/common/qq-basic-info.ts index 857572fc..91570676 100644 --- a/src/common/qq-basic-info.ts +++ b/src/common/qq-basic-info.ts @@ -61,12 +61,6 @@ export class QQBasicInfoWrapper { return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; default: return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - case 'linux': - return `V1_LNX_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - case 'darwin': - return `V1_MAC_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; - default: - return `V1_WIN_${this.getFullQQVesion()}_${this.getQQBuildStr()}_GW_B`; } } From 6b346ee1de586ef60327bdeb05f9bf5543de493c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 19:01:01 +0800 Subject: [PATCH 12/18] fix --- src/onebot/action/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index d8f1f13f..0bb1e683 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -84,7 +84,7 @@ import { GetGroupFileSystemInfo } from '@/onebot/action/go-cqhttp/GetGroupFileSy import { GetGroupRootFiles } from '@/onebot/action/go-cqhttp/GetGroupRootFiles'; import { GetGroupFilesByFolder } from '@/onebot/action/go-cqhttp/GetGroupFilesByFolder'; import { GetGroupSystemMsg } from './system/GetSystemMsg'; -import { FetchOtherProfileLike } from './extends/fetchOtherProfileLike'; +import { FetchOtherProfileLike } from '@/onebot/action/extends/fetchOtherProfileLike'; export type ActionMap = Map>; From dc04cfc1b336d7db730bc85191b1117ec2ef0dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 19:03:14 +0800 Subject: [PATCH 13/18] Revert "chore: workflow" This reverts commit 58cd38c4a824cc7d28efe2037055efd549e21bed. --- .github/workflows/build.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e2a2096..bedb58ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,15 +8,17 @@ jobs: Build-LiteLoader: runs-on: ubuntu-latest steps: - - name: Clone Main Repository uses: actions/checkout@v4 - + with: + repository: 'NapNeko/NapCatQQ' + submodules: true + ref: main + token: ${{ secrets.NAPCAT_BUILD }} - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x - - name: Build NuCat Framework run: | npm i @@ -25,25 +27,25 @@ jobs: npm i --omit=dev rm package-lock.json cd .. - - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: NapCat.Framework path: dist - Build-Shell: runs-on: ubuntu-latest steps: - - name: Clone Main Repository uses: actions/checkout@v4 - + with: + repository: 'NapNeko/NapCatQQ' + submodules: true + ref: main + token: ${{ secrets.NAPCAT_BUILD }} - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x - - name: Build NuCat LiteLoader run: | npm i @@ -52,7 +54,6 @@ jobs: npm i --omit=dev rm package-lock.json cd .. - - name: Upload Artifact uses: actions/upload-artifact@v4 with: From 67fb74d3c205777a774d773356a3f20dac2e7b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 19:07:05 +0800 Subject: [PATCH 14/18] fix --- .../{FetchOtherProfileLike.ts => FetchUserProfileLike.ts} | 4 ++-- src/onebot/action/index.ts | 6 +++--- src/onebot/action/types.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename src/onebot/action/extends/{FetchOtherProfileLike.ts => FetchUserProfileLike.ts} (68%) diff --git a/src/onebot/action/extends/FetchOtherProfileLike.ts b/src/onebot/action/extends/FetchUserProfileLike.ts similarity index 68% rename from src/onebot/action/extends/FetchOtherProfileLike.ts rename to src/onebot/action/extends/FetchUserProfileLike.ts index 820542fa..c420014b 100644 --- a/src/onebot/action/extends/FetchOtherProfileLike.ts +++ b/src/onebot/action/extends/FetchUserProfileLike.ts @@ -1,8 +1,8 @@ import BaseAction from '../BaseAction'; import { ActionName } from '../types'; -export class FetchOtherProfileLike extends BaseAction<{ qq: number }, any> { - actionName = ActionName.FetchOtherProfileLike; +export class FetchUserProfileLike extends BaseAction<{ qq: number }, any> { + actionName = ActionName.FetchUserProfileLike; async _handle(payload: { qq: number }) { if (!payload.qq) throw new Error('qq is required'); diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index 0bb1e683..edbeffb1 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -68,8 +68,8 @@ import SetGroupPortrait from './go-cqhttp/SetGroupPortrait'; import { FetchCustomFace } from './extends/FetchCustomFace'; import GoCQHTTPUploadPrivateFile from './go-cqhttp/UploadPrivateFile'; import { FetchEmojiLike } from './extends/FetchEmojiLike'; +import { FetchUserProfileLike } from './extends/FetchUserProfileLike'; import { NapCatCore } from '@/core'; - import { NapCatOneBot11Adapter } from '@/onebot'; import GetGuildProfile from './guild/GetGuildProfile'; import SetModelShow from './go-cqhttp/SetModelShow'; @@ -84,7 +84,7 @@ import { GetGroupFileSystemInfo } from '@/onebot/action/go-cqhttp/GetGroupFileSy import { GetGroupRootFiles } from '@/onebot/action/go-cqhttp/GetGroupRootFiles'; import { GetGroupFilesByFolder } from '@/onebot/action/go-cqhttp/GetGroupFilesByFolder'; import { GetGroupSystemMsg } from './system/GetSystemMsg'; -import { FetchOtherProfileLike } from '@/onebot/action/extends/fetchOtherProfileLike'; + export type ActionMap = Map>; @@ -179,7 +179,7 @@ export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCo new GetGroupFileSystemInfo(obContext, core), new GetGroupFilesByFolder(obContext, core), new GetGroupSystemMsg(obContext, core), - new FetchOtherProfileLike(obContext, core), + new FetchUserProfileLike(obContext, core), ]; const actionMap = new Map(); for (const action of actionHandlers) { diff --git a/src/onebot/action/types.ts b/src/onebot/action/types.ts index 0cc7644a..77c153f8 100644 --- a/src/onebot/action/types.ts +++ b/src/onebot/action/types.ts @@ -118,5 +118,5 @@ export enum ActionName { DelGroupNotice = '_del_group_notice', GetGroupInfoEx = "get_group_info_ex", GetGroupSystemMsg = 'get_group_system_msg', - FetchOtherProfileLike = "fetch_other_profile_like", + FetchUserProfileLike = "fetch_user_profile_like", } From fa07c2c1fb20f495fa5c75e91ad838391e12e2bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 19:31:24 +0800 Subject: [PATCH 15/18] update: appid --- src/common/qq-basic-info.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/qq-basic-info.ts b/src/common/qq-basic-info.ts index 91570676..2d5aa328 100644 --- a/src/common/qq-basic-info.ts +++ b/src/common/qq-basic-info.ts @@ -69,9 +69,9 @@ export class QQBasicInfoWrapper { case 'linux': return '537243600'; case 'darwin': - return '537243441'; - default: return '537243538'; + default: + return '537246092'; } } From 0c7bbda936f2fa1f95a6bf3f15a0761706174888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 20:29:04 +0800 Subject: [PATCH 16/18] feat: Linux28060Appid --- src/common/helper.ts | 16 ++++++++-------- src/common/qq-basic-info.ts | 4 ++-- src/core/external/appid.json | 27 ++++----------------------- 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/src/common/helper.ts b/src/common/helper.ts index 6b281f62..2412f1cd 100644 --- a/src/common/helper.ts +++ b/src/common/helper.ts @@ -163,8 +163,8 @@ export function isEqual(obj1: any, obj2: any) { export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { if (os.platform() === 'linux') { return { - baseVersion: '3.2.12.27254', - curVersion: '3.2.12.27254', + baseVersion: '3.2.12.28060', + curVersion: '3.2.12.28060', prevVersion: '', onErrorVersions: [], buildId: '27254', @@ -172,19 +172,19 @@ export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { } if (os.platform() === 'darwin') { return { - baseVersion: '6.9.53.27597', - curVersion: '6.9.53.27597', + baseVersion: '6.9.53.28060', + curVersion: '6.9.53.28060', prevVersion: '', onErrorVersions: [], - buildId: '27597', + buildId: '28060', }; } return { - baseVersion: '9.9.15-27597', - curVersion: '9.9.15-27597', + baseVersion: '9.9.15-28060', + curVersion: '9.9.15-28060', prevVersion: '', onErrorVersions: [], - buildId: '27597', + buildId: '28060', }; } diff --git a/src/common/qq-basic-info.ts b/src/common/qq-basic-info.ts index 2d5aa328..4209e974 100644 --- a/src/common/qq-basic-info.ts +++ b/src/common/qq-basic-info.ts @@ -67,9 +67,9 @@ export class QQBasicInfoWrapper { getAppidInternal() { switch (systemPlatform) { case 'linux': - return '537243600'; + return '537246140'; case 'darwin': - return '537243538'; + return '537246140'; default: return '537246092'; } diff --git a/src/core/external/appid.json b/src/core/external/appid.json index cdc03108..0c5c764c 100644 --- a/src/core/external/appid.json +++ b/src/core/external/appid.json @@ -1,29 +1,10 @@ { - - "3.2.12-27254":{ - "appid": 537240795, - "qua": "V1_LNX_NQ_3.2.12_27254_GW_B" - }, - "9.9.15-27254":{ - "appid": 537240709, - "qua": "V1_WIN_NQ_9.9.15_27254_GW_B" - }, - - "3.2.12-27597": { - "appid": 537243600, - "qua": "V1_LNX_NQ_3.2.12_27597_GW_B" - }, - "9.9.15-27597": { - "appid": 537243441, - "qua": "V1_WIN_NQ_9.9.15_27597_GW_B" - }, - "6.9.53-27597": { - "appid": 537243538, - "qua": "V1_MAC_NQ_6.9.53_27597_GW_B" - }, - "9.9.15-28060":{ "appid": 537246092, "qua": "V1_WIN_NQ_9.9.15_28060_GW_B" + }, + "3.2.12-28060":{ + "appid": 537246140, + "qua": "V1_LNX_NQ_3.2.12_28060_GW_B" } } From 4885d4db86c4cd359a550e7756b596ae6d63a860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 20:33:27 +0800 Subject: [PATCH 17/18] support: linux28060 --- src/common/helper.ts | 4 +++- src/core/index.ts | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/helper.ts b/src/common/helper.ts index 2412f1cd..11a6222f 100644 --- a/src/common/helper.ts +++ b/src/common/helper.ts @@ -191,8 +191,10 @@ export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { export function getQQPackageInfoPath(exePath: string = '', version: string): string { if (os.platform() === 'darwin') { return path.join(path.dirname(exePath), '..', 'Resources', 'app', 'package.json'); + } else if (os.platform() === 'linux') { + return path.join(path.dirname(exePath), './resources/app/package.json'); } else { - return path.join(path.dirname(exePath), './versions/9.9.15-28060/resources/app/package.json'); + return path.join(path.dirname(exePath), './versions/' + version + '/resources/app/package.json'); } } diff --git a/src/core/index.ts b/src/core/index.ts index 6f9791eb..0a44c32e 100644 --- a/src/core/index.ts +++ b/src/core/index.ts @@ -45,16 +45,17 @@ export function loadQQWrapper(QQVersion: string): WrapperNodeApi { let appPath; if (os.platform() === 'darwin') { appPath = path.resolve(path.dirname(process.execPath), '../Resources/app'); + } else if (os.platform() === 'linux') { + appPath = path.resolve(path.dirname(process.execPath), './resources/app'); } else { appPath = path.resolve(path.dirname(process.execPath), `./versions/${QQVersion}/`); } let wrapperNodePath = path.resolve(appPath, 'wrapper.node'); if (!fs.existsSync(wrapperNodePath)) { - wrapperNodePath = path.join(appPath, `./resources/app./wrapper.node`); + wrapperNodePath = path.join(appPath, `./resources/app/wrapper.node`); } const nativemodule: any = { exports: {} }; process.dlopen(nativemodule, wrapperNodePath); - //\versions\9.9.15-28060\resources\app\wrapper.node return nativemodule.exports; } From 236bec11ed3c8ff65e067b7c142e41fea992a9a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 16 Sep 2024 20:57:56 +0800 Subject: [PATCH 18/18] release: 2.5.4 --- manifest.json | 2 +- package.json | 2 +- src/common/version.ts | 2 +- src/onebot/api/msg.ts | 2 +- src/onebot/types/message.ts | 2 +- src/webui/ui/NapCat.ts | 2 +- static/assets/renderer.js | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/manifest.json b/manifest.json index 2f8aa4d1..370b3860 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "name": "NapCatQQ", "slug": "NapCat.Framework", "description": "高性能的 OneBot 11 协议实现", - "version": "2.5.3", + "version": "2.5.4", "icon": "./logo.png", "authors": [ { diff --git a/package.json b/package.json index 57cc6eda..de526d21 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "napcat", "private": true, "type": "module", - "version": "2.5.3", + "version": "2.5.4", "scripts": { "build:framework": "vite build --mode framework", "build:shell": "vite build --mode shell", diff --git a/src/common/version.ts b/src/common/version.ts index 85b145aa..725085f8 100644 --- a/src/common/version.ts +++ b/src/common/version.ts @@ -1 +1 @@ -export const napCatVersion = '2.5.3'; +export const napCatVersion = '2.5.4'; diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index 4f056038..9e74a146 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -609,7 +609,7 @@ export class OneBotMsgApi { [OB11MessageDataType.miniapp]: async () => undefined, [OB11MessageDataType.contact]: async ({ data }, context) => { - let arkJson = await this.core.apis.UserApi.getBuddyRecommendContactArkJson(data.qq, ''); + let arkJson = await this.core.apis.UserApi.getBuddyRecommendContactArkJson(data.id.toString(), ''); return this.ob11ToRawConverters.json({ data: { data: arkJson.arkMsg }, type: OB11MessageDataType.json diff --git a/src/onebot/types/message.ts b/src/onebot/types/message.ts index 1386aa52..0ef01c9b 100644 --- a/src/onebot/types/message.ts +++ b/src/onebot/types/message.ts @@ -85,7 +85,7 @@ export interface OB11MessageText { export interface OB11MessageContext { type: OB11MessageDataType.contact, data: { - qq: string, + id: string, } } export interface OB11MessageFileBase { diff --git a/src/webui/ui/NapCat.ts b/src/webui/ui/NapCat.ts index c7deba23..668075db 100644 --- a/src/webui/ui/NapCat.ts +++ b/src/webui/ui/NapCat.ts @@ -30,7 +30,7 @@ async function onSettingWindowCreated(view: Element) { SettingItem( 'Napcat', undefined, - SettingButton('V2.5.3', 'napcat-update-button', 'secondary'), + SettingButton('V2.5.4', 'napcat-update-button', 'secondary'), ), ]), SettingList([ diff --git a/static/assets/renderer.js b/static/assets/renderer.js index 51296347..41ce6a91 100644 --- a/static/assets/renderer.js +++ b/static/assets/renderer.js @@ -164,7 +164,7 @@ async function onSettingWindowCreated(view) { SettingItem( 'Napcat', void 0, - SettingButton("V2.5.3", "napcat-update-button", "secondary") + SettingButton("V2.5.4", "napcat-update-button", "secondary") ) ]), SettingList([