diff --git a/addon/moch/putio.js b/addon/moch/putio.js index 7591eba..c3484c4 100644 --- a/addon/moch/putio.js +++ b/addon/moch/putio.js @@ -151,14 +151,10 @@ async function _unrestrictLink(Putio, torrent, encodedFileName, fileIndex) { } async function _unrestrictVideo(Putio, videoId) { - const publicToken = await _getPublicToken(Putio, videoId); - const publicFile = await Putio.File.Public(publicToken).then(response => response.data.parent); - - if (!publicFile?.stream_url?.length) { - return Promise.reject(`No Putio links found for [${videoId}]`); - } - console.log(`Unrestricted Putio [${videoId}] to ${publicFile.stream_url}`); - return publicFile.stream_url; + const response = await Putio.File.GetStorageURL(videoId); + const downloadUrl = response.data.url + console.log(`Unrestricted Putio [${videoId}] to ${downloadUrl}`); + return downloadUrl; } async function _getTargetFile(Putio, torrent, encodedFileName, fileIndex) { @@ -174,7 +170,7 @@ async function _getTargetFile(Putio, torrent, encodedFileName, fileIndex) { // when it's not defined find all videos and take the largest one targetFile = Number.isInteger(fileIndex) ? videos.find(video => sameFilename(targetFileName, video.name)) - : !folders.length && videos.toSorted((a, b) => b.size - a.size)[0]; + : !folders.length && videos.sort((a, b) => b.size - a.size)[0]; files = !targetFile ? await Promise.all(folders.map(folder => _getFiles(Putio, folder.id))) .then(results => results.reduce((a, b) => a.concat(b), [])) @@ -191,19 +187,6 @@ async function _getFiles(Putio, fileId) { : [response.data.parent]; } -async function _getPublicToken(Putio, targetVideoId) { - const publicLinks = await Putio.Files.PublicShares().then(response => response.data.links); - const alreadySharedLink = publicLinks.find(link => link.user_file.id === targetVideoId); - if (alreadySharedLink) { - return alreadySharedLink.token; - } - if (publicLinks.length >= 10) { - // maximum public shares reached, revoke last one; - await Putio.File.RevokePublicLink(publicLinks[0].id); - } - return Putio.File.CreatePublicLink(targetVideoId).then(response => response.data.token); -} - function createPutioAPI(apiKey) { const clientId = apiKey.replace(/@.*/, ''); const token = apiKey.replace(/.*@/, ''); diff --git a/addon/package-lock.json b/addon/package-lock.json index 7b5fe2c..b19be54 100644 --- a/addon/package-lock.json +++ b/addon/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.14", "license": "MIT", "dependencies": { - "@putdotio/api-client": "^8.39.0", + "@putdotio/api-client": "^8.42.0", "all-debrid-api": "^1.1.0", "axios": "^1.6.1", "bottleneck": "^2.19.5", @@ -37,9 +37,9 @@ } }, "node_modules/@putdotio/api-client": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.39.0.tgz", - "integrity": "sha512-xQJ+tuKmTo/gy+WFat86Avhqy8mlIZF2ZpbzBQc8173LTvRcrf9E7B8dKqz/P0pjLn+kM/IkiKwmudV9Q8NXdw==", + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.42.0.tgz", + "integrity": "sha512-LaFaPMOO8WbvwzUlvuzBcBH9aSpqZIkA6MuoKJPNZ293kFSMZPyXkE/VddVXPNq0f5sp7HzdueCMIPOxcom9hg==", "dependencies": { "axios": "^0.21.1", "event-emitter": "^0.3.5", diff --git a/addon/package.json b/addon/package.json index 164e389..16c707f 100644 --- a/addon/package.json +++ b/addon/package.json @@ -9,7 +9,7 @@ "author": "TheBeastLT ", "license": "MIT", "dependencies": { - "@putdotio/api-client": "^8.39.0", + "@putdotio/api-client": "^8.42.0", "all-debrid-api": "^1.1.0", "axios": "^1.6.1", "bottleneck": "^2.19.5",