From 5723239f1046c04d6d9c249888690fed988ff7bc Mon Sep 17 00:00:00 2001 From: hyperdefined Date: Thu, 11 Jul 2024 20:41:51 -0400 Subject: [PATCH] added video parsing --- src/modules/processing/services/newgrounds.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/modules/processing/services/newgrounds.js b/src/modules/processing/services/newgrounds.js index fbbc98c4..2d8b28b3 100644 --- a/src/modules/processing/services/newgrounds.js +++ b/src/modules/processing/services/newgrounds.js @@ -2,25 +2,32 @@ import { genericUserAgent } from "../../config.js"; import { cleanString } from "../../sub/utils.js"; export default async function(obj) { - let req; + console.log(obj.type) // handle video downloads if (obj.type == 'portal') { - req = await fetch(`https://www.newgrounds.com/${obj.type}/video/${obj.id}`, { + let req = await fetch(`https://www.newgrounds.com/${obj.type}/video/${obj.id}`, { headers: { 'User-Agent': genericUserAgent, 'X-Requested-With': 'XMLHttpRequest', - Accept: 'application/json, text/javascript, */*; q=0.01' } }) .then(request => request.text()) .catch(() => {}); if (!req) return { error: 'ErrorEmptyDownload' }; + + const json = JSON.parse(req); + const highestQuality = Object.keys(json.sources)[0]; + const video = json.sources[highestQuality][0].src + + return { + urls: video + } } // handle audio downloads if (obj.type == 'audio') { - req = await fetch(`https://www.newgrounds.com/audio/listen/${obj.id}`, { + let req = await fetch(`https://www.newgrounds.com/audio/listen/${obj.id}`, { headers: { 'User-Agent': genericUserAgent, } @@ -32,12 +39,11 @@ export default async function(obj) { const title = req.match(/"name"\s*:\s*"([^"]+)"/)?.[1]; const artist = req.match(/"artist"\s*:\s*"([^"]+)"/)?.[1]; + const url = req.match(/"filename"\s*:\s*"([^"]+)"/)?.[1]?.replace(/\\\//g, '/'); let fileMetadata = { title: cleanString(decodeURIComponent(title.trim())), artist: cleanString(decodeURIComponent(artist.trim())), } - - const url = req.match(/"filename"\s*:\s*"([^"]+)"/)?.[1]?.replace(/\\\//g, '/'); return { urls: url,