您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
remove broken thumb-code within your custom-boxes on deviantart.
- // ==UserScript==
- // @name dev_broken_thumbs
- // @namespace dev_broken_thumbs
- // @version 1.01
- // @description remove broken thumb-code within your custom-boxes on deviantart.
- // @include http://*.deviantart.com/
- // @include http://*.deviantart.com/journal/*
- // @author Dediggefedde
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_deleteValue
- // ==/UserScript==
- (function(){
- var thumblist=new Array();
- var corr_list=new Array();
- var dellist=new Array();
- var storlist=new Array();
- var eingabenaktiv;
- var aktivbox;
- var uberset;
- var journal=false;
- var temp_thumblist=GM_getValue("thumblist");
- var temp_corrlist=GM_getValue("corrlist");
- function start(){
- if(document.getElementById("journal-entry-form")!=null){
- if(temp_thumblist!=null)temp_thumblist=JSON.parse(temp_thumblist);
- if(temp_corrlist!=null)temp_corrlist=JSON.parse(temp_corrlist);
- if(temp_thumblist.length==0)return;
- thumblist=temp_thumblist;
- corr_list=temp_corrlist;
- GM_deleteValue("thumblist");
- GM_deleteValue("corrlist");
- journal=true;
- showbox();
- }else if(location.href.indexOf("/journal/")!=-1){ //remove thumbs in journal: addition to script
- journal=true;
- var editbut=document.getElementsByClassName("edit-button");
- if(editbut.length==0)return;
- editbut[0].setAttribute("onclick","return false");
- editbut[0].addEventListener("click",analyse);
- }else{
- var customcont = document.getElementsByClassName("gr-box");
- var customedit;
- for(var i=0;i<customcont.length;i++){
- customedit=customcont[i].parentNode.getElementsByClassName("gmbutton2chaos")[0];
- if(typeof customedit =="undefined"||customedit.getAttribute("dev_broken_thumbs"))continue;
- customedit.setAttribute("dev_broken_thumbs","true");
- customedit.addEventListener("click",analyse);
- }
- }
- }
- function analyse(){
- var rex=/(:thumb\d+:)|(class="instorage)|(a class="thumb)/g;
- corr_list=new Array();
- if(!journal){
- aktivbox=this.parentNode.parentNode.parentNode;
- if(aktivbox.getElementsByClassName("grf-mirror").length>0)
- thumblist=aktivbox.getElementsByClassName("grf-mirror")[0].innerHTML.match(rex);
- else if(document.getElementById("aboutme-info") != null)
- thumblist=document.getElementById("aboutme-info").innerHTML.match(rex);
- else
- return;
- }else{
- // if(document.getElementsByClassName("journaltext").length==0){setTimeout(analyse,1000);return;}
- thumblist=document.getElementsByClassName("journaltext")[0].innerHTML.match(rex);
- }
- if(!thumblist)return;
- for(var i=0;i<thumblist.length;i++){
- switch(thumblist[i]){
- case "class=\"instorage":corr_list.push(new Array(i,0));break;
- case "a class=\"thumb":break;
- default: corr_list.push(new Array(i,1));break;
- }
- }
- if(!journal){
- detektbutton();
- eingabenaktiv=setInterval(detektbutton,1000);
- }else{
- // showbox();
- //page change when journal-edit is clicked. solution: temporary store thumblist and corr_list and use showbox on load when there is stored data
- GM_setValue("thumblist",JSON.stringify(thumblist));
- GM_setValue("corrlist",JSON.stringify(corr_list));
- location.href=this.getAttribute("href");
- }
- }
- function detektbutton(){
- if(document.getElementsByClassName("blockmenu").length==0){clearInterval(eingabenaktiv);return;}
- document.getElementsByClassName("blockmenu")[0].getElementsByClassName("edit_link")[0].addEventListener("click",showbox);
- }
- function showbox(){
- if(corr_list.length==0)return;
- if(!journal){
- if(typeof aktivbox.getElementsByTagName("textarea")[0]=="undefined"){setTimeout(showbox,1000);return;}
- uberset=aktivbox.getElementsByTagName("textarea")[0].innerHTML.match(/(:thumb\d+:)|(class="instorage)/g);
- }else{
- if(document.getElementById("journal-entry-form")==null||document.getElementById("journal-entry-form").getElementsByClassName("writer").length==0){setTimeout(showbox,1000);return;}
- uberset=document.getElementById("journal-entry-form").getElementsByClassName("writer")[0].innerHTML.match(/(:thumb\d+:)|(class="instorage)/g);
- }
- dellist=new Array();
- storlist=new Array();
- for(var i=0;i<corr_list.length;i++){
- if(corr_list[i][1]==0)storlist.push(uberset[corr_list[i][0]]);
- else dellist.push(uberset[corr_list[i][0]]);;
- }
- var nbox=document.createElement("div");
- nbox.id="dev_broken_thumb_alert";
- nbox.setAttribute("class","loading modal modal-rounded");
- nbox.setAttribute("style","display:block;z-index:999999;top: 60%; left: 60%; width: 400px; height: 400px; margin-left: -339px; margin-top: -298px; position: fixed; box-shadow: rgba(0, 0, 0, 0.496094) 0px 1px 4px, rgb(255, 255, 255) 0px 1px 1px inset; ");
- nbox.innerHTML="<a href='' onclick='document.body.removeChild(document.getElementById(\"dev_broken_thumb_alert\"));return false;' class='x'></a>"+
- "<div class='fakedeepee-box'>"+
- "<div class='deepee-title'><strong>Corrupted thumbnails detected!</strong></div>"+
- "<span style='font-weight:bold;'><input type='checkbox' checked='checked' name='rem_del_thumb' id='rem_del_thumb'/><label for='rem_del_thumb'>Remove "+dellist.length+" deleted thumbs</label><br/>"+
- "<ul style='height: 100px;overflow-y:scroll;'><li>"+dellist.join("</li><li>")+"</li></ul><br/>"+
- "<span style='font-weight:bold;'><input type='checkbox' checked='checked' name='rem_stor_thumb' id='rem_stor_thumb'/><label for='rem_stor_thumb'>Remove "+storlist.length+" thumbs in storage</label><br/>"+
- "<ul style='height: 100px;overflow-y:scroll;'><li>"+storlist.join("</li><li>")+"</li></ul><br/>"+
- "<div style='margin:0px auto;text-align:center;'>"+
- "<a href='' onclick='return false;' class='gmbutton2 gmbutton2s' style='margin-right:10px;width:100px;display:inline-block' id='dev_broken_thumb_execute'>Remove<b></b></a>"+
- "<a href='' onclick='document.body.removeChild(document.getElementById(\"dev_broken_thumb_alert\"));return false;' class='gmbutton2 gmbutton2c' style='width:100px;display:inline-block' id='dev_broken_thumb_execute'>Cancel<b></b></a>"+
- "</div>"+
- "</div>";
- document.body.appendChild(nbox);
- document.getElementById("dev_broken_thumb_execute").addEventListener("click",remover);
- }
- function remover(){
- var remstor=(document.getElementById("rem_stor_thumb").checked);
- var remdel=(document.getElementById("rem_del_thumb").checked);
- var tex;
- if(!journal)tex=aktivbox.getElementsByTagName("textarea")[0].innerHTML;
- else tex=document.getElementById("journal-entry-form").getElementsByClassName("writer")[0].innerHTML;
- for(var i=corr_list.length-1; i>=0;i--){
- if((corr_list[i][1]==0&&remstor)||(corr_list[i][1]==1&&remdel)){tex=tex.replace(uberset[corr_list[i][0]],"");}
- }
- if(!journal)aktivbox.getElementsByTagName("textarea")[0].innerHTML=tex;
- else document.getElementById("journal-entry-form").getElementsByClassName("writer")[0].innerHTML=tex;
- document.body.removeChild(document.getElementById("dev_broken_thumb_alert"));
- }
- window.onload=start;
- // setInterval(start,1000);
- })();