Advertisement
Guest User

Untitled

a guest
Mar 17th, 2011
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name           Bulbapedia Table Organizer
  3. // @namespace      tag://bulbapedia
  4. // @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.
  5. // @include        http://bulbapedia.bulbagarden.net/wiki/*
  6. // @author         Matthew Ammann
  7. // @version        1.0.1
  8. // @date           03/07/10
  9. // ==/UserScript==
  10.  
  11.  
  12. majorSections = document.getElementsByTagName("h3");
  13. tables = document.getElementsByTagName("table");
  14.  
  15. var hideDP = GM_getValue("toggleDP", false);
  16. var hideHG = GM_getValue("toggleHG", false);
  17. var hidePlat = GM_getValue("togglePlat", false);
  18.  
  19. if(GM_getValue("toggleHG") == true) {
  20.     GM_registerMenuCommand( "Show HG/SS-only moves", toggleHG);
  21. }
  22. else{
  23.     GM_registerMenuCommand( "Hide HG/SS-only moves", toggleHG);
  24. }
  25. if(GM_getValue("togglePlat") == true){
  26.     GM_registerMenuCommand( "Show Platinum-only moves", togglePlat);
  27. }
  28. else{
  29.     GM_registerMenuCommand( "Hide Platinum-only moves", togglePlat);
  30. }
  31. if(GM_getValue("toggleDP") == true){
  32.     GM_registerMenuCommand( "Show Diamond/Pearl-only moves", toggleDP);
  33. }
  34. else{
  35.     GM_registerMenuCommand( "Hide Diamond/Pearl-only moves", toggleDP);
  36. }
  37.  
  38. GM_registerMenuCommand( "Show all Generation IV moves", showAll);
  39.  
  40. //alert("togglePlat = " + GM_getValue("togglePlat") + "\n toggleHG = " + GM_getValue("toggleHG") + "\n toggleDP = " + GM_getValue("toggleDP") )
  41.            
  42.  
  43. for(var i = 0; i < tables.length; i++)
  44. {
  45.     /*Gotta find a way to parse that UTF character
  46.     if(tables[i].innerHTML.indexOf(">Pok�dex</span></a> entries") != -1)
  47.     {
  48.         tables[i].setAttribute("class", "expandable");
  49.     }
  50.     else if(tables[i].previousElementSibling)
  51.     {
  52.         if(tables[i].previousElementSibling.innerHTML.indexOf("In side games") != -1)
  53.             tables[i].setAttribute("class", "expandable");
  54.        
  55.         else if(tables[i].previousElementSibling.innerHTML.indexOf('By <a href="/wiki/TM" title="TM">TM') != -1)
  56.             tables[i].setAttribute("class", "expandable");
  57.            
  58.         else if(tables[i].previousElementSibling.innerHTML.indexOf("Side game data") != -1)
  59.             tables[i].setAttribute("class", "expandable");
  60.     }*/
  61.    
  62.    
  63.     //Need a better way to identify moveset tables!
  64.     //If this script breaks, it's likely because the style in the below conditional is different
  65.  
  66.     if(tables[i].getAttribute("style").indexOf("border: 3px solid") != -1)
  67.     {
  68.  
  69.         var rows = tables[i].getElementsByTagName("tr");
  70.  
  71.         //This conditional checks if there are any version-exclusive tags in selected table before continuing
  72.        
  73.         if(hideHG && tables[i].innerHTML.indexOf(">HG<") != -1 ||
  74.             hideDP && tables[i].innerHTML.indexOf(">D<") != -1 ||
  75.             hidePlat && tables[i].innerHTML.indexOf(">Pt") != -1)
  76.         {  
  77.  
  78.             //for(var j = rows.length - 1; j > 0; j--)
  79.             var j = rows.length;
  80.             while(j--)
  81.             {
  82.                 //alert("hideDP = " + hideDP + "diamondCheck index: " + tables[i].innerHTML.indexOf(">D<"));           
  83.                 //alert(tables[i].rows[j].innerHTML)
  84.                
  85.                 if(rows[j].getElementsByTagName("td")[0] && rows[j].getElementsByTagName("td")[0].getElementsByTagName("a"))
  86.                     var linkArray = rows[j].getElementsByTagName("td")[0].getElementsByTagName("a");
  87.                
  88.                 var soulSilverTag = false;
  89.                 var platTag = false;
  90.                 var pearlTag = false;
  91.                
  92.                 for(var k = 0; k < linkArray.length; k++)
  93.                 {
  94.                     var title = linkArray[k].getAttribute("title");
  95.                
  96.                     if(title.indexOf("SoulSilver Versions") != -1)
  97.                         soulSilverTag = true;
  98.                     if(title.indexOf("Platinum Version") != -1)
  99.                         platTag = true;
  100.                     if(title.indexOf("Pearl Versions") != -1)
  101.                         pearlTag = true;
  102.                 }
  103.                        
  104.                 if(hideDP && pearlTag)
  105.                 {  
  106.                     if(rows[j].getElementsByTagName("td")[1])
  107.                     {
  108.                         alert(rows[j].getElementsByTagName("td")[1].getElementsByTagName("a")[0].getElementsByTagName("span")[0].innerHTML +
  109.                         '\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
  110.                         //alert('\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
  111.                     }
  112.                    
  113.                     if(!platTag && !soulSilverTag)
  114.                     {
  115.                         //alert("j: "+j+" i: "+i);
  116.                        
  117.                         tables[i].deleteRow(j);
  118.                         //tables[i].rows.splice(j,1);
  119.                     }
  120.                     else if(!hidePlat && platTag)
  121.                     {
  122.                         alert("Plat present - don't hide\n"+tables[i].rows[j].innerHTML);
  123.                     }
  124.                     else if(!hideHG && soulSilverTag)
  125.                     {
  126.                         alert("HG/SS present - don't hide");
  127.                     }
  128.                     else if(pearlTag)
  129.                         tables[i].deleteRow(j);
  130.                 }
  131.                
  132.                 if(hidePlat && tables[i].innerHTML.indexOf(">Pt") != -1)
  133.                 {
  134.                     if(rows[j].innerHTML.indexOf("Pearl Versions") == -1 && rows[j].innerHTML.indexOf("SoulSilver Versions") == -1 &&
  135.                        rows[j].innerHTML.indexOf(">D<") != -1)
  136.                     {
  137.                         tables[i].deleteRow(j);
  138.                     }
  139.                     else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
  140.                     {
  141.                         //alert("Diamond present - don't hide");
  142.                     }
  143.                     else if(!hideHG && rows[j].innerHTML.indexOf("SoulSilver Versions") != -1)
  144.                     {
  145.                         //alert("HG present - don't hide");
  146.                     }
  147.                     else if(rows[j].innerHTML.indexOf(">D<") != -1)
  148.                         tables[i].deleteRow(j);
  149.                 }
  150.                
  151.                 if(hideHG && tables[i].innerHTML.indexOf(">HG<") != -1)
  152.                 {  
  153.                     if(rows[j].innerHTML.indexOf("Platinum Version") == -1 && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") == -1 &&
  154.                        rows[j].innerHTML.indexOf(">HG<") != -1)
  155.                        {
  156.                         tables[i].deleteRow(j);
  157.                        }
  158.                     else if(!hidePlat && rows[j].innerHTML.indexOf("Platinum Version") != -1)
  159.                     {
  160.                         //alert("Plat present - don't hide");
  161.                     }
  162.                     else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
  163.                     {
  164.                         //alert("Diamond present - don't hide");
  165.                     }
  166.                     else if(rows[j].innerHTML.indexOf(">HG<") != -1)
  167.                         tables[i].deleteRow(j);
  168.                 }
  169.  
  170.             }//end for loop (rows)
  171.         }
  172.     }
  173. }//end for loop (tables)
  174.  
  175. function togglePlat()
  176. {
  177.     if(GM_getValue("togglePlat") == false)
  178.         GM_setValue("togglePlat", true);
  179.     else
  180.         GM_setValue("togglePlat", false);
  181. }
  182.  
  183. function toggleDP()
  184. {
  185.     if(GM_getValue("toggleDP") == false)
  186.         GM_setValue("toggleDP", true);
  187.     else
  188.         GM_setValue("toggleDP", false);
  189. }
  190.  
  191. function toggleHG()
  192. {
  193.     if(GM_getValue("toggleHG") == false)
  194.         GM_setValue("toggleHG", true);
  195.     else
  196.         GM_setValue("toggleHG", false);
  197. }
  198.  
  199. function showAll()
  200. {
  201.     GM_setValue("togglePlat", false);
  202.     GM_setValue("toggleDP", false);
  203.     GM_setValue("toggleHG", false);
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement