Jump to content

User:Technical 13/SandBox/getPageViews.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Technical 13 (talk | contribs) at 16:37, 19 January 2014 (Currently not pulling pageview information from stats.grok.uk Will debug more later...). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// TODO -- make a [[morebits.js]] version of this input sequence
var lang = /*prompt("Get results in what language?", */"en"/*)*/;
var pageNames = /*prompt("Page names to get results for?", /*"Augustus Pablo|Avian Java|Bentley Java|Chrysler Java|Coffee|Coffee County, Alabama|HMS Java|Java|Java, Alabama|Java, New York|Java, Ohio|Java, South Dakota|Java, São Tomé and Príncipe|Java, Virginia|Java-eiland|JavaScript|Java (Martin Mystère)|Java (band)|Java (board game)|Java (chicken)|Java (cigarette)|Java (composition)|Java (dance)|Java (programming language)|Java (software platform)|Java (town)|Java District|Java Joel|Java Man|Java Road|Java Sea|Java Trench|Java class cruiser|Java coffee|Java virtual machine|Javanese (disambiguation)|Javanese alphabet|List of The Tribe characters|Metamorpho|SS Java|USS Java (1815)"*/"foo"/*)*/;
if (pageNames.indexOf("|") === -1) {
	pageNames = new Array(pageNames);
} else {
	pageNames = pageNames.split("|");
}
var rangeToGet = new Array(30, 60, 90);
var visitRank = 0;
var pageHits = 0;
var hits30 = 0;
var hits60 = 0;
var hits90 = 0;
var fullResults = [];

function displayAnswer(){
	var table = "{| class=\"collapsible collapsed sortable\" width=\"95%\" border=\"1\"";
	table += "\n|-\n! Page Name !! width=\"15%\"| Hits in 30 days !! width=\"15%\"| Hits in 60 days !! width=\"15%\"| Hits in 90 days !! width=\"5%\"| Rank";
	for(var pageName in pageNames){
		table += "\n|- style=\"text-align: center;\"";
		table += "\n| style=\"text-align: left; font-weight: bold;\" | [[" + pageNames[pageName] + "]] ";
		table += "|| [http://stats.grok.uk/" + lang + "/latest30/" + encodeURIComponent(pageNames[pageName]) + " " + fullResults[pageName].hits30 + "] ";
		table += "|| [http://stats.grok.uk/" + lang + "/latest60/" + encodeURIComponent(pageNames[pageName]) + " " + fullResults[pageName].hits60 + "] ";
		table += "|| [http://stats.grok.uk/" + lang + "/latest90/" + encodeURIComponent(pageNames[pageName]) + " " + fullResults[pageName].hits90 + "] ";
		table += "|| " + fullResults[pageName].rank;
	}
	table += "\n|}";
	alert(table);
}

/* temp set to only pull hits30 for debugging */
var daysToGet = 0;
var rangeToGet = [];
rangeToGet[daysToGet] = 30;
/* temp set to only pull [[foo]] for debugging */
var pageName = 0;

//for(var pageName in pageNames){
//	for(var daysToGet in rangeToGet){
		console.info("Attempting to get data from: http://stats.grok.se/json/" + lang + "/latest" + rangeToGet[daysToGet] + "/" + encodeURIComponent(pageNames[pageName]));
		$.ajax({
			url: 'http://stats.grok.se/json/' + lang + '/latest' + rangeToGet[daysToGet] + '/' + encodeURIComponent(pageNames[pageName]),
			dataType: 'json',
			success: function(getStats){
				for(var date in getStats.daily_views){
					pageHits += getStats.daily_views[date];
				}
				console.log("Going to try to assign " + pageHits + " to hits" + rangeToGet[daysToGet]);
				switch(rangeToGet[daysToGet]){
					case 30:
						visitRank = getStats.rank;
						hits30 = pageHits;
						break;
					case 60:
						hits60 = pageHits;
						break;
					case 90:
						hits90 = pageHits;
						break;
					default:
						break;
				}
				pageHits = 0;
			},
			fail: function(errorMsg){
				alert("Failed to get results for: http://stats.grok.se/json/" + lang + "/latest" + rangeToGet[daysToGet] + "/" + encodeURIComponent(pageNames[pageName]) + "\nInstead received:" + errorMsg);
			}
		});
//	}
	console.warn("Setting fullResults[" + pageName + "] = {\"rank\": " + visitRank + ", \"hits30\":  " + hits30 + ", \"hits60\":  " + hits60 + ", \"hits90\":  " + hits90 + "};");
	fullResults[pageName] = {"rank": visitRank, "hits30": hits30, "hits60": hits60, "hits90": hits90};
	console.error("Results are %o", fullResults[pageName]);
	visitRank = 0;
	hits30 = 0;
	hits60 = 0;
	hits90 = 0;
	if(pageName === (pageNames.length -1)){
		displayAnswer();
	}
//}