mirror of https://github.com/Chocobozzz/PeerTube
58 lines
2.0 KiB
JavaScript
58 lines
2.0 KiB
JavaScript
/*
|
|
Rename thumbnails and video filenames to _id.extension
|
|
*/
|
|
|
|
const each = require('async/each')
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const mongoose = require('mongoose')
|
|
|
|
const constants = require('../constants')
|
|
const logger = require('../../helpers/logger')
|
|
|
|
const Video = mongoose.model('Video')
|
|
|
|
exports.up = function (callback) {
|
|
// Use of lean because the new Video scheme does not have filename field
|
|
Video.find({ filename: { $ne: null } }).lean().exec(function (err, videos) {
|
|
if (err) throw err
|
|
|
|
each(videos, function (video, callbackEach) {
|
|
const torrentName = video.filename + '.torrent'
|
|
const thumbnailName = video.thumbnail
|
|
const thumbnailExtension = path.extname(thumbnailName)
|
|
const videoName = video.filename
|
|
const videoExtension = path.extname(videoName)
|
|
|
|
const newTorrentName = video._id + '.torrent'
|
|
const newThumbnailName = video._id + thumbnailExtension
|
|
const newVideoName = video._id + videoExtension
|
|
|
|
const torrentsDir = constants.CONFIG.STORAGE.TORRENTS_DIR
|
|
const thumbnailsDir = constants.CONFIG.STORAGE.THUMBNAILS_DIR
|
|
const videosDir = constants.CONFIG.STORAGE.VIDEOS_DIR
|
|
|
|
logger.info('Renaming %s to %s.', torrentsDir + torrentName, torrentsDir + newTorrentName)
|
|
fs.renameSync(torrentsDir + torrentName, torrentsDir + newTorrentName)
|
|
|
|
logger.info('Renaming %s to %s.', thumbnailsDir + thumbnailName, thumbnailsDir + newThumbnailName)
|
|
fs.renameSync(thumbnailsDir + thumbnailName, thumbnailsDir + newThumbnailName)
|
|
|
|
logger.info('Renaming %s to %s.', videosDir + videoName, videosDir + newVideoName)
|
|
fs.renameSync(videosDir + videoName, videosDir + newVideoName)
|
|
|
|
Video.load(video._id, function (err, videoObj) {
|
|
if (err) return callbackEach(err)
|
|
|
|
videoObj.extname = videoExtension
|
|
videoObj.remoteId = null
|
|
videoObj.save(callbackEach)
|
|
})
|
|
}, callback)
|
|
})
|
|
}
|
|
|
|
exports.down = function (callback) {
|
|
throw new Error('Not implemented.')
|
|
}
|