Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function loadScript(url, async = true, type = "text/javascript") {
- return new Promise((resolve, reject) => {
- try {
- const scriptEle = document.createElement("script");
- scriptEle.type = type;
- scriptEle.async = async;
- scriptEle.src = url;
- scriptEle.addEventListener("load", (ev) => {
- resolve({ status: true });
- });
- scriptEle.addEventListener("error", (ev) => {
- reject({
- status: false,
- message: `Failed to load the script ${url}`,
- });
- });
- document.body.appendChild(scriptEle);
- } catch (error) {
- reject(error);
- }
- });
- }
- function getPics() {
- return new Promise((resolve, reject) => {
- try {
- let pics = new Set();
- let rightButton = $("button.rsArrowRight");
- let intervalId;
- function check() {
- let isLoading = $(".rsPreloader").length !== 0;
- if (!isLoading) {
- $("img.rsImg").each((i, elem) => pics.add(elem.src));
- if (rightButton.hasClass("rsArrowDisabled")) {
- clearInterval(intervalId);
- resolve(pics);
- } else {
- rightButton.click();
- }
- }
- }
- check();
- intervalId = setInterval(check, 50);
- } catch (error) {
- reject(error);
- }
- });
- }
- const scripts = Promise.all(
- [
- "https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.min.js",
- "https://cdnjs.cloudflare.com/ajax/libs/jszip-utils/0.0.2/jszip-utils.min.js",
- "https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js",
- ].map((x) => loadScript(x, false))
- ).then((values) => console.log("Scripts loaded"));
- let pics = await getPics();
- console.log("pics loaded")
- await scripts;
- function urlToPromise(url) {
- return new Promise(function(resolve, reject) {
- JSZipUtils.getBinaryContent(url, function (err, data) {
- if(err) {
- reject(err);
- } else {
- resolve(data);
- }
- });
- });
- }
- let zip = new JSZip();
- pics.forEach((url, i)=> {
- let filename = url.replace(/.*\/(\w*)\/(\w*)\/original.*/, "$1-$2.webp")
- zip.file(filename, urlToPromise(url), { binary: true });
- });
- zip.generateAsync({ type: "blob" }).then((content) => saveAs(content, "RoverPictures.zip"));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement