// ==UserScript==
// @name 4chan Save
// @namespace http://github.com/hangjeff
// @version 2025-03-20_14h34m
// @description Save the 4chan thread
// @author hangjeff
// @match https://boards.4chan.org/*
// @exclude https://boards.4chan.org/search*
// @require https://code.jquery.com/jquery-3.7.1.slim.min.js
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
$('.thread').each(function(){
if($(this).find('.fileThumb').length){
let Komica_File_Url = 'https:' + $(this).find('.fileThumb').attr('href');
if($(this).find('.fileThumb').attr('href').includes('.webm') || $(this).find('.fileThumb').attr('href').includes('.mp4')){
$(this).find('.fileText').first().append(GhostArchive_Create(Komica_File_Url, 'Video'));
$(this).find('.fileText').first().append(WebArchive_Create(Komica_File_Url, 'Video'));
}
else{
// $(this).find('.fileText').first().append(WebArchive_Create(Komica_File_Url, 'Image'));
$(this).find('.fileText').first().append(ArchiveIs_Create(Komica_File_Url, 'Image'));
}
}
})
reply_Class_Read();
$(document).ready(function() {
$(document).on('click', '.-expand-thread', function() {
setTimeout(function(){
reply_Class_Read();
console.log('Done!');
}, 1000);
});
});
function reply_Class_Read(){
$('.reply').each(function(){
if($(this).find('.fileThumb').length){
if(!$(this).find('form').length){
let Komica_File_Url = 'https:' + $(this).find('.fileThumb').attr('href');
if($(this).find('.fileThumb').attr('href').includes('.webm') || $(this).find('.fileThumb').attr('href').includes('.mp4')){
$(this).find('.fileThumb').append(GhostArchive_Create(Komica_File_Url, 'Video'));
$(this).find('.fileThumb').append(WebArchive_Create(Komica_File_Url, 'Video'));
}
else{
// $(this).find('.fileText').append(WebArchive_Create(Komica_File_Url, 'Image'));
$(this).find('.fileText').append(ArchiveIs_Create(Komica_File_Url, 'Image'));
}
}
}
})
}
function WebArchive_Create(myUrl, myTarget){
let form = $('<form>', {
name: 'wwmform_save',
action: 'https://web.archive.org/save',
method: 'POST',
target: '_blank'
}).css('display', 'inline-block');
form.append(
$('<input>', {
id: 'url',
type: 'hidden',
name: 'url',
value: myUrl
})
);
form.append(
$('<input>', {
type: 'submit',
value: 'Save ' + myTarget + ' to Web archive',
})
);
return form;
}
function ArchiveIs_Create(myUrl, myTarget){
let form = $('<form>', {
id: 'submiturl',
action: 'https://archive.ph/submit/',
method: 'GET',
target: '_blank'
}).css('display', 'inline-block');
form.append(
$('<input>', {
id: 'url',
type: 'hidden',
name: 'url',
value: myUrl
})
);
form.append(
$('<input>', {
type: 'submit',
value: 'Save ' + myTarget + ' to archive.is',
tabindex: '1'
})
);
return form;
}
function GhostArchive_Create(myUrl, myTarget){
let form = $('<form>', {
id: 'submiturl',
action: 'https://ghostarchive.org/archive2',
method: 'POST',
target: '_blank'
}).css('display', 'inline-block');
form.append(
$('<input>', {
id: 'url',
type: 'hidden',
name: 'archive',
value: myUrl
})
);
form.append(
$('<input>', {
type: 'submit',
value: 'Save ' + myTarget + ' to ghostarchive.org',
tabindex: '1'
})
);
return form;
}
})();