koishi-plugin-statistical-ranking
Version:
统计所有命令使用和成员发言记录,支持筛选展示列表,可以切换文本和图片两种展示形式
85 lines (84 loc) • 3.32 kB
TypeScript
import { Context } from 'koishi';
import { StatRecord } from './index';
/**
* 统计数据导入导出工具集
*/
export declare const io: {
/**
* 导出统计数据到文件
* @param {Context} ctx Koishi 上下文
* @param {string} filename 文件名(不含扩展名)
* @param {Object} options 导出选项
* @param {string} [options.userId] 筛选特定用户ID
* @param {string} [options.platform] 筛选特定平台
* @param {string} [options.guildId] 筛选特定群组ID
* @param {string} [options.command] 筛选特定命令
* @param {number} [options.batchSize] 批处理大小,默认为200条/批
* @returns {Promise<{count: number, batches: number, files: Array<{count: number, path: string, filename: string, batch: number, totalBatches: number}>}>} 导出结果
* @throws {Error} 导出失败时抛出错误
*/
exportToFile(ctx: Context, filename: string, options: {
userId?: string;
platform?: string;
guildId?: string;
command?: string;
batchSize?: number;
}): Promise<{
count: number;
batches: number;
files: any[];
}>;
/**
* 列出可导入的统计数据文件
* @param {Context} ctx Koishi 上下文
* @returns {Promise<{files: string[], fileInfo: Record<string, any>}>} 文件列表和详细信息
*/
listImportFiles(ctx: Context): Promise<{
files: any[];
fileInfo: {};
}>;
/**
* 从文件导入统计数据
* @param {Context} ctx Koishi 上下文
* @param {string} filename 文件名或文件组标识
* @param {boolean} [overwrite=false] 是否覆盖现有数据
* @returns {Promise<string>} 导入结果消息
* @throws {Error} 导入失败时抛出错误
*/
importFromFile(ctx: Context, filename: string, overwrite?: boolean): Promise<string>;
/**
* 从 analytics 插件导入历史数据
* @param {Context} ctx Koishi 上下文
* @param {boolean} [overwrite=false] 是否覆盖现有数据
* @returns {Promise<string>} 导入结果消息
* @throws {Error} 导入失败时抛出错误
*/
importLegacyData(ctx: Context, overwrite?: boolean): Promise<string>;
/**
* 解析JSON格式的统计数据
* @param {string} content JSON格式的字符串内容
* @returns {{validRecords: Array<StatRecord>, totalRecords: number, invalidRecords: number}} 解析结果,包括有效记录、总记录数和无效记录数
* @throws {Error} 解析失败时抛出错误
*/
parseJSON(content: string): {
validRecords: any[];
totalRecords: any;
invalidRecords: number;
};
/**
* 将统计记录导入到数据库
* @param {Context} ctx Koishi 上下文
* @param {Array<StatRecord>} records 要导入的统计记录数组
* @returns {Promise<{imported: number, errors: number}>} 导入结果,包括成功导入数和错误数
*/
importRecords(ctx: Context, records: StatRecord[]): Promise<{
imported: number;
errors: number;
}>;
/**
* 注册导入导出命令
* @param {Context} ctx Koishi 上下文
* @param {any} parent 父命令对象
*/
registerCommands(ctx: Context, parent: any): void;
};