koishi-plugin-best-cave
Version:
回声洞,可自由添加内容,可配置 MD5/pHash 查重,支持查阅投稿列表(可用但等待重构)
70 lines (69 loc) • 2.11 kB
TypeScript
/**
* ID管理器类
* 负责管理回声洞ID的分配、删除和统计信息
*/
export declare class IdManager {
private deletedIds;
private maxId;
private initialized;
private readonly statusFilePath;
private stats;
private usedIds;
/**
* 初始化ID管理器
* @param baseDir - 基础目录路径
*/
constructor(baseDir: string);
/**
* 初始化ID管理系统
* @param caveFilePath - 正式回声洞数据文件路径
* @param pendingFilePath - 待处理回声洞数据文件路径
* @throws 当初始化失败时抛出错误
*/
initialize(caveFilePath: string, pendingFilePath: string): Promise<void>;
/**
* 处理ID冲突
* @param conflicts - ID冲突映射表
* @param caveFilePath - 正式回声洞数据文件路径
* @param pendingFilePath - 待处理回声洞数据文件路径
* @param caveData - 正式回声洞数据
* @param pendingData - 待处理回声洞数据
* @private
*/
private handleConflicts;
/**
* 获取下一个可用的ID
* @returns 下一个可用的ID
* @throws 当ID管理器未初始化时抛出错误
*/
getNextId(): number;
/**
* 标记ID为已删除状态
* @param id - 要标记为删除的ID
* @throws 当ID管理器未初始化时抛出错误
*/
markDeleted(id: number): Promise<void>;
/**
* 添加贡献统计
* @param contributorNumber - 贡献者编号
* @param caveId - 回声洞ID
*/
addStat(contributorNumber: string, caveId: number): Promise<void>;
/**
* 移除贡献统计
* @param contributorNumber - 贡献者编号
* @param caveId - 回声洞ID
*/
removeStat(contributorNumber: string, caveId: number): Promise<void>;
/**
* 获取所有贡献统计信息
* @returns 贡献者编号到回声洞ID列表的映射
*/
getStats(): Record<string, number[]>;
/**
* 保存当前状态到文件
* @private
* @throws 当保存失败时抛出错误
*/
private saveStatus;
}