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')));