UNPKG

koishi-plugin-statistical-ranking

Version:

统计所有命令使用和成员发言记录,支持筛选展示列表,可以切换文本和图片两种展示形式

83 lines (82 loc) 3.21 kB
import { Context } from 'koishi'; import { StatProcessOptions } from './stat'; import { StatRecord } from './index'; /** * 统计数据渲染类 * 负责将统计数据渲染为可视化图表 */ export declare class Renderer { private ctx; constructor(ctx: Context); /** * 将HTML内容转换为图片 * @param {string} html - 要渲染的HTML内容 * @param {Object} options - 渲染选项 * @param {number} [options.width] - 图片宽度 * @returns {Promise<Buffer>} 图片Buffer数据 */ htmlToImage(html: string, options?: { width?: number; }): Promise<Buffer>; /** * 将统计记录转换为图表数据 * @param {StatRecord[]} records - 统计记录数组 * @param {keyof StatRecord} key - 统计键名 * @param {StatProcessOptions} options - 处理选项 * @returns {Array<{name: string, value: number, time: string, rawTime: Date}>} 转换后的图表数据 */ recordsToChartData(records: StatRecord[], key: keyof StatRecord, options?: StatProcessOptions): Array<{ name: string; value: number; time: string; rawTime: Date; }>; /** * 将统计记录分页处理 * @param {Array<{name: string, value: number, time: string, rawTime: Date}>} data - 统计数据 * @param {number} maxRowsPerPage - 每页最大行数 * @param {number} minRowsForNewPage - 创建新页面的最小行数 * @returns {Array<Array<{name: string, value: number, time: string, rawTime: Date}>>} 分页后的数据 */ paginateData(data: Array<{ name: string; value: number; time: string; rawTime: Date; }>, maxRowsPerPage?: number, minRowsForNewPage?: number): Array<Array<{ name: string; value: number; time: string; rawTime: Date; }>>; /** * 生成统计数据的图片 * @param {StatRecord[]} records - 统计记录数组 * @param {keyof StatRecord} key - 统计键名 * @param {string} title - 图表标题 * @param {StatProcessOptions} options - 处理选项 * @returns {Promise<Buffer[]>} 生成的图片Buffer数组 */ generateStatImage(records: StatRecord[], key: keyof StatRecord, title: string, options?: StatProcessOptions): Promise<Buffer[]>; /** * 生成综合统计图,将用户的所有统计信息整合到一张图中 * @param {Array<{records: StatRecord[], title: string, key: keyof StatRecord, options?: StatProcessOptions}>} datasets - 多个数据集 * @param {string} mainTitle - 主标题 * @returns {Promise<Buffer[]>} 生成的图片Buffer数组 */ generateCombinedStatImage(datasets: Array<{ records: StatRecord[]; title: string; key: keyof StatRecord; options?: StatProcessOptions; }>, mainTitle: string): Promise<Buffer[]>; /** * 生成表格HTML * @param {Array<{name: string, value: number, time: string}>} data - 表格数据 * @param {keyof StatRecord} key - 数据类型 * @param {string} headerColor - 表头颜色 * @returns {string} 表格HTML * @private */ private generateTableHTML; }