User:Whiteknight/pagetester.js

var pt = {} pt.formspan = "WKTestFormSpan"; pt.textspan = "WKTestSpan"; pt.bookName = ""; pt.bookNameE = ""; pt._form = null; pt.getForm = function { return pt._form; } pt.getBookName = function { pt.bookName = pt.booknameB.value; pt.bookNameE = pt.bookName.replace(/ /g, "_"); return pt.bookName; } pt.createForm = function { var div = wk.spanText(pt.formspan, ""); if(div == null) return; pt.booknameB = wk.makeInput("WKTestBookNameB", "") pt._form = wk.makeElement("form", {name:"WKTestForm", method:"GET"}, [   "Page Name:",    pt.booknameB,    wk.makeButton("WKTestSubmitB", "Get",   pt.prepTest),    wk.makeButton("WKTestClearB",  "Clear", function{wk.spanText(pt.textspan)})  ]); div.appendChild(pt._form); } $(pt.createForm); pt.prepTest = function { if(pt.getBookName == "") return; wk.spanText(pt.textspan, "Loading Page..."); wk.loadWikiText(pt.bookName, pt._prepTest2); } pt._prepTest2 = function(text) { var len = text.length; if(len == 0) { wk.spanText(pt.textspan, "Page " + wk.wikiLinkText(pt.bookname) + " does not exist"); return; } if(len >= 9 && text.substring(0, 9).toLowerCase == "#redirect") {   var dest = text.substring(10); dest = dest.replace("", "");   dest = dest.replace("", ""); res.innerHTML = "Page redirects to " + wk.wikiLinkText(dest) + ""; return; } var words = text.match(/\S+/g).length;

var links; var links_len = 0; if(text.match(/\[\^\+\]\]/)) { links = text.match(/\[\[([^\]]+)\]\]/g); for(i = 0; i < links.length; i++) { links[i] = links[i].replace(/\|[^\]]+\]\]/, ""); }   links_len = links.length; }

var cats; var cats_len = 0; if(text.match(/\[\[category:[^\]]+\]\]/i)) { cats = text.match(/\[\[category\:([^\]]+)\]\]/ig); cats_len = cats.length; } var tempsa; var temps = []; var temps_len = 0; if(text.match(/\{\{[^\}]+\}\}/)) { tempsa = text.match(/\{\{([^\}]+)\}\}/g); tempsa.sort; for(i = 0; i < tempsa.length; i++) { tempsa[i] = tempsa[i].replace(//, ""); tempsa[i] = tempsa[i].replace(/\|[^\}]+$/, ""); if(tempsa[i].match(/^\/.+\/$/)) { tempsa[i] = tempsa[i].replace(/^\/(.+)\/$/, ":" + pt.bookName + "/$1"); }     if(tempsa[i].substr(0, 10) == "Wikibooks:") tempsa[i] = ":" + tempsa[i]; if(tempsa[i].substr(0, 5) == "User:") tempsa[i] = ":" + tempsa[i]; }   j = 1; temps[0] = tempsa[0]; for(i = 1; i < tempsa.length; i++) {

if(tempsa[i] == tempsa[i - 1]) { continue; } else { temps[j++] = tempsa[i]; }   }    temps_len = temps.length; }

wk.spanText(pt.textspan, "Page " +   wk.wikiLinkText(pt.bookName) +    " exists, and contains: " +     "Characters: " + len +     "Words: " + words +    "Links: " + links_len +     "Categories: " + cats_len +     "Templates: " + temps_len +    " Templates: "); for(i = 0; i < temps.length; i++) { if(temps[i].substr(0,1) == ':') { temps[i] = temps[i].substr(1); wk.appendSpanText(pt.textspan, "" + wk.wikiLinkText(temps[i]) + " "); } else { wk.appendSpanText(pt.textspan, " "); } }  wk.appendSpanText(pt.textspan, "Categories: "); for(i = 0; i < cats_len; i++) { cats[i] = cats[i].replace("", "");   cats[i] = cats[i].replace("", ""); wk.appendSpanText(pt.textspan, "" + wk.wikiLinkText(cats[i]) + " "); } wk.appendSpanText(pt.textspan, "Links: "); for(i = 0; i < links_len; i++) { links[i] = links[i].replace("", "");   links[i] = links[i].replace("", ""); wk.appendSpanText(pt.textspan, "" + wk.wikiLinkText(links[i]) + " "); } }