X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Ffiles-cache%2Fvideos-preview-cache.ts;h=48d2cb52cf4a1df62bef174ba3bf81fbd83c812b;hb=60b880acdfa85eab5c9ec09ba1283f82ae58ec85;hp=51146d71843934ec4ce06605fc3d6b8245e9b54d;hpb=a8b1b40485145ac1eae513a661d7dd6e0986ce96;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/files-cache/videos-preview-cache.ts b/server/lib/files-cache/videos-preview-cache.ts index 51146d718..48d2cb52c 100644 --- a/server/lib/files-cache/videos-preview-cache.ts +++ b/server/lib/files-cache/videos-preview-cache.ts @@ -20,7 +20,7 @@ class VideosPreviewCache extends AbstractVideoStaticFileCache { } async getFilePathImpl (filename: string) { - const thumbnail = await ThumbnailModel.loadWithVideoByName(filename, ThumbnailType.PREVIEW) + const thumbnail = await ThumbnailModel.loadWithVideoByFilename(filename, ThumbnailType.PREVIEW) if (!thumbnail) return undefined if (thumbnail.Video.isOwned()) return { isOwned: true, path: thumbnail.getPath() } @@ -28,21 +28,28 @@ class VideosPreviewCache extends AbstractVideoStaticFileCache { return this.loadRemoteFile(thumbnail.Video.uuid) } + // Key is the video UUID protected async loadRemoteFile (key: string) { - const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(key) + const video = await VideoModel.loadFull(key) if (!video) return undefined if (video.isOwned()) throw new Error('Cannot load remote preview of owned video.') const preview = video.getPreview() const destPath = join(FILES_CACHE.PREVIEWS.DIRECTORY, preview.filename) - const remoteUrl = preview.getFileUrl(video) - await doRequestAndSaveToFile({ uri: remoteUrl }, destPath) - logger.debug('Fetched remote preview %s to %s.', remoteUrl, destPath) + try { + await doRequestAndSaveToFile(remoteUrl, destPath) + + logger.debug('Fetched remote preview %s to %s.', remoteUrl, destPath) + + return { isOwned: false, path: destPath } + } catch (err) { + logger.info('Cannot fetch remote preview file %s.', remoteUrl, { err }) - return { isOwned: false, path: destPath } + return undefined + } } }