您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A userscript that adds an Expand All Images button to Barchive and Archived.moe
// ==UserScript== // @name ArchiveFap // @namespace Horniness // @version 1.0.2 // @description A userscript that adds an Expand All Images button to Barchive and Archived.moe // @author Glint // @match https://thebarchive.com/b/thread/* // @match https://archived.moe/*/thread/* // @require http://code.jquery.com/jquery-3.4.1.min.js // @grant none // ==/UserScript== (function() { 'use strict'; //Compatibility for existing instances of jQuery on site. var j = $.noConflict(); j(".post_image").on("click", function(e) { settingClickHandler(e, this); }); document.querySelector(".post_data").innerHTML += '<a style="color:#9999FF;" id="archivefap_expand_all" href="#">Expand all images!</a>'; j("#archivefap_expand_all").on("click", function(e) { j(".post_image").each(function(i, obj){ settingClickHandler(e, obj); }); }); function settingClickHandler(e, node) { //e.preventDefault(); if (node === document.getElementsByClassName("post_image")[0]) { node.src = node.parentNode.href; node.attributes.removeNamedItem("height"); node.attributes.removeNamedItem("width"); } else { if (node.src.split("/")[5] === "thumb") { let fileRow = node.parentNode.parentNode.parentNode.querySelector(".post_file"); let widthHeightArr = fileRow.children[2].innerText.split(", ")[1].trim().split("x"); if (fileRow.children[1].href.slice(-4) === "webm") { let newVideoNode = document.createElement("video"); newVideoNode.src = fileRow.children[1].href; newVideoNode.controls = true; newVideoNode.autoplay = true; newVideoNode.loop = true; newVideoNode.width = widthHeightArr[0]; node.parentNode.insertBefore(newVideoNode, node); node.style.display = "none"; let newSpan = document.createElement("span"); newSpan.style.paddingLeft = "5px"; newSpan.style.color = "#81a2be"; newSpan.innerText = "[close webm]"; fileRow.appendChild(newSpan); let sizeSpan = document.createElement("span"); let increaseSize = document.createElement("span"); increaseSize.classList.add("videoIncreaseSize"); let decreaseSize = document.createElement("span"); decreaseSize.classList.add("videoDecreaseSize"); let increaseSizeMore = document.createElement("span"); increaseSizeMore.classList.add("videoIncreaseSizeMore"); increaseSizeMore.innerHTML = `(<span style="font-size: 17px; position: relative; top: 2px">++</span>)`; let decreaseSizeMore = document.createElement("span"); decreaseSizeMore.classList.add("videoDecreaseSizeMore"); decreaseSizeMore.innerHTML = `(<span style="font-size: 24px; position: relative; top: 3.5px">--</span>)`; decreaseSizeMore.style.paddingRight = "4px"; sizeSpan.classList.add("sizeSpan"); increaseSize.innerText = "(++)"; increaseSize.style.padding = "0px 4px"; decreaseSize.innerText = "(--)"; decreaseSize.style.padding = "0px 4px"; sizeSpan.style.paddingLeft = "5px"; sizeSpan.style.color = "#81a2be"; let resetSpan = document.createElement("span"); resetSpan.innerText = "Reset"; resetSpan.classList.add("resetMediaSize"); resetSpan.style.paddingLeft = "4px"; resetSpan.style.position = "relative"; resetSpan.style.top = "1px"; sizeSpan.innerHTML = `[Size - ${decreaseSize.outerHTML} ${decreaseSizeMore.outerHTML} | ${increaseSize.outerHTML} ${increaseSizeMore.outerHTML} | ${resetSpan.outerHTML} ]`; fileRow.appendChild(sizeSpan); newVideoNode.addEventListener("click", function(e) { if (e.target.paused) e.target.play(); else e.target.pause(); }, false); newSpan.addEventListener("click", function(e) { newVideoNode.remove(); node.style.display = ""; newSpan.remove(); sizeSpan.remove(); }); fileRow.querySelector(".resetMediaSize").addEventListener("click", function(e) { newVideoNode.width = widthHeightArr[0]; }); fileRow.querySelector(".videoIncreaseSize").addEventListener("click", function(e) { let numWidth = Number(newVideoNode.width); newVideoNode.width = `${(numWidth + 10)}`; }); fileRow.querySelector(".videoDecreaseSize").addEventListener("click", function(e) { let numWidth = Number(newVideoNode.width); newVideoNode.width = numWidth > 10 ? `${(numWidth - 10)}` : "0"; }); fileRow.querySelector(".videoIncreaseSizeMore").addEventListener("click", function(e) { let numWidth = Number(newVideoNode.width); newVideoNode.width = `${(numWidth + 100)}`; }); fileRow.querySelector(".videoDecreaseSizeMore").addEventListener("click", function(e) { let numWidth = Number(newVideoNode.width); newVideoNode.width = numWidth > 100 ? `${(numWidth - 100)}` : "0"; }); return; } let fileExt = fileRow.children[1].href.split(".")[2]; node.dataset.originalSrc = node.src; node.src = node.parentNode.href; node.style.width = widthHeightArr[0] + "px"; node.style.height = widthHeightArr[1] + "px"; let sizeSpan = document.createElement("span"); sizeSpan.classList.add("mediaChangeSize"); let increaseSize = document.createElement("span"); increaseSize.classList.add("mediaIncreaseSize"); increaseSize.style.padding = "0px 4px"; let decreaseSize = document.createElement("span"); decreaseSize.classList.add("mediaDecreaseSize"); let increaseSizeMore = document.createElement("span"); increaseSizeMore.classList.add("mediaIncreaseSizeMore"); increaseSizeMore.innerHTML = `(<span style="font-size: 17px; position: relative; top: 2px">++</span>)`; let decreaseSizeMore = document.createElement("span"); decreaseSizeMore.classList.add("mediaDecreaseSizeMore"); decreaseSizeMore.innerHTML = `(<span style="font-size: 24px; position: relative; top: 3.5px">--</span>)`; decreaseSizeMore.style.padding = "0px 4px"; decreaseSize.style.paddingLeft = "4px"; increaseSize.innerText = "(++)"; decreaseSize.innerText = "(--)"; let resetSpan = document.createElement("span"); resetSpan.innerText = "Reset"; resetSpan.classList.add("resetMediaSize"); resetSpan.style.paddingLeft = "4px"; resetSpan.style.position = "relative"; resetSpan.style.top = "1px"; sizeSpan.innerHTML = `[Size - ${decreaseSize.outerHTML} ${decreaseSizeMore.outerHTML} | ${increaseSize.outerHTML} ${increaseSizeMore.outerHTML} | ${resetSpan.outerHTML} ]`; sizeSpan.style.paddingLeft = "5px"; sizeSpan.style.color = "#81a2be"; fileRow.appendChild(sizeSpan); fileRow.querySelector(".resetMediaSize").addEventListener("click", function(e) { node.style.width = widthHeightArr[0] + "px"; node.style.height = widthHeightArr[1] + "px"; }); fileRow.querySelector(".mediaIncreaseSize").addEventListener("click", function(e) { let numWidth = Number(node.style.width.match(/(\d+)px/)[1]); let numHeight = Number(node.style.height.match(/(\d+)px/)[1]); node.style.width = `${numWidth + 10}px`; node.style.height = `${numHeight + 10}px`; }); fileRow.querySelector(".mediaDecreaseSize").addEventListener("click", function(e) { let numWidth = Number(node.style.width.match(/(\d+)px/)[1]); node.style.width = numWidth > 10 ? `${numWidth - 10}px` : "0px"; let numHeight = Number(node.style.height.match(/(\d+)px/)[1]); node.style.height = numHeight > 10 ? `${numHeight - 10}px` : "0px"; }); fileRow.querySelector(".mediaIncreaseSizeMore").addEventListener("click", function(e) { let numWidth = Number(node.style.width.match(/(\d+)px/)[1]); let numHeight = Number(node.style.height.match(/(\d+)px/)[1]); node.style.width = `${numWidth + 100}px`; node.style.height = `${numHeight + 100}px`; }); fileRow.querySelector(".mediaDecreaseSizeMore").addEventListener("click", function(e) { let numWidth = Number(node.style.width.match(/(\d+)px/)[1]); node.style.width = numWidth > 100 ? `${numWidth - 100}px` : "0px"; let numHeight = Number(node.style.height.match(/(\d+)px/)[1]); node.style.height = numHeight > 100 ? `${numHeight - 100}px` : "0px"; }); } else { node.src = node.dataset.originalSrc; node.style.width = ""; node.style.height = ""; node.parentNode.parentNode.parentNode.querySelector(".mediaChangeSize").remove(); } } } document.onkeydown = checkKey; //Handles behaviour when keys are pressed function checkKey(e){ e = e || window.event; // -- FILE SET NAVIGATION -- //If you press left or A, go to the previous file //nice if(e.keyCode == '69'){ j(".post_image").each(function(i, obj){ settingClickHandler(e, obj); } ); } } })();