-
-
Save malex984/24784c53681a745b4a4c9862cb0331e6 to your computer and use it in GitHub Desktop.
Download HumbleBundle book bundles easier. Puts 'curl' statements on the page for you to copy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 11/27/2017 - Tweaked for a page redesign. | |
* 1/6/2018 - Handle videos in book bundle. | |
*/ | |
var pattern = /(MOBI|EPUB|PDF( ?\(H.\))?|CBZ)$/i; | |
var pattern2 = /(Download)$/; | |
var nodes = document.getElementsByTagName('a'); | |
var downloadCmd = ''; | |
for (i in nodes) { | |
var a = nodes[i]; | |
if (a && a.text && pattern.test(a.text.trim())) { | |
var name = a.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute("data-human-name"); | |
name = name.replace(/\s+/g, '_'); /* change spaces to underscores */ | |
name = name.replace(/'/g, ''); /* don't want single quotes */ | |
name = name.replace(/:/g, '_-'); /* change : to _- for looks */ | |
name = name.replace(/,/g, ''); /* don't need commas */ | |
name = name.replace(/&/g, 'and'); /* taking out the pesky & */ | |
name = name.replace(/!/g, ''); /* taking out the pesky ! */ | |
if (a.text.trim() == 'PDF (HQ)') { | |
name += ".HQ.pdf"; | |
} else { | |
name += "." + a.text.trim().toLowerCase(); | |
} | |
downloadCmd += 'curl -o "' + name + '" "' + a.attributes['href'].value + "\"\n"; | |
} else if (a && a.text && pattern2.test(a.text.trim())) { | |
/* videos in book bundle */ | |
var name = a.attributes['href'].value | |
name = name.replace(/\.zip\?.*/, '.zip'); /* remove ?gamekey=... */ | |
name = name.replace(/.*\//g, ''); /* remove http ... / */ | |
downloadCmd += 'curl -o "' + name + '" "' + a.attributes['href'].value + "\"\n"; | |
} | |
} | |
downloadCmd += "\n"; | |
var output = document.createElement("pre"); | |
output.textContent = downloadCmd; | |
document.getElementById("papers-content").prepend(output); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment