X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fvideo-path-manager.ts;h=4027f885d19f40ccbcf7c19a2b50b763ccc460eb;hb=dbd9fb44ddd880622265097bd7baf4dd71ea0861;hp=4c5d0c89d17ed360bcd1fc7af9c955e47da63403;hpb=0305db28c98fd6cf43a3c50ba92c76215e99d512;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/video-path-manager.ts b/server/lib/video-path-manager.ts index 4c5d0c89d..4027f885d 100644 --- a/server/lib/video-path-manager.ts +++ b/server/lib/video-path-manager.ts @@ -1,9 +1,16 @@ import { remove } from 'fs-extra' import { extname, join } from 'path' -import { buildUUID } from '@server/helpers/uuid' import { extractVideo } from '@server/helpers/video' import { CONFIG } from '@server/initializers/config' -import { MStreamingPlaylistVideo, MVideo, MVideoFile, MVideoUUID } from '@server/types/models' +import { + MStreamingPlaylistVideo, + MVideo, + MVideoFile, + MVideoFileStreamingPlaylistVideo, + MVideoFileVideo, + MVideoUUID +} from '@server/types/models' +import { buildUUID } from '@shared/core-utils' import { VideoStorage } from '@shared/models' import { makeHLSFileAvailable, makeWebTorrentFileAvailable } from './object-storage' import { getHLSDirectory, getHLSRedundancyDirectory, getHlsResolutionPlaylistFilename } from './paths' @@ -43,10 +50,10 @@ class VideoPathManager { return join(CONFIG.STORAGE.VIDEOS_DIR, videoFile.filename) } - async makeAvailableVideoFile (videoOrPlaylist: MVideo | MStreamingPlaylistVideo, videoFile: MVideoFile, cb: MakeAvailableCB) { + async makeAvailableVideoFile (videoFile: MVideoFileVideo | MVideoFileStreamingPlaylistVideo, cb: MakeAvailableCB) { if (videoFile.storage === VideoStorage.FILE_SYSTEM) { return this.makeAvailableFactory( - () => this.getFSVideoFileOutputPath(videoOrPlaylist, videoFile), + () => this.getFSVideoFileOutputPath(videoFile.getVideoOrStreamingPlaylist(), videoFile), false, cb ) @@ -55,10 +62,10 @@ class VideoPathManager { const destination = this.buildTMPDestination(videoFile.filename) if (videoFile.isHLS()) { - const video = extractVideo(videoOrPlaylist) + const playlist = (videoFile as MVideoFileStreamingPlaylistVideo).VideoStreamingPlaylist return this.makeAvailableFactory( - () => makeHLSFileAvailable(videoOrPlaylist as MStreamingPlaylistVideo, video, videoFile.filename, destination), + () => makeHLSFileAvailable(playlist, videoFile.filename, destination), true, cb ) @@ -71,19 +78,20 @@ class VideoPathManager { ) } - async makeAvailableResolutionPlaylistFile (playlist: MStreamingPlaylistVideo, videoFile: MVideoFile, cb: MakeAvailableCB) { + async makeAvailableResolutionPlaylistFile (videoFile: MVideoFileStreamingPlaylistVideo, cb: MakeAvailableCB) { const filename = getHlsResolutionPlaylistFilename(videoFile.filename) if (videoFile.storage === VideoStorage.FILE_SYSTEM) { return this.makeAvailableFactory( - () => join(getHLSDirectory(playlist.Video), filename), + () => join(getHLSDirectory(videoFile.getVideo()), filename), false, cb ) } + const playlist = videoFile.VideoStreamingPlaylist return this.makeAvailableFactory( - () => makeHLSFileAvailable(playlist, playlist.Video, filename, this.buildTMPDestination(filename)), + () => makeHLSFileAvailable(playlist, filename, this.buildTMPDestination(filename)), true, cb ) @@ -99,7 +107,7 @@ class VideoPathManager { } return this.makeAvailableFactory( - () => makeHLSFileAvailable(playlist, playlist.Video, filename, this.buildTMPDestination(filename)), + () => makeHLSFileAvailable(playlist, filename, this.buildTMPDestination(filename)), true, cb )