]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/thumbnail.ts
Translated using Weblate (German)
[github/Chocobozzz/PeerTube.git] / server / lib / thumbnail.ts
index 5d0c9f7424536040695876c7d99cd79aa8245a56..06066f9106cf7e0f5e764bb527a947d5a5e87b03 100644 (file)
@@ -1,6 +1,5 @@
-import chaiJsonSchema = require('chai-json-schema')
-import { copy, move } from 'fs-extra'
 import { join } from 'path'
+
 import { ThumbnailType } from '../../shared/models/videos/thumbnail.type'
 import { generateImageFromVideoFile } from '../helpers/ffmpeg-utils'
 import { processImage } from '../helpers/image-utils'
@@ -63,7 +62,7 @@ function createVideoMiniatureFromUrl (options: {
   size?: ImageSize
 }) {
   const { downloadUrl, video, type, size } = options
-  const { filename, basePath, height, width, existingThumbnail } = buildMetadataFromVideo(video, type, size)
+  const { filename: updatedFilename, basePath, height, width, existingThumbnail } = buildMetadataFromVideo(video, type, size)
 
   // Only save the file URL if it is a remote video
   const fileUrl = video.isOwned()
@@ -75,12 +74,18 @@ function createVideoMiniatureFromUrl (options: {
     ? existingThumbnail.fileUrl
     : null
 
-  // If the thumbnail URL did not change and has a unique filename (introduced in 3.2), avoid thumbnail processing
+  // If the thumbnail URL did not change and has a unique filename (introduced in 3.1), avoid thumbnail processing
   const thumbnailUrlChanged = !existingUrl || existingUrl !== downloadUrl || downloadUrl.endsWith(`${video.uuid}.jpg`)
+
+  // Do not change the thumbnail filename if the file did not change
+  const filename = thumbnailUrlChanged
+    ? updatedFilename
+    : existingThumbnail.filename
+
   const thumbnailCreator = () => {
     if (thumbnailUrlChanged) return downloadImage(downloadUrl, basePath, filename, { width, height })
 
-    return copy(existingThumbnail.getPath(), ThumbnailModel.buildPath(type, filename))
+    return Promise.resolve()
   }
 
   return createThumbnailFromFunction({ thumbnailCreator, filename, height, width, type, existingThumbnail, fileUrl })
@@ -237,7 +242,7 @@ async function createThumbnailFromFunction (parameters: {
     fileUrl = null
   } = parameters
 
-  const oldFilename = existingThumbnail
+  const oldFilename = existingThumbnail && existingThumbnail.filename !== filename
     ? existingThumbnail.filename
     : undefined
 
@@ -249,7 +254,8 @@ async function createThumbnailFromFunction (parameters: {
   thumbnail.type = type
   thumbnail.fileUrl = fileUrl
   thumbnail.automaticallyGenerated = automaticallyGenerated
-  thumbnail.previousThumbnailFilename = oldFilename
+
+  if (oldFilename) thumbnail.previousThumbnailFilename = oldFilename
 
   await thumbnailCreator()