X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fwebtorrent.ts;h=a3c93e6fe101c1abf4bd693ebd29505f2464b38a;hb=2a4c0d8bbe29178ae90e776bb9453f86e6d23bd9;hp=6d87c74f7ec8b9a31dc8a5fcce653d017634acbf;hpb=3545e72c686ff1725bbdfd8d16d693e2f4aa75a3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/webtorrent.ts b/server/helpers/webtorrent.ts index 6d87c74f7..a3c93e6fe 100644 --- a/server/helpers/webtorrent.ts +++ b/server/helpers/webtorrent.ts @@ -1,6 +1,6 @@ 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' @@ -134,6 +134,11 @@ async function updateTorrentMetadata (videoOrPlaylist: MVideo | MStreamingPlayli 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) @@ -151,7 +156,7 @@ async function updateTorrentMetadata (videoOrPlaylist: MVideo | MStreamingPlayli 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)) @@ -165,7 +170,7 @@ function generateMagnetUri ( const xs = videoFile.getTorrentUrl() const announce = trackerUrls - let urlList = video.requiresAuth(video.uuid) + let urlList = video.hasPrivateStaticPath() ? [] : [ videoFile.getFileUrl(video) ] @@ -243,7 +248,7 @@ function buildAnnounceList () { } function buildUrlList (video: MVideo, videoFile: MVideoFile) { - if (video.requiresAuth(video.uuid)) return [] + if (video.hasPrivateStaticPath()) return [] return [ videoFile.getFileUrl(video) ] }