Files
wechat-radar/app/api/dbinfo/route.ts
T
2026-05-24 13:42:56 +08:00

24 lines
1.1 KiB
TypeScript

import { NextResponse } from 'next/server';
import { db } from '@/lib/db';
import { homedir } from 'node:os';
import { join } from 'node:path';
import { existsSync, statSync } from 'node:fs';
export const dynamic = 'force-dynamic';
export async function GET() {
const dataDir = process.env.WECHAT_RADAR_DATA_DIR ?? join(homedir(), '.wechat-radar');
const dbPath = join(dataDir, 'radar.db');
const dbSize = existsSync(dbPath) ? statSync(dbPath).size : 0;
const counts = {
groups: (db().prepare('SELECT COUNT(*) AS n FROM groups').get() as { n: number }).n,
messages: (db().prepare('SELECT COUNT(*) AS n FROM messages').get() as { n: number }).n,
daily_stats: (db().prepare('SELECT COUNT(*) AS n FROM daily_stats').get() as { n: number }).n,
sync_state: (db().prepare('SELECT COUNT(*) AS n FROM sync_state').get() as { n: number }).n,
};
const topGroups = db().prepare(`
SELECT chatroom_id, COUNT(*) AS n FROM messages GROUP BY chatroom_id ORDER BY n DESC LIMIT 5
`).all();
return NextResponse.json({ dataDir, dbPath, dbSize, counts, topGroups });
}