您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Zählt die bereits geschauten/gelesenen Animes/Mangas und erlaubt es die Tabellen per Klick zusammenzuklappen bzw. sich mehr Details anzeigen zu lassen.
当前为
// ==UserScript== // @name Proxer Statistics // @namespace https://gf.qytechs.cn/de/users/83349-deimos // @version 1.2 // @description Zählt die bereits geschauten/gelesenen Animes/Mangas und erlaubt es die Tabellen per Klick zusammenzuklappen bzw. sich mehr Details anzeigen zu lassen. // @author Deimos // @run-at document-start // @include http://proxer.me/* // @include https://proxer.me/* // @include http://www.proxer.me/* // @include https://www.proxer.me/* // @require https://gf.qytechs.cn/scripts/12981-proxer-userscript-anker/code/Proxer-Userscript-Anker.js?version=108560 // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // @history 1.2 Script funktioniert auch im User-Control-Panel // @history 1.1 Einbinden des Userscript Anker von Blue.Reaper // @history 1.0 Zählen von Anime/Manga, anzeigen von Details, minimieren von Tabellen // ==/UserScript== var page = 0; var hv_values = "vvvvvvvv"; //v:= visible h:= hidden var dn_values = "nnnnnnnn"; //d:= details n:= no details //############################# Einbinden des Userscript Anker ############################# document.addEventListener('DOMContentLoaded', function(event) { var zusatz = document.createElement("div"); function changefunction(change) //Ist das Script aktiviert? { if(GM_getValue("proxStat",0) == 1 ) //aktiviert { if(window.location.pathname.split('/')[3] == "anime" || window.location.search === "?s=anime" ) ///User befindet sich auf Anime Verzeichnis { page = 1; tableListener(); } else if(window.location.pathname.split('/')[3] == "manga" || window.location.search === "?s=manga" ) ///User befindet sich auf Manga Verzeichnis { page = 2; tableListener(); } } } //addAnkerMember(id, modulname, modus, changefunction, memoryName, memoryDefault, zusatz); addAnkerMember("proxStat_Anker","Proxer Statistics",4,changefunction,"proxStat",1,zusatz); var obj_tabellen = createExtAnkerCheckBox("Tabellen" , "safe_tables", "12em"); var obj_details = createExtAnkerCheckBox("Details" , "safe_details", "12.6em"); var obj_anzahl = createExtAnkerCheckBox("Anzahl" , "safe_number", "12.8em"); var anleitung = createExtAnkerAnleitung("http://proxer.me/forum/anwendungen/380300-userscript-proxer-statistics"); zusatz.appendChild(obj_tabellen); zusatz.appendChild(obj_details); zusatz.appendChild(obj_anzahl); zusatz.appendChild(anleitung); }); //############################# Hauptteil ############################# //Ermitteln der Tabellenlänge und setzen der EventListener function tableListener() { var tables = document.getElementsByTagName("table"); for(i = 0; i<tables.length;i++) { var tr = tables[i].rows; var l = tr.length; var message= ": " + (l-2); if(GM_getValue("safe_number",0) == 1 ) //Anzahl wird angezeigt tr[0].getElementsByTagName("th")[0].innerHTML+= message; tr[0].addEventListener("click",action); tr[0].id ="tr"+(i+(page*4)-4); if(GM_getValue("safe_tables",0) == 1 ) //Tabellen werden minimiert { hv_values = checkCookie("hv_values",hv_values); if(hv_values[i+(page*4)-4]=="h") hide(tr); } if(GM_getValue("safe_details",0) == 1 ) //Details werden angezeigt { dn_values = checkCookie("dn_values",dn_values); if(dn_values[i+(page*4)-4]=="d") details(tr); } } } //Auswahl ob "hide" oder "details", setzen des neuen Cookies function action(e) { var tr = this.parentElement.parentElement.rows; var xPosition = e.clientX; var rect = tr[0].getBoundingClientRect(); var width = tr[0].offsetWidth; if(xPosition<width/2) { details(tr); setCookie("dn_values",dn_values,365); } else { hide(tr); setCookie("hv_values",hv_values,365); } } //Anzeigen der genaueren Details der ausgewählten Tabelle function details(tr) { var id = parseInt(tr[0].id[2]); var text = tr[0].getElementsByTagName("th")[0].innerHTML; if(text.includes("<br>")) //Details werden minimiert { text = text.slice(0,text.indexOf("<br>")); tr[0].getElementsByTagName("th")[0].innerHTML = text; dn_values = dn_values.substring(0,id) + "n" + dn_values.substring(id+1, dn_values.length); //erstellen eines neuen Cookies return true; } var l = tr.length; var movies = 0; var ovas = 0; var animes = 0; var mangas = 0; var doujinshis = 0; var one_shots = 0; var h_mangas = 0; for(e = 2; e<l; e++) { var type = tr[e].getElementsByTagName("td")[2].innerHTML; switch(type) { case "Movie": movies++; break; case "OVA": ovas++; break; case "Animeserie": animes++; break; case "Mangaserie": mangas++; break; case "H-Manga": h_mangas++; break; case "Doujinshi": doujinshis++; break; case "One-Shot": one_shots++; break; } } var message= ""; if(animes!==0) message+= "<br> Animeserien: "+animes; if(movies!==0) message+= "<br> Movies: "+movies; if(ovas!==0) message+= "<br> OVAs: "+ovas; if(mangas!==0) message+= "<br> Mangaserien: "+mangas; if(h_mangas!==0) message+= "<br> H-Mangas: "+h_mangas; if(doujinshis!==0) message+= "<br> Doujinshis:: "+doujinshis; if(one_shots!==0) message+= "<br> One-Shots: "+one_shots; tr[0].getElementsByTagName("th")[0].innerHTML+= message; dn_values = dn_values.substring(0,id) + "d" + dn_values.substring(id+1, dn_values.length); //erstellen eines neuen Cookies } //Einklappen der ausgewählten Tabelle function hide(tr) { var id = parseInt(tr[0].id[2]); var visibility; var char; if(tr[1].style.display == "none") { visibility = "table-row"; char = "v"; } else { visibility = "none"; char = "h"; } hv_values = hv_values.substring(0,id) + char + hv_values.substring(id+1, hv_values.length); //erstellen eines neuen Cookies for(e = 1; e < tr.length; e++) { tr[e].style.display =visibility; } } //############################# Cookies ############################# function checkCookie(cname,ctext) { var cookie = getCookie(cname); if (cookie === "") { cookie = ctext; setCookie(cname, cookie, 365); } return cookie; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(";"); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); } } return ""; } function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址