Advertisement
Guest User

Untitled

a guest
Mar 18th, 2011
146
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.             var j = rows.length;
  79.             while(j--)
  80.             {
  81.            
  82.                 if(rows[j].getElementsByTagName("td")[0] && rows[j].getElementsByTagName("td")[0].getElementsByTagName("a"))
  83.                     var linkArray = rows[j].getElementsByTagName("td")[0].getElementsByTagName("a");
  84.                
  85.                 var soulSilverTag = false;
  86.                 var platTag = false;
  87.                 var pearlTag = false;
  88.                
  89.                 for(var k = 0; k < linkArray.length; k++)
  90.                 {
  91.                     var title = linkArray[k].getAttribute("title");
  92.                
  93.                     if(title.indexOf("SoulSilver Versions") != -1)
  94.                         soulSilverTag = true;
  95.                     if(title.indexOf("Platinum Version") != -1)
  96.                         platTag = true;
  97.                     if(title.indexOf("Pearl Versions") != -1)
  98.                         pearlTag = true;
  99.                 }
  100.                        
  101.                 if(hideDP && pearlTag)
  102.                 {  
  103.                     if(rows[j].getElementsByTagName("td")[1])
  104.                     {
  105.                         alert(rows[j].getElementsByTagName("td")[1].getElementsByTagName("a")[0].getElementsByTagName("span")[0].innerHTML +
  106.                         '\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
  107.                         //alert('\nplatcheck index:'+rows[j].innerHTML.indexOf("Platinum Version")+'\nSS index:'+rows[j].innerHTML.indexOf("SoulSilver Versions")+'\ndiamondpearl index:'+rows[j].innerHTML.indexOf(">D<"))
  108.                     }
  109.                    
  110.                     if(!platTag && !soulSilverTag)
  111.                     {
  112.                         alert("j: "+j+" i: "+i);
  113.                        
  114.                         tables[i].deleteRow(j);
  115.                         continue;
  116.                     }
  117.                     else if(!hidePlat && platTag)
  118.                     {
  119.                         alert("Plat present - don't hide\n"+tables[i].rows[j].innerHTML);
  120.                     }
  121.                     else if(!hideHG && soulSilverTag)
  122.                     {
  123.                         alert("HG/SS present - don't hide");
  124.                     }
  125.                     else if(pearlTag)
  126.                     {
  127.                         tables[i].deleteRow(j);
  128.                         continue;
  129.                     }
  130.                    
  131.                 }
  132.                
  133.                 if(hidePlat && platTag)
  134.                 {
  135.                     if(rows[j].innerHTML.indexOf("Pearl Versions") == -1 && rows[j].innerHTML.indexOf("SoulSilver Versions") == -1 &&
  136.                        rows[j].innerHTML.indexOf(">D<") != -1)
  137.                     {
  138.                         tables[i].deleteRow(j);
  139.                         continue;
  140.                     }
  141.                     else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
  142.                     {
  143.                         //alert("Diamond present - don't hide");
  144.                     }
  145.                     else if(!hideHG && rows[j].innerHTML.indexOf("SoulSilver Versions") != -1)
  146.                     {
  147.                         //alert("HG present - don't hide");
  148.                     }
  149.                     else if(rows[j].innerHTML.indexOf(">D<") != -1)
  150.                     {
  151.                         tables[i].deleteRow(j);
  152.                         continue;
  153.                     }
  154.                 }
  155.                
  156.                 if(hideHG && tables[i].innerHTML.indexOf(">HG<") != -1)
  157.                 {  
  158.                     if(rows[j].innerHTML.indexOf("Platinum Version") == -1 && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") == -1 &&
  159.                        rows[j].innerHTML.indexOf(">HG<") != -1)
  160.                        {
  161.                             tables[i].deleteRow(j);
  162.                             continue;
  163.                        }
  164.                     else if(!hidePlat && rows[j].innerHTML.indexOf("Platinum Version") != -1)
  165.                     {
  166.                         //alert("Plat present - don't hide");
  167.                     }
  168.                     else if(!hideDP && rows[j].innerHTML.indexOf("Diamond and Pearl Versions") != -1)
  169.                     {
  170.                         //alert("Diamond present - don't hide");
  171.                     }
  172.                     else if(rows[j].innerHTML.indexOf(">HG<") != -1)
  173.                     {
  174.                         tables[i].deleteRow(j);
  175.                         continue;
  176.                     }
  177.                 }
  178.  
  179.             }//end for loop (rows)
  180.         }
  181.     }
  182. }//end for loop (tables)
  183.  
  184. function togglePlat()
  185. {
  186.     if(GM_getValue("togglePlat") == false)
  187.         GM_setValue("togglePlat", true);
  188.     else
  189.         GM_setValue("togglePlat", false);
  190. }
  191.  
  192. function toggleDP()
  193. {
  194.     if(GM_getValue("toggleDP") == false)
  195.         GM_setValue("toggleDP", true);
  196.     else
  197.         GM_setValue("toggleDP", false);
  198. }
  199.  
  200. function toggleHG()
  201. {
  202.     if(GM_getValue("toggleHG") == false)
  203.         GM_setValue("toggleHG", true);
  204.     else
  205.         GM_setValue("toggleHG", false);
  206. }
  207.  
  208. function showAll()
  209. {
  210.     GM_setValue("togglePlat", false);
  211.     GM_setValue("toggleDP", false);
  212.     GM_setValue("toggleHG", false);
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement