From a4aeb8171d357885cdab7dd97187acea0f00e4aa Mon Sep 17 00:00:00 2001 From: linyuchen Date: Tue, 28 May 2024 15:42:22 +0800 Subject: [PATCH] fix: QQ package.json on macOS --- src/common/utils/QQBasicInfo.ts | 48 +++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/src/common/utils/QQBasicInfo.ts b/src/common/utils/QQBasicInfo.ts index 9f49536..29c0ceb 100644 --- a/src/common/utils/QQBasicInfo.ts +++ b/src/common/utils/QQBasicInfo.ts @@ -3,26 +3,34 @@ import fs from 'node:fs' import os from 'node:os' import { systemPlatform } from './system' -export const exePath = process.execPath; +export const exePath = process.execPath -export const pkgInfoPath = path.join(path.dirname(exePath), 'resources', 'app', 'package.json'); -let configVersionInfoPath; +function getPKGPath() { + let p = path.join(path.dirname(exePath), 'resources', 'app', 'package.json') + if (systemPlatform === 'darwin') { + p = path.join(path.dirname(path.dirname(exePath)), 'Resources', 'app', 'package.json') + } + return p +} +export const pkgInfoPath = getPKGPath() +let configVersionInfoPath: string if (os.platform() !== 'linux') { - configVersionInfoPath = path.join(path.dirname(exePath), 'resources', 'app', 'versions', 'config.json'); -} else { - const userPath = os.homedir(); - const appDataPath = path.resolve(userPath, './.config/QQ'); - configVersionInfoPath = path.resolve(appDataPath, './versions/config.json'); + configVersionInfoPath = path.join(path.dirname(exePath), 'resources', 'app', 'versions', 'config.json') +} +else { + const userPath = os.homedir() + const appDataPath = path.resolve(userPath, './.config/QQ') + configVersionInfoPath = path.resolve(appDataPath, './versions/config.json') } if (typeof configVersionInfoPath !== 'string') { - throw new Error('Something went wrong when load QQ info path'); + throw new Error('Something went wrong when load QQ info path') } -export { configVersionInfoPath }; +export { configVersionInfoPath } type QQPkgInfo = { version: string; @@ -43,21 +51,21 @@ let _qqVersionConfigInfo: QQVersionConfigInfo = { 'curVersion': '9.9.9-23361', 'prevVersion': '', 'onErrorVersions': [], - 'buildId': '23361' -}; + 'buildId': '23361', +} if (fs.existsSync(configVersionInfoPath)) { try { - const _ =JSON.parse(fs.readFileSync(configVersionInfoPath).toString()); - _qqVersionConfigInfo = Object.assign(_qqVersionConfigInfo, _); + const _ = JSON.parse(fs.readFileSync(configVersionInfoPath).toString()) + _qqVersionConfigInfo = Object.assign(_qqVersionConfigInfo, _) } catch (e) { - console.error('Load QQ version config info failed, Use default version', e); + console.error('Load QQ version config info failed, Use default version', e) } } -export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo; +export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo -export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath); +export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath) // platform_type: 3, // app_type: 4, // app_version: '9.9.9-23159', @@ -66,10 +74,10 @@ export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath); // platVer: '10.0.26100', // clientVer: '9.9.9-23159', -let _appid: string = '537213803'; // 默认为 Windows 平台的 appid +let _appid: string = '537213803' // 默认为 Windows 平台的 appid if (systemPlatform === 'linux') { - _appid = '537213827'; + _appid = '537213827' } // todo: mac 平台的 appid -export const appid = _appid; +export const appid = _appid export const isQQ998: boolean = qqPkgInfo.buildVersion >= '22106' \ No newline at end of file