UNPKG

koishi-plugin-emojiluna

Version:

Smart emoji management plugin with AI categorization

68 lines (67 loc) 1.76 kB
import { Context } from 'koishi'; import { Config } from './config'; export interface AutoCollectOptions { minSize: number; maxSize: number; similarityThreshold: number; whitelistGroups: string[]; groupAutoCollectLimit: Record<string, { hourLimit: number; dayLimit: number; }>; } export interface ImageInfo { buffer: Buffer; size: number; hash: string; format: string; } export interface ImageFeatures { phash: string; histogram: number[]; aspectRatio: number; dimensions: { width: number; height: number; }; } export declare class AutoCollector { private ctx; private config; private options; private emojiHashes; private imageFeatures; private static readonly MAX_HASHES; private groupAutoCollectLimit; constructor(ctx: Context, config: Config); private loadExistingHashes; private checkHitLimit; private registerCommands; start(): void; private shouldProcessMessage; private processImage; private getImageInfo; private checkFileSize; private calculateImageHash; private detectImageFormat; private extractImageFeatures; private getImageDimensions; private calculatePerceptualHash; private convertToGrayscale; private resizeImage; private applyDCT; private calculateMedian; private calculateHistogram; private hammingDistance; private histogramSimilarity; private calculateSimilarityScore; private calculateDimensionSimilarity; private isSimilarToExisting; private saveEmoji; updateConfig(config: Config): void; getStats(): { totalHashes: number; isEnabled: boolean; options: AutoCollectOptions; }; }