lurldownloader

download file in lurl

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name              lurldownloader
// @version           0.0.1
// @author            Zoosewu
// @description       download file in lurl
// @match             https://lurl.cc/*
// @license           MIT
// @name:zh-TW        lurl下載器
// @namespace         https://github.com/zoosewu/
// @description:zh-tw 下載lurl的檔案
// @run-at            document-idle
// @homepageURL       https://github.com/zoosewu/
// ==/UserScript==

(function () {
  'use strict';
  const body = $('body')
  body.append($("<button id='z-download-button' type='button'>download</button>"))
  body.append($("<label id='z-download-label' for='url'>url: </label>"))
  body.append($("<input id='z-download-input' type='text' id='url' name='url' required size='140'>"))
  const button = $("#z-download-button")
  const input = $("#z-download-input")
  button.on("click", function () {
    download(input[0].value)
  });
})();
const download = (link) => {
  console.log('link: ', link);
  console.log('start downloading file,please wait a minute...');
  const xhr = new XMLHttpRequest();
  xhr.open('GET', link, true);
  xhr.responseType = 'blob';
  xhr.onload = function () {
    console.log('file downloaded.');
    const urlCreator = window.URL || window.webkitURL;
    const imageUrl = urlCreator.createObjectURL(this.response);
    const tag = document.createElement('a');
    tag.href = imageUrl;
    tag.target = '_blank';
    const regex = /[^\/\\&\?]+\.\w{3,4}(?=([\?&].*$|$))/;
    const result = regex.exec(link);
    let name = 'download.jpg';
    if (result && result.length > 0) name = result[0]
    tag.download = name;
    document.body.appendChild(tag);
    tag.click();
    document.body.removeChild(tag);
  };
  xhr.onerror = err => { console.log('failed to download file'); };
  xhr.send();
}