Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Bulbapedia Table Organizer
- // @namespace tag://bulbapedia
- // @description Choose whether you want to hide Platinum-only moves, D/P-only moves, or HG/SS-only moves in each pokemon's learnset. Also, collapses several large tables by default to improve readability.
- // @include http://bulbapedia.bulbagarden.net/wiki/*
- // @author Matthew Ammann
- // @version 1.0.1
- // @date 03/07/10
- // ==/UserScript==
- majorSections = document.getElementsByTagName("h3");
- tables = document.getElementsByTagName("table");
- var hideDP = GM_getValue("toggleDP", false);
- var hideHG = GM_getValue("toggleHG", false);
- var hidePlat = GM_getValue("togglePlat", false);
- if(GM_getValue("toggleHG") == true) {
- GM_registerMenuCommand( "Show HG/SS-only moves", toggleHG);
- }
- else{
- GM_registerMenuCommand( "Hide HG/SS-only moves", toggleHG);
- }
- if(GM_getValue("togglePlat") == true){
- GM_registerMenuCommand( "Show Platinum-only moves", togglePlat);
- }
- else{
- GM_registerMenuCommand( "Hide Platinum-only moves", togglePlat);
- }
- if(GM_getValue("toggleDP") == true){
- GM_registerMenuCommand( "Show Diamond/Pearl-only moves", toggleDP);
- }
- else{
- GM_registerMenuCommand( "Hide Diamond/Pearl-only moves", toggleDP);
- }
- GM_registerMenuCommand( "Show all Generation IV moves", showAll);
- //alert("togglePlat = " + GM_getValue("togglePlat") + "\n toggleHG = " + GM_getValue("toggleHG") + "\n toggleDP = " + GM_getValue("toggleDP") )
- for(var i = 0; i < tables.length; i++)
- {
- /*Gotta find a way to parse that UTF character
- if(tables[i].innerHTML.indexOf(">Pok�dex</span></a> entries") != -1)
- {
- tables[i].setAttribute("class", "expandable");
- }
- else if(tables[i].previousElementSibling)
- {
- if(tables[i].previousElementSibling.innerHTML.indexOf("In side games") != -1)
- tables[i].setAttribute("class", "expandable");
- else if(tables[i].previousElementSibling.innerHTML.indexOf('By <a href="/wiki/TM" title="TM">TM') != -1)
- tables[i].setAttribute("class", "expandable");
- else if(tables[i].previousElementSibling.innerHTML.indexOf("Side game data") != -1)
- tables[i].setAttribute("class", "expandable");
- }*/
- //Need a better way to identify moveset tables!
- //If this script breaks, it's likely because the style in the below conditional is different
- if(tables[i].getAttribute("style").indexOf("border: 3px solid") != -1)
- {
- var rows = tables[i].getElementsByTagName("tr");
- //This conditional checks if there are any version-exclusive tags in selected table before continuing
- if(hideHG && tables[i].innerHTML.indexOf(">HG<") != -1 ||
- hideDP && tables[i].innerHTML.indexOf(">D<") != -1 ||
- hidePlat && tables[i].innerHTML.indexOf(">Pt") != -1)
- {
- //for(var j = rows.length - 1; j > 0; j--)
- var j = rows.length;
- while(j--)
- {
- //alert("hideDP = " + hideDP + "diamondCheck index: " + tables[i].innerHTML.indexOf(">D<"));
- //alert(tables[i].rows[j].innerHTML)
- if(rows[j].getElementsByTagName("td")[0] && rows[j].getElementsByTagName("td")[0].getElementsByTagName("a"))
- var linkArray = rows[j].getElementsByTagName("td")[0].getElementsByTagName("a");
- var soulSilverTag = false;
- var platTag = false;
- var pearlTag = false;
- for(var k = 0; k < linkArray.length; k++)
- {
- var title = linkArray[k].getAttribute("title");
- if(title.indexOf("SoulSilver Versions") != -1)
- soulSilverTag = true;
- if(title.indexOf("Platinum Version") != -1)
- platTag = true;
- if(title.indexOf("Pearl Versions") != -1)
- pearlTag = true;
- }
- if(hideDP && pearlTag)
- {
- if(rows[j].getElementsByTagName("td")[1])
- {
- alert(rows[j].getElementsByTagName("td")[1].getElementsByTagName("a")[0].getElementsByTagName("span")[0].innerHTML +
- '\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
- //alert('\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
- }
- if(!platTag && !soulSilverTag)
- {
- //alert("j: "+j+" i: "+i);
- tables[i].deleteRow(j);
- //tables[i].rows.splice(j,1);
- }
- else if(!hidePlat && platTag)
- {
- alert("Plat present - don't hide\n"+tables[i].rows[j].innerHTML);
- }
- else if(!hideHG && soulSilverTag)
- {
- alert("HG/SS present - don't hide");
- }
- else if(pearlTag)
- tables[i].deleteRow(j);
- }
- if(hidePlat && tables[i].innerHTML.indexOf(">Pt") != -1)
- {
- if(rows[j].innerHTML.indexOf("Pearl Versions") == -1 && rows[j].innerHTML.indexOf("SoulSilver Versions") == -1 &&
- rows[j].innerHTML.indexOf(">D<") != -1)
- {
- tables[i].deleteRow(j);
- }
- else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
- {
- //alert("Diamond present - don't hide");
- }
- else if(!hideHG && rows[j].innerHTML.indexOf("SoulSilver Versions") != -1)
- {
- //alert("HG present - don't hide");
- }
- else if(rows[j].innerHTML.indexOf(">D<") != -1)
- tables[i].deleteRow(j);
- }
- if(hideHG && tables[i].innerHTML.indexOf(">HG<") != -1)
- {
- if(rows[j].innerHTML.indexOf("Platinum Version") == -1 && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") == -1 &&
- rows[j].innerHTML.indexOf(">HG<") != -1)
- {
- tables[i].deleteRow(j);
- }
- else if(!hidePlat && rows[j].innerHTML.indexOf("Platinum Version") != -1)
- {
- //alert("Plat present - don't hide");
- }
- else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
- {
- //alert("Diamond present - don't hide");
- }
- else if(rows[j].innerHTML.indexOf(">HG<") != -1)
- tables[i].deleteRow(j);
- }
- }//end for loop (rows)
- }
- }
- }//end for loop (tables)
- function togglePlat()
- {
- if(GM_getValue("togglePlat") == false)
- GM_setValue("togglePlat", true);
- else
- GM_setValue("togglePlat", false);
- }
- function toggleDP()
- {
- if(GM_getValue("toggleDP") == false)
- GM_setValue("toggleDP", true);
- else
- GM_setValue("toggleDP", false);
- }
- function toggleHG()
- {
- if(GM_getValue("toggleHG") == false)
- GM_setValue("toggleHG", true);
- else
- GM_setValue("toggleHG", false);
- }
- function showAll()
- {
- GM_setValue("togglePlat", false);
- GM_setValue("toggleDP", false);
- GM_setValue("toggleHG", false);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement