mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
30 lines • 1.25 kB
TypeScript
import type { ILibraryServerData } from 'mira-app-core/storage/sqlite';
export interface MetadataRule {
name: string;
supportedExtensions: string[];
parse(raw: Record<string, any>, filePath: string): Record<string, any> | Promise<Record<string, any>>;
extractCover?: boolean;
}
export declare const BUILTIN_METADATA_RULES: MetadataRule[];
export declare class MetadataService {
private readonly queue;
private readonly rules;
private readonly extensionRules;
private readonly progress;
private readonly exiftoolPath;
constructor(exiftoolPath?: string | null);
registerRule(rule: MetadataRule): void;
unregisterRule(name: string): void;
enqueue(file: Record<string, any>, dbService: ILibraryServerData, onSettled?: () => void): boolean;
getStats(dbService: ILibraryServerData): Promise<Record<string, number | boolean>>;
scanPending(libraryId: string, dbService: ILibraryServerData): Promise<{
available: boolean;
queued: number;
}>;
getProgressData(libraryId: string): Record<string, number | boolean>;
clear(): void;
private rebuildExtensionRules;
private getSupportedFiles;
private extractCover;
}
//# sourceMappingURL=MetadataService.d.ts.map