Greasy Fork is available in English.
download books from archive.org
// ==UserScript== // @name archiveOrgAssistant // @namespace http://tampermonkey.net/ // @version 0.23 // @description download books from archive.org // @author [email protected] // @match https://archive.org/details/* // @icon https://www.google.com/s2/favicons?sz=64&domain=archive.org // @run-at document-idle // @grant GM_registerMenuCommand // @license MIT // ==/UserScript== function getConfig(bookid){ let ele = document.createElement('a'); let cookies = document.cookie.split('; '); let regxp =new RegExp('^(logged-in-user|donation-identifier|logged-in-sig|PHPSESSID|loan-'+bookid+'|br-r###me-%40)','i'); let conf = [ "DON'T EDIT THIS FILE MANUALLY archive.org book downloader 0.22 by [email protected]", "get the downloader from https://github.com/mooring/archive.org.book.downloader", "then following the constructions", "============================================================================", ]; let proxy = ''; cookies.forEach(i=>{ if(regxp.test(i)){ if(i.indexOf('br-r###me-')!=-1){ i = 'br-r###me='+i.split('=')[0] } conf.push(i.replace(/(logged-in-|-identifier)/i,'').replace('-'+bookid,'')); } }); if(!/\/details\/\w+/i.test(location.pathname)){ alert("Working on book loan page only"); return; } let img = document.querySelector('.BRpagecontainer .BRpageimage'); if(!img){ alert("Please fresh page and try again"); return; } let url = new URL(img.src); let zipm = url.search.match(/=\/(\d+)\/items\//); if(url.search.indexOf('&server='+url.hostname) != -1){ alert("Please borrow the book first!"); return; } let title = document.title.split(/\s*:\s*/g).slice(0,-2).join(':').replace(/[\r\n]+/g,' '); let lproxy = localStorage.getItem('archiveAssistant_proxy'); proxy = prompt("Input proxy string like http://127.0.0.1:8899, if no proxy keep it empty", lproxy || ''); localStorage.setItem('archiveAssistant_proxy', proxy||''); conf.push('title='+title); conf.push('authority='+url.hostname); conf.push('path='+location.pathname); conf.push('bookid='+bookid); conf.push('zipnum='+(zipm?zipm[1]:'29')); conf.push('proxy='+(proxy?proxy.replace(/[\r\n\t\s]+/g,''): '')); conf.push("========================================================="); conf.push("version: 0.1"); conf.push("author : https://codernote.club"); ele.style.display = 'none'; ele.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(conf.join('\n'))); ele.setAttribute('download', 'config.conf'); document.body.appendChild(ele); ele.click(); document.body.removeChild(ele); } (function() { 'use strict'; let bookid = location.pathname.split('/details/')[1].split('/')[0]; GM_registerMenuCommand("get Configuration", function(evt, keybord){ let cookie = document.cookie; if(/logged-in-sig=[^;]+/.test(cookie) && /logged-in-user=[^;]+/.test(cookie)){ getConfig(bookid); } }); GM_registerMenuCommand("get Downloader", function(evt, keybord){ window.open('https://github.com/mooring/archive.org.book.downloader'); }); })();