Download all the photos a user attached on their post. It will auto download all the photos and place it into a rar for you.
This script was originally made from a admin on thothub (rip). It was rebuilt to work on a similar forum to ours (S-E), so I'm sharing it here since it's fully compatible with this forum.
You need the Tampermonkey addon/extension. Create a new script and copy/paste the code.
This script was originally made from a admin on thothub (rip). It was rebuilt to work on a similar forum to ours (S-E), so I'm sharing it here since it's fully compatible with this forum.
You need the Tampermonkey addon/extension. Create a new script and copy/paste the code.
Code:
// ==UserScript==
// @name Forum Gallery Downloader
// @namespace ThotDev
// @description Download galleries from posts on forum.thothub.tv
// @version 1.1.1
// @icon https://i.imgur.com/5xpgAny.jpg
// @license WTFPL; http://www.wtfpl.net/txt/copying/
// @match https://forum.sexy-egirls.com/*
// @match https://nudostar.com/*
// @require https://code.jquery.com/jquery-3.3.1.min.js
// @require https://unpkg.com/[email protected]/dist/jszip.min.js
// @require https://unpkg.com/[email protected]/dist/FileSaver.min.js
// @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js?v=a834d46
// @noframes
// @connect self
// @run-at document-start
// @grant GM.xmlHttpRequest
// @grant GM_xmlhttpRequest
// ==/UserScript==
/* globals jQuery JSZip saveAs */
jQuery(function ($) {
$('.message-attribution-opposite')
.map(function () { return $(this).children('li:first'); })
.each(function () {
var downloadLink = $('<li><a href="#">⭳ Download</a><li>');
var $text = downloadLink.children('a');
downloadLink.insertBefore($(this));
downloadLink.click(function (e) {
e.preventDefault();
var $this = $(this);
var urls = $(this)
.parents('.message-main')
.first()
.find('a.js-lbImage,.lbContainer-zoomer')
.map(function () { return $(this).is('[href]') ? $(this).attr('href') : $(this).data('src'); })
.get();
var zip = new JSZip(),
current = 0,
total = urls.length;
$text.text('Downloading...');
function next () {
if (current < total) {
$text.text('Downloading ' + (current+1) + '/' + total);
GM.xmlHttpRequest({
method: 'GET',
url: urls[current++],
responseType: 'arraybuffer',
onload: function (response) {
try {
debugger;
var name = response.responseHeaders.match(/^content-disposition.+(?:filename=)(.+)$/mi)[1].replace(/\"/g, '');
var data = response.response;
zip.file(name, data);
}
catch (err) {
}
next();
},
onerror: function (response) {
next();
}
});
}
else {
var title = $('h1.p-title-value').text().trim();
var postNumber = $this.closest('ul.message-attribution-opposite').find('li:last-child > a').text();
$text.text('Generating zip...');
zip.generateAsync({ type: 'blob' })
.then(function (blob) {
$text.text('Download complete!');
saveAs(blob, postNumber + ' ' + title + '.zip');
});
}
}
next();
});
}
);
});