UNPKG

koishi-plugin-best-cave

Version:

回声洞,可自由添加内容,可配置 MD5/pHash 查重,支持查阅投稿列表(可用但等待重构)

109 lines (108 loc) 2.81 kB
/** * 哈希存储状态类型 */ interface HashStorageStatus { lastUpdated: string; entries: Array<{ caveId: number; imageHashes: string[]; textHashes: string[]; }>; } /** * 图片哈希值存储管理类 * 负责管理和维护回声洞图片的哈希值 */ export declare class HashManager { private readonly caveDir; private static readonly HASH_FILE; private static readonly CAVE_FILE; private static readonly BATCH_SIZE; private imageHashes; private textHashes; private initialized; /** * 初始化HashManager实例 * @param caveDir 回声洞数据目录路径 */ constructor(caveDir: string); private get filePath(); private get resourceDir(); private get caveFilePath(); /** * 初始化哈希存储 * 读取现有哈希数据或重新构建哈希值 * @throws 初始化失败时抛出错误 */ initialize(): Promise<void>; /** * 获取当前哈希存储状态 * @returns 包含最后更新时间和所有条目的状态对象 */ getStatus(): Promise<HashStorageStatus>; /** * 更新指定回声洞的图片哈希值 * @param caveId 回声洞ID * @param content 图片buffer数组 */ updateCaveContent(caveId: number, content: { images?: Buffer[]; texts?: string[]; }): Promise<void>; /** * 更新所有回声洞的哈希值 * @param isInitialBuild 是否为初始构建 */ updateAllCaves(isInitialBuild?: boolean): Promise<void>; /** * 查找重复的图片 * @param content 待查找的图片buffer数组 * @param thresholds 相似度阈值 * @returns 匹配结果数组,包含索引、回声洞ID和相似度 */ findDuplicates(content: { images?: Buffer[]; texts?: string[]; }, thresholds: { image: number; text: number; }): Promise<Array<{ type: 'image' | 'text'; index: number; caveId: number; similarity: number; } | null>>; private findTextDuplicates; private calculateTextSimilarity; private findImageDuplicates; /** * 加载回声洞数据 * @returns 回声洞数据数组 * @private */ private loadCaveData; /** * 保存哈希数据到文件 * @private */ private saveContentHashes; /** * 构建初始哈希数据 * @private */ private buildInitialHashes; /** * 更新缺失的哈希值 * @private */ private updateMissingHashes; /** * 批量处理数组项 * @param items 待处理项数组 * @param processor 处理函数 * @param batchSize 批处理大小 * @private */ private processBatch; } export {};