Skip to content

Commit

Permalink
feat: 追踪退出
Browse files Browse the repository at this point in the history
  • Loading branch information
MliKiowa committed Dec 29, 2024
1 parent 1f72863 commit eaf4817
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 8 deletions.
18 changes: 13 additions & 5 deletions src/common/umami.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,25 @@ import https from 'node:https';
import { napCatVersion } from './version';

export class umamiTrace {
static napcatVersion = napCatVersion;
static qqversion = '1.0.0';

static init(qqversion: string) {
this.qqversion = qqversion;
setInterval(() => {
this.trackEvent('heartbeat');
}, 5 * 60 * 1000);
}

static trackEvent(eventName: string, info?: string) {
const StatesData = {
type: 'event',
payload: {
'website': '596cbbb2-1740-4373-a807-cf3d0637bfa7',
'hostname': 'trace.napneko.icu',
'language': process.env.LANG || 'en-US',
'title': 'NapCat ' + napCatVersion,
'url': '/' + napCatVersion + '/' + eventName,
'referrer': 'https://trace.napneko.icu/' + napCatVersion,
'info': info
'title': 'NapCat ' + umamiTrace.napcatVersion,
'url': '/' + umamiTrace.qqversion + '/' + umamiTrace.napcatVersion + '/' + eventName,
'referrer': 'https://napcat.onebot.napneko.icu/' + umamiTrace.qqversion + '/' + umamiTrace.napcatVersion + '/' + info,
}
};

Expand Down
9 changes: 8 additions & 1 deletion src/framework/napcat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,26 @@ export async function NCoreInitFramework(
) {
//在进入本层前是否登录未进行判断
console.log('NapCat Framework App Loading...');
umamiTrace.trackEvent('framework/login');

process.on('uncaughtException', (err) => {
umamiTrace.trackEvent('framework/error', err.message);
console.log('[NapCat] [Error] Unhandled Exception:', err.message);
});

process.on('unhandledRejection', (reason, promise) => {
console.log('[NapCat] [Error] unhandledRejection:', reason);
});

process.on('exit', (code: number) => {
umamiTrace.trackEvent('framework/exit', code.toString());
});

const pathWrapper = new NapCatPathWrapper();
const logger = new LogWrapper(pathWrapper.logsPath);
const basicInfoWrapper = new QQBasicInfoWrapper({ logger });
const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVesion());
umamiTrace.init(basicInfoWrapper.getFullQQVesion());
umamiTrace.trackEvent('framework/login');
//直到登录成功后,执行下一步
const selfInfo = await new Promise<SelfInfo>((resolveSelfInfo) => {
const loginListener = new NodeIKernelLoginListener();
Expand Down
7 changes: 5 additions & 2 deletions src/shell/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,13 @@ export async function NCoreInitShell() {
const pathWrapper = new NapCatPathWrapper();
const logger = new LogWrapper(pathWrapper.logsPath);
handleUncaughtExceptions(logger);
umamiTrace.trackEvent('shell/boot');
process.on('exit', (code: number) => {
umamiTrace.trackEvent('framework/exit', code.toString());
});
const basicInfoWrapper = new QQBasicInfoWrapper({ logger });
const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVesion());

umamiTrace.init(basicInfoWrapper.getFullQQVesion());
umamiTrace.trackEvent('shell/boot');
const o3Service = wrapper.NodeIO3MiscService.get();
o3Service.addO3MiscListener(new NodeIO3MiscListener());

Expand Down

0 comments on commit eaf4817

Please sign in to comment.