import { decode, encode } from 'bencode'
import createTorrent from 'create-torrent'
-import { createWriteStream, ensureDir, readFile, remove, writeFile } from 'fs-extra'
+import { createWriteStream, ensureDir, pathExists, readFile, remove, writeFile } from 'fs-extra'
import magnetUtil from 'magnet-uri'
import parseTorrent from 'parse-torrent'
import { dirname, join } from 'path'
const oldTorrentPath = join(CONFIG.STORAGE.TORRENTS_DIR, videoFile.torrentFilename)
+ if (!await pathExists(oldTorrentPath)) {
+ logger.info('Do not update torrent metadata %s of video %s because the file does not exist anymore.', video.uuid, oldTorrentPath)
+ return
+ }
+
const torrentContent = await readFile(oldTorrentPath)
const decoded = decode(torrentContent)
logger.info('Updating torrent metadata %s -> %s.', oldTorrentPath, newTorrentPath)
await writeFile(newTorrentPath, encode(decoded))
- await remove(join(CONFIG.STORAGE.TORRENTS_DIR, videoFile.torrentFilename))
+ await remove(oldTorrentPath)
videoFile.torrentFilename = newTorrentFilename
videoFile.infoHash = sha1(encode(decoded.info))
expect(file.magnetUri).to.have.lengthOf.above(2)
expect(file.torrentUrl).to.match(
- new RegExp(`http://${server.host}/lazy-static/torrents/${uuidRegex}-${file.resolution.id}-hls.torrent`)
+ new RegExp(`${server.url}/lazy-static/torrents/${uuidRegex}-${file.resolution.id}-hls.torrent`)
)
if (objectStorageBaseUrl) {