Slideshare Downloader

Slideshare Slide Downloader (images)

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Slideshare Downloader
// @namespace    Slideshare Slide Downloader
// @version      0.4
// @description  Slideshare Slide Downloader (images)
// @author       Hosamn Based on DownloadBoxy By QQBoxy
// @match        https://www.slideshare.net/*
// @grant        none
// ==/UserScript==

function getHighestResImg(element) {
  if (element.getAttribute("srcset")) {
    return element
      .getAttribute("srcset")
      .split(",")
      .reduce(
        (acc, item) => {
          let [url, width] = item.trim().split(" ");
          width = parseInt(width);
          if (width > acc.width) return { width, url };
          return acc;
        },
        { width: 0, url: "" }
      ).url;
  }

  return element.getAttribute("src");
}


function slideshareboxy() {
    var e = document.getElementById('slide-container').getElementsByTagName('source');
    var o = "";
    var a ;
    for(var key=0; key<e.length; key+=1) {
        if(e[key].attributes.srcset) {
            var url = getHighestResImg(e[key])
            a = document.createElement("a");
            a.target = url;
            a.href = url;
            a.download = key;
            a.click();
            // let picBlob = new Blob(url, {type: 'text/html'});
            // tar??.gz
            // https://stackoverflow.com/questions/49736214/force-a-download-to-download-image-instead-of-opening-url-link-to-image
        }
    }
}

function downloadboxy() {
    var btn = document.createElement("button");
    btn.onclick = function() {
        slideshareboxy();
    };

    btn.innerHTML = ">> Download Images <<";
    btn.style.textDecoration = "underline"
    document.getElementsByClassName('player-toolbar-item')[0].appendChild(btn);
}



function waitForElementToDisplay(selector, callback, checkFrequencyInMs, timeoutInMs) {
  var startTimeInMs = Date.now();
  (function loopSearch() {
    if (document.querySelector(selector) != null) {
      callback();
      return;
    }
    else {
      setTimeout(function () {
        if (timeoutInMs && Date.now() - startTimeInMs > timeoutInMs) {
          return;
        loopSearch();
        }
      }, checkFrequencyInMs);
    }
  })();
}


waitForElementToDisplay("#player-toolbar", downloadboxy, 100,10000);