From d6241d8013bdc5a85f50608902047dc1f9cbe04f Mon Sep 17 00:00:00 2001 From: anon Date: Sun, 10 Mar 2024 15:57:35 +0100 Subject: [PATCH] Added fddl.js --- fddl.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 fddl.js diff --git a/fddl.js b/fddl.js new file mode 100644 index 0000000..95bf815 --- /dev/null +++ b/fddl.js @@ -0,0 +1,68 @@ +document.body.appendChild( + Object.assign(document.createElement('div'), + {style: 'position:fixed;bottom:0;left:0;', + innerHTML: +` +
+ myDownloader +
+ +
+
+ +
+
+ +
+
+` +})); +function collectLinkOwners(myDownloader, sharedClass) { + let r = []; + for (i of document.getElementsByClassName(sharedClass)) { + try { + var linkOwner = i.getElementsByTagName("a")[0]; + } catch (err) { + console.error("Missing 'a' subelement. However, this might be normal."); + } + r.push(linkOwner); + } + return r; +} +function download(myDownloader, imageClass, linkOwners) { + var linkOwner = linkOwners.shift(); + linkOwner.click(); + requestAnimationFrame(async (myDownloader, imageClass, linkOwners) => { + await new Promise(resolve => setTimeout(resolve, 5000)); + try { // image + myDownloader.href = document.getElementsByClassName(imageClass)[0].src; + } catch (err) { // video + let flag = false; + for (i of document.getElementsByTagName('video')){ + if(i.offsetParent != null) { + myDownloader.href = i.src; + flag = true; + break; + } + } + if (!flag) { + console.error("Missing media."); + } + } + //myDownloader.click(); + console.log(myDownloader.href); + download(myDownloader, imageClass, linkOwners); + }, myDownloader, imageClass, linkOwners); +} +function execute() { + const myDownloader = document.getElementById("myDownloader"); + const sharedClass = document.getElementById("sharedClass").value; + const imageClass = document.getElementById("imageClass").value; + + if (sharedClass == "" || imageClass == "") { + throw "Empty fields!"; + } + + download(myDownloader, imageClass, collectLinkOwners(myDownloader, sharedClass)); +} +document.getElementById("caller").addEventListener("click", execute);