diff --git a/manifest.json b/manifest.json index 5afe4881..eac454cd 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "name": "NapCatQQ", "slug": "NapCat.Framework", "description": "高性能的 OneBot 11 协议实现", - "version": "4.5.14", + "version": "4.5.15", "icon": "./logo.png", "authors": [ { diff --git a/package.json b/package.json index e292410d..8c851d2c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "napcat", "private": true, "type": "module", - "version": "4.5.14", + "version": "4.5.15", "scripts": { "build:universal": "npm run build:webui && vite build --mode universal || exit 1", "build:framework": "npm run build:webui && vite build --mode framework || exit 1", diff --git a/src/common/version.ts b/src/common/version.ts index 3b777799..290204a7 100644 --- a/src/common/version.ts +++ b/src/common/version.ts @@ -1 +1 @@ -export const napCatVersion = '4.5.14'; +export const napCatVersion = '4.5.15'; diff --git a/src/core/services/NodeIKernelMSFService.ts b/src/core/services/NodeIKernelMSFService.ts index f2bcb9a3..9a9db7dc 100644 --- a/src/core/services/NodeIKernelMSFService.ts +++ b/src/core/services/NodeIKernelMSFService.ts @@ -1,5 +1,6 @@ import { GeneralCallResult } from './common'; enum ProxyType { + CLOSE = 0, HTTP = 1, SOCKET = 2 } @@ -14,6 +15,15 @@ export interface NodeIKernelMSFService { domain: string, isSocket: boolean }): Promise; + getNetworkProxy(): Promise<{ + userName: string, + userPwd: string, + address: string, + port: number, + proxyType: ProxyType, + domain: string, + isSocket: boolean + }>; //http // userName: '', // userPwd: '', diff --git a/src/shell/base.ts b/src/shell/base.ts index dfd92561..ecd8e0b4 100644 --- a/src/shell/base.ts +++ b/src/shell/base.ts @@ -260,7 +260,30 @@ async function initializeSession( } }); } - +async function handleProxy(session: NodeIQQNTWrapperSession, logger: LogWrapper) { + if (process.env['NAPCAT_PROXY_PORT']) { + session.getMSFService().setNetworkProxy({ + userName: '', + userPwd: '', + address: process.env['NAPCAT_PROXY_ADDRESS'] || '127.0.0.1', + port: +process.env['NAPCAT_PROXY_PORT'], + proxyType: 2, + domain: '', + isSocket: true + }); + logger.logWarn('已设置代理', process.env['NAPCAT_PROXY_ADDRESS'], process.env['NAPCAT_PROXY_PORT']); + } else if (process.env['NAPCAT_PROXY_CLOSE']) { + session.getMSFService().setNetworkProxy({ + userName: '', + userPwd: '', + address: '', + port: 0, + proxyType: 0, + domain: '', + isSocket: false + }); + } +} export async function NCoreInitShell() { console.log('NapCat Shell App Loading...'); const pathWrapper = new NapCatPathWrapper(); @@ -286,7 +309,7 @@ export async function NCoreInitShell() { await initializeEngine(engine, basicInfoWrapper, dataPathGlobal, systemPlatform, systemVersion); await initializeLoginService(loginService, basicInfoWrapper, dataPathGlobal, systemVersion, hostname); - + handleProxy(session, logger); program.option('-q, --qq [number]', 'QQ号').parse(process.argv); const cmdOptions = program.opts(); const quickLoginUin = cmdOptions['qq']; @@ -294,18 +317,7 @@ export async function NCoreInitShell() { const dataTimestape = new Date().getTime().toString(); o3Service.reportAmgomWeather('login', 'a1', [dataTimestape, '0', '0']); - if (process.env['NAPCAT_PROXY_PORT']) { - session.getMSFService().setNetworkProxy({ - userName: '', - userPwd: '', - address: process.env['NAPCAT_PROXY_ADDRESS'] || '127.0.0.1', - port: +process.env['NAPCAT_PROXY_PORT'], - proxyType: 2, - domain: '', - isSocket: true - }); - logger.logWarn('已设置代理', process.env['NAPCAT_PROXY_ADDRESS'], process.env['NAPCAT_PROXY_PORT']); - } + const selfInfo = await handleLogin(loginService, logger, pathWrapper, quickLoginUin, historyLoginList); const amgomDataPiece = 'eb1fd6ac257461580dc7438eb099f23aae04ca679f4d88f53072dc56e3bb1129'; o3Service.setAmgomDataPiece(basicInfoWrapper.QQVersionAppid, new Uint8Array(Buffer.from(amgomDataPiece, 'hex')));