import { CONFIG } from '@server/initializers/config.js' import { THUMBNAILS_SIZE } from '@server/initializers/constants.js' import { ThumbnailModel } from '@server/models/video/thumbnail.js' import { MThumbnail } from '@server/types/models/index.js' import { ThumbnailType } from '@peertube/peertube-models' import { AbstractPermanentFileCache } from './shared/index.js' export class VideoMiniaturePermanentFileCache extends AbstractPermanentFileCache { constructor () { super(CONFIG.STORAGE.THUMBNAILS_DIR) } protected loadModel (filename: string) { return ThumbnailModel.loadByFilename(filename, ThumbnailType.MINIATURE) } protected getImageSize (image: MThumbnail): { width: number, height: number } { if (image.width && image.height) { return { height: image.height, width: image.width } } return THUMBNAILS_SIZE } }