X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fwebtorrent.ts;h=a3c93e6fe101c1abf4bd693ebd29505f2464b38a;hb=2a4c0d8bbe29178ae90e776bb9453f86e6d23bd9;hp=88bdb16b630c7688d8d62440b1d9c9be0ba1ea8a;hpb=c729caf6cc34630877a0e5a1bda1719384cd0c8a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/webtorrent.ts b/server/helpers/webtorrent.ts index 88bdb16b6..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)) @@ -164,7 +169,10 @@ function generateMagnetUri ( ) { const xs = videoFile.getTorrentUrl() const announce = trackerUrls - let urlList = [ videoFile.getFileUrl(video) ] + + let urlList = video.hasPrivateStaticPath() + ? [] + : [ videoFile.getFileUrl(video) ] const redundancies = videoFile.RedundancyVideos if (isArray(redundancies)) urlList = urlList.concat(redundancies.map(r => r.fileUrl)) @@ -240,6 +248,8 @@ function buildAnnounceList () { } function buildUrlList (video: MVideo, videoFile: MVideoFile) { + if (video.hasPrivateStaticPath()) return [] + return [ videoFile.getFileUrl(video) ] }