-
-function removeThumbnail (video: VideoInstance) {
- const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, video.getThumbnailName())
- return unlinkPromise(thumbnailPath)
-}
-
-function removeFile (video: VideoInstance) {
- const filePath = join(CONFIG.STORAGE.VIDEOS_DIR, video.getVideoFilename())
- return unlinkPromise(filePath)
-}
-
-function removeTorrent (video: VideoInstance) {
- const torrenPath = join(CONFIG.STORAGE.TORRENTS_DIR, video.getTorrentName())
- return unlinkPromise(torrenPath)
-}
-
-function removePreview (video: VideoInstance) {
- // Same name than video thumnail
- return unlinkPromise(CONFIG.STORAGE.PREVIEWS_DIR + video.getPreviewName())
-}
-
-function createTorrentFromVideo (video: VideoInstance, videoPath: string) {
- const options = {
- announceList: [
- [ CONFIG.WEBSERVER.WS + '://' + CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT + '/tracker/socket' ]
- ],
- urlList: [
- CONFIG.WEBSERVER.URL + STATIC_PATHS.WEBSEED + video.getVideoFilename()
- ]
- }
-
- return createTorrentPromise(videoPath, options)
- .then(torrent => {
- const filePath = join(CONFIG.STORAGE.TORRENTS_DIR, video.getTorrentName())
- return writeFilePromise(filePath, torrent).then(() => torrent)
- })
- .then(torrent => {
- const parsedTorrent = parseTorrent(torrent)
- video.set('infoHash', parsedTorrent.infoHash)
- return video.validate()
- })
-}
-
-function createPreview (video: VideoInstance, videoPath: string) {
- return generateImage(video, videoPath, CONFIG.STORAGE.PREVIEWS_DIR, video.getPreviewName(), null)
-}
-
-function createThumbnail (video: VideoInstance, videoPath: string) {
- return generateImage(video, videoPath, CONFIG.STORAGE.THUMBNAILS_DIR, video.getThumbnailName(), THUMBNAILS_SIZE)
-}
-
-function generateImage (video: VideoInstance, videoPath: string, folder: string, imageName: string, size: string) {
- const options = {
- filename: imageName,
- count: 1,
- folder
- }
-
- if (size) {
- options['size'] = size
- }
-
- return new Promise<string>((res, rej) => {
- ffmpeg(videoPath)
- .on('error', rej)
- .on('end', function () {
- return res(imageName)
- })
- .thumbnail(options)
- })
-}
-
-function removeFromBlacklist (video: VideoInstance) {
- // Find the blacklisted video
- return db.BlacklistedVideo.loadByVideoId(video.id).then(video => {
- // Not found the video, skip
- if (!video) {
- return null
- }
-
- // If we found the video, remove it from the blacklist
- return video.destroy()
- })
-}