您需要先安装一个扩展,例如 篡改猴、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 *
- // @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=/";
- }