mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
57 lines • 2.34 kB
TypeScript
import { EventArgs } from 'mira-app-core';
import { ILibraryServerData } from 'mira-app-core/storage/sqlite';
import { MiraWebsocketServer } from '../WebSocketServer';
export interface ThumbnailGenerator {
name: string;
supportedExtensions: string[];
generate(srcPath: string, destPath: string): Promise<void>;
}
export declare class ThumbnailService {
private generators;
private extMap;
private taskQueue;
private progress;
private wsServer;
private readonly imageMagickPath;
private readonly ghostscriptPath;
private readonly ffmpegPath;
private readonly ffprobePath;
private previewTasks;
private hlsMetadataTasks;
private hlsSegmentTasks;
constructor();
setWebSocketServer(server: MiraWebsocketServer): void;
registerGenerator(generator: ThumbnailGenerator): void;
unregisterGenerator(name: string): void;
getGenerators(): ThumbnailGenerator[];
hasImageMagick(): boolean;
getPreviewPath(srcPath: string, cacheDir: string, cacheKey: string): Promise<string>;
getHlsPlaylist(srcPath: string, cacheDir: string, cacheKey: string, segmentQuery?: string): Promise<string>;
getHlsSegmentPath(srcPath: string, cacheDir: string, cacheKey: string, segmentIndex: number): Promise<string>;
private getHlsMetadata;
private getGeneratorForFile;
onFileCreated(libraryId: string, event: EventArgs, dbService: ILibraryServerData): void;
onFileDeleted(libraryId: string, item: any, dbService: ILibraryServerData): void;
scanPending(libraryId: string, dbService: ILibraryServerData, reason?: string): Promise<void>;
private incrementProgress;
cancelScan(): void;
getStats(libraryId: string, dbService: ILibraryServerData): Promise<{
totalFiles: number;
withThumbnails: number;
withoutThumbnails: number;
thumbnailRate: number;
}>;
getProgressData(libraryId: string, dbService: ILibraryServerData): Promise<{
totalPending: number;
queueLength: number;
processing: boolean;
completed: number;
progress: number;
}>;
syncThumbStatus(libraryId: string, dbService: ILibraryServerData, reason?: string): Promise<{
total: number;
synced: number;
}>;
private getPendingFiles;
}
//# sourceMappingURL=ThumbnailService.d.ts.map