koishi-plugin-statistical-ranking
Version:
统计所有命令使用和成员发言记录,支持筛选展示列表,可以切换文本和图片两种展示形式
83 lines (82 loc) • 3.21 kB
TypeScript
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;
}