From 2924869a43a06f1ddf7bb4ba4d852627d6d570a8 Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Fri, 15 Dec 2023 19:48:49 +0200 Subject: [PATCH] fix offcloud catalog meta access for single file torrents --- addon/moch/offcloud.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/addon/moch/offcloud.js b/addon/moch/offcloud.js index 8393ca1..8010f65 100644 --- a/addon/moch/offcloud.js +++ b/addon/moch/offcloud.js @@ -59,7 +59,7 @@ export async function getItemMeta(itemId, apiKey, ip) { const torrents = await OC.cloud.history(); const torrent = torrents.find(torrent => torrent.requestId === itemId) const createDate = torrent ? new Date(torrent.createdOn) : new Date(); - return OC.cloud.explore(itemId) + return _getFileUrls(OC, torrent) .then(files => ({ id: `${KEY}:${itemId}`, type: Type.OTHER, @@ -121,13 +121,7 @@ async function _createTorrent(OC, infoHash) { } async function _unrestrictLink(OC, infoHash, torrent, cachedEntryInfo, fileIndex) { - const files = await OC.cloud.explore(torrent.requestId) - .catch(error => { - if (error === 'Bad archive') { - return [`https://${torrent.server}.offcloud.com/cloud/download/${torrent.requestId}/${torrent.fileName}`]; - } - throw error; - }) + const files = await _getFileUrls(OC, torrent) const targetFile = Number.isInteger(fileIndex) ? files.find(file => file.includes(`/${torrent.requestId}/${fileIndex}/`)) : files.find(file => isVideo(file)); @@ -139,6 +133,16 @@ async function _unrestrictLink(OC, infoHash, torrent, cachedEntryInfo, fileIndex return targetFile; } +async function _getFileUrls(OC, torrent) { + return OC.cloud.explore(torrent.requestId) + .catch(error => { + if (error === 'Bad archive') { + return [`https://${torrent.server}.offcloud.com/cloud/download/${torrent.requestId}/${torrent.fileName}`]; + } + throw error; + }) +} + async function getDefaultOptions(ip) { return { ip, timeout: 5000 }; }