您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
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 * // @version 1.0 // @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 // @include http://proxer.me/* // @include https://proxer.me/* // @include http://www.proxer.me/* // @include https://www.proxer.me/* // @grant none // ==/UserScript== var page = 0; var cookie = "vvvvvvvv"; //v:= visible h:= hidden createObserver(); tableListener(); //Observer um auf AJAX zu reagieren function createObserver() { var target = $("#main").get(0); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { console.log(mutation.type); tableListener(); }); }); var config = { attributes: true, childList: true, characterData: true }; observer.observe(target, config); } //Ermitteeln der Tabellenlänge und setzen der EventListener function tableListener() { var tables = $("table"); page = getPage(tables[0].rows[0].getElementsByTagName("th")[0].innerHTML); if(page == 1 || page == 2) { cookie=checkCookie(); for(i = 0; i<tables.length;i++) { var tr = tables[i].rows; var l = tr.length; var message= ": " + (l-2); tr[0].getElementsByTagName("th")[0].innerHTML+= message; tr[0].addEventListener("click",action); tr[0].id ="tr"+(i+(page*4)-4); if(cookie[i+(page*4)-4]=="h") hide(tr); } } } //Auswahl ob "hide" oder "details" 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); else { hide(tr); setCookie("proxStat",cookie,365); } } //Anzeigen der genaueren Details der ausgewählten Tabelle function details(tr) { var text = tr[0].getElementsByTagName("th")[0].innerHTML; if(text.includes("<br>")) { text = text.slice(0,text.indexOf("<br>")); tr[0].getElementsByTagName("th")[0].innerHTML = text; 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(i = 2; i<l; i++) { var type = tr[i].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; } //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"; } cookie = cookie.substring(0,id) + char + cookie.substring(id+1, cookie.length); for(e = 1; e < tr.length; e++) { tr[e].style.display =visibility; } } //Befindet sich der User auf seinem Manga oder Anime Verzeichnis? function getPage(innerHTML) { switch(innerHTML) { case "Gelesen": //Mangas return 1; case "Geschaut": //Animes return 2; default: //Anderes return 0; } } //Cookie, welcher speichert ob eine Tabelle versteckt ist, oder nicht function checkCookie() { var cookie = getCookie("proxStat"); if (cookie == "") { cookie = "vvvvvvvv"; setCookie("proxStat", 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=/"; }