Don't create another uneeded preview placeholder
This commit is contained in:
parent
cd2c3dcdc4
commit
1ef447bd83
|
@ -1,5 +1,4 @@
|
||||||
import { join } from 'path'
|
import { join } from 'path'
|
||||||
|
|
||||||
import { ThumbnailType } from '../../shared/models/videos/thumbnail.type'
|
import { ThumbnailType } from '../../shared/models/videos/thumbnail.type'
|
||||||
import { generateImageFromVideoFile } from '../helpers/ffmpeg-utils'
|
import { generateImageFromVideoFile } from '../helpers/ffmpeg-utils'
|
||||||
import { processImage } from '../helpers/image-utils'
|
import { processImage } from '../helpers/image-utils'
|
||||||
|
@ -7,7 +6,7 @@ import { downloadImage } from '../helpers/requests'
|
||||||
import { CONFIG } from '../initializers/config'
|
import { CONFIG } from '../initializers/config'
|
||||||
import { ASSETS_PATH, PREVIEWS_SIZE, THUMBNAILS_SIZE } from '../initializers/constants'
|
import { ASSETS_PATH, PREVIEWS_SIZE, THUMBNAILS_SIZE } from '../initializers/constants'
|
||||||
import { ThumbnailModel } from '../models/video/thumbnail'
|
import { ThumbnailModel } from '../models/video/thumbnail'
|
||||||
import { MVideoFile, MVideoThumbnail } from '../types/models'
|
import { MVideoFile, MVideoThumbnail, MVideoUUID } from '../types/models'
|
||||||
import { MThumbnail } from '../types/models/video/thumbnail'
|
import { MThumbnail } from '../types/models/video/thumbnail'
|
||||||
import { MVideoPlaylistThumbnail } from '../types/models/video/video-playlist'
|
import { MVideoPlaylistThumbnail } from '../types/models/video/video-playlist'
|
||||||
import { getVideoFilePath } from './video-paths'
|
import { getVideoFilePath } from './video-paths'
|
||||||
|
@ -69,13 +68,7 @@ function createVideoMiniatureFromUrl (options: {
|
||||||
? null
|
? null
|
||||||
: downloadUrl
|
: downloadUrl
|
||||||
|
|
||||||
// If the thumbnail URL did not change
|
const thumbnailUrlChanged = hasThumbnailUrlChanged(existingThumbnail, downloadUrl, video)
|
||||||
const existingUrl = existingThumbnail
|
|
||||||
? existingThumbnail.fileUrl
|
|
||||||
: null
|
|
||||||
|
|
||||||
// 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
|
// Do not change the thumbnail filename if the file did not change
|
||||||
const filename = thumbnailUrlChanged
|
const filename = thumbnailUrlChanged
|
||||||
|
@ -147,10 +140,17 @@ function createPlaceholderThumbnail (options: {
|
||||||
size: ImageSize
|
size: ImageSize
|
||||||
}) {
|
}) {
|
||||||
const { fileUrl, video, type, size } = options
|
const { fileUrl, video, type, size } = options
|
||||||
const { filename, height, width, existingThumbnail } = buildMetadataFromVideo(video, type, size)
|
const { filename: updatedFilename, height, width, existingThumbnail } = buildMetadataFromVideo(video, type, size)
|
||||||
|
|
||||||
|
const thumbnailUrlChanged = hasThumbnailUrlChanged(existingThumbnail, fileUrl, video)
|
||||||
|
|
||||||
const thumbnail = existingThumbnail || new ThumbnailModel()
|
const thumbnail = existingThumbnail || new ThumbnailModel()
|
||||||
|
|
||||||
|
// Do not change the thumbnail filename if the file did not change
|
||||||
|
const filename = thumbnailUrlChanged
|
||||||
|
? updatedFilename
|
||||||
|
: existingThumbnail.filename
|
||||||
|
|
||||||
thumbnail.filename = filename
|
thumbnail.filename = filename
|
||||||
thumbnail.height = height
|
thumbnail.height = height
|
||||||
thumbnail.width = width
|
thumbnail.width = width
|
||||||
|
@ -171,6 +171,15 @@ export {
|
||||||
createPlaylistMiniatureFromExisting
|
createPlaylistMiniatureFromExisting
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hasThumbnailUrlChanged (existingThumbnail: MThumbnail, downloadUrl: string, video: MVideoUUID) {
|
||||||
|
const existingUrl = existingThumbnail
|
||||||
|
? existingThumbnail.fileUrl
|
||||||
|
: null
|
||||||
|
|
||||||
|
// If the thumbnail URL did not change and has a unique filename (introduced in 3.1), avoid thumbnail processing
|
||||||
|
return !existingUrl || existingUrl !== downloadUrl || downloadUrl.endsWith(`${video.uuid}.jpg`)
|
||||||
|
}
|
||||||
|
|
||||||
function buildMetadataFromPlaylist (playlist: MVideoPlaylistThumbnail, size: ImageSize) {
|
function buildMetadataFromPlaylist (playlist: MVideoPlaylistThumbnail, size: ImageSize) {
|
||||||
const filename = playlist.generateThumbnailName()
|
const filename = playlist.generateThumbnailName()
|
||||||
const basePath = CONFIG.STORAGE.THUMBNAILS_DIR
|
const basePath = CONFIG.STORAGE.THUMBNAILS_DIR
|
||||||
|
|
Loading…
Reference in New Issue