UNPKG

yunzai-micro-plugin

Version:

Yunzai开发管理面板

54 lines (51 loc) 1.74 kB
import { readdirSync, readFileSync } from 'fs'; import { join } from 'path'; import { botInfo } from '../../../env.js'; import { getLatestLog, parseLog } from './logs.js'; let curLogs = []; let curLog = ''; class LogController { async logger(ctx) { const { id, page, size } = ctx.request.query; const logs = readdirSync(join(botInfo.WORK_PATH, 'logs')); let logText = ''; let resLogs = []; let p = page || 0; let pageSize = +size || 50; if (logs.length == 0) { resLogs = [{ time: '', level: 'WARN', detail: '当前日志为空,请机器人发送消息后刷新日志!', }]; } else { if (id != curLog) { if (id == '0' || !id) { curLog = getLatestLog(logs); logText = readFileSync(join(botInfo.WORK_PATH, 'logs', curLog), 'utf8'); } else { logText = readFileSync(join(botInfo.WORK_PATH, 'logs', id), 'utf8'); curLog = id; } curLogs = logText.split('\n'); } let start = pageSize * p; const sliceLogs = curLogs.slice(start, Math.min(start + pageSize, curLogs.length)); resLogs = sliceLogs.map(line => parseLog(line.trim())); } ctx.body = { code: 200, message: 'ok', data: { logList: logs, logs: resLogs, curLog, page: p } }; } } var LogController$1 = new LogController(); export { LogController$1 as default };