// ==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/ // @downloadURL none // ==/UserScript== (function () { 'use strict'; const body = $('body') body.append($("")) body.append($("")) body.append($("")) 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(); }