// @name Endchan Disable Image Spoilers // @author Dobroanon // @run-at document-start // // modified code from https://endchan.gg/.static/delPost.js // copyleft by /dobrochan/, 2022 for endchan with love // function unspoilPosts() { var input=document.getElementById('DisableSpoilers'); if(input.checked) { var uploads = document.getElementsByClassName('uploadCell') jQuery('.uploadCell').each(function(index, imageContainer) { var imagePath = jQuery(imageContainer).find('.nameLink').attr('href'); if(typeof imagePath == "undefined") return; var imagePathWithoutExt = imagePath.substr(0, imagePath.lastIndexOf('.')); var imageFileName = imagePathWithoutExt.substring(imagePathWithoutExt.lastIndexOf("/") + 1); var imagePathDir = imagePathWithoutExt.substring(0, imagePathWithoutExt.lastIndexOf("/") + 1); jQuery(imageContainer).find('img[src*=spoiler]') .data('spoiler', jQuery(imageContainer).find('img[src*=spoiler]').attr('src')) .attr('src', imagePathDir + 't_' + imageFileName) if(imagePath.includes('-video')) { jQuery(imageContainer).find('img[src*=spoiler]') .data('spoiler', jQuery(imageContainer).find('img[src*=spoiler]').attr('src')) .attr('src', imagePathDir + 't_' + imageFileName) } }) } else { jQuery('.uploadCell').each(function(index, imageContainer) { if(jQuery(imageContainer).find('img').data('spoiler')) { jQuery(imageContainer).find('img').attr('src', jQuery(imageContainer).find('img').data('spoiler')); } }) } var days=365*10; // remember this setting for 10 years setSetting('myDisableSpoilers', input.checked?'true':'false', days); } document.addEventListener("DOMContentLoaded", function(event) { var c = document.querySelector('select[name=switchcolorcontrol]'); var label = document.createElement('label'); label.style.display = 'inline'; label.id = 'DisableSpoilersLbl'; // Add new post listener only if we're browsing a thread var threadsElem = document.getElementById('divThreads') if (threadsElem.children && threadsElem.children.length == 1) { jQuery(".divPosts").on('DOMNodeInserted', function(e) { if(jQuery(e.target).hasClass('postCell')) unspoilPosts(); }) } //if(jQuery('#divThreads').children().length == 1) { //if(true) { // listen everywhere, this'll make it work together with 'expand images' function /* const elem = document.querySelector('.divPosts') elem.on('DOMNodeInserted', function(e) { console.log('new post') }) */ var input=document.createElement('input'); input.type='checkbox'; input.id='DisableSpoilers'; input.onclick=unspoilPosts; input.checked=getSetting('myDisableSpoilers')==='true'; label.appendChild(input); label.appendChild(document.createTextNode('Unhide image spoilers')); c.parentNode.appendChild(label); unspoilPosts(); });