X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fvideo-playlist.ts;h=41a0e07ff5f4433edacba477161c88a2ff6b4e9a;hb=3fba4b6bce69247b1d37f923894d8f44818a891c;hp=b51490bf914f599c301c1796dfc89f3e25938158;hpb=338eb9d33af690db716805fd2277bf68f473b58f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/video-playlist.ts b/server/controllers/api/video-playlist.ts index b51490bf9..41a0e07ff 100644 --- a/server/controllers/api/video-playlist.ts +++ b/server/controllers/api/video-playlist.ts @@ -1,5 +1,5 @@ import * as express from 'express' -import { getFormattedObjects, getServerActor } from '../../helpers/utils' +import { getFormattedObjects } from '../../helpers/utils' import { asyncMiddleware, asyncRetryTransactionMiddleware, @@ -40,7 +40,8 @@ import { JobQueue } from '../../lib/job-queue' import { CONFIG } from '../../initializers/config' import { sequelizeTypescript } from '../../initializers/database' import { createPlaylistMiniatureFromExisting } from '../../lib/thumbnail' -import { MVideoPlaylistFull, MVideoPlaylistThumbnail, MVideoThumbnail } from '@server/typings/models' +import { MVideoPlaylistFull, MVideoPlaylistThumbnail, MVideoThumbnail } from '@server/types/models' +import { getServerActor } from '@server/models/application/application' const reqThumbnailFile = createReqFiles([ 'thumbnailfile' ], MIMETYPES.IMAGE.MIMETYPE_EXT, { thumbnailfile: CONFIG.STORAGE.TMP_DIR }) @@ -296,7 +297,6 @@ async function addVideoInPlaylist (req: express.Request, res: express.Response) const position = await VideoPlaylistElementModel.getNextPositionOf(videoPlaylist.id, t) const playlistElement = await VideoPlaylistElementModel.create({ - url: getVideoPlaylistElementActivityPubUrl(videoPlaylist, video), position, startTimestamp: body.startTimestamp || null, stopTimestamp: body.stopTimestamp || null, @@ -304,6 +304,9 @@ async function addVideoInPlaylist (req: express.Request, res: express.Response) videoId: video.id }, { transaction: t }) + playlistElement.url = getVideoPlaylistElementActivityPubUrl(videoPlaylist, playlistElement) + await playlistElement.save({ transaction: t }) + videoPlaylist.changed('updatedAt', true) await videoPlaylist.save({ transaction: t }) @@ -463,7 +466,13 @@ async function regeneratePlaylistThumbnail (videoPlaylist: MVideoPlaylistThumbna async function generateThumbnailForPlaylist (videoPlaylist: MVideoPlaylistThumbnail, video: MVideoThumbnail) { logger.info('Generating default thumbnail to playlist %s.', videoPlaylist.url) - const inputPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, video.getMiniature().filename) + const videoMiniature = video.getMiniature() + if (!videoMiniature) { + logger.info('Cannot generate thumbnail for playlist %s because video %s does not have any.', videoPlaylist.url, video.url) + return + } + + const inputPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, videoMiniature.filename) const thumbnailModel = await createPlaylistMiniatureFromExisting(inputPath, videoPlaylist, true, true) thumbnailModel.videoPlaylistId = videoPlaylist.id