Minecraft Wiki
m (i give up :( this one is probably broken too)
mNo edit summary
 
(41 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
/***********************************************************************************/
 
/***********************************************************************************/
/* Edit counter script (original) */
+
/* */
/* author: User:Najzere @ strategywiki.org */
+
/* MEDIAWIKI EDITCOUNTER */
  +
/* */
 
/* license: CC-BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/ */
  +
/* */
  +
/* Original credit: */
  +
/* author: Najzere @ strategywiki.org */
 
/* source: http://strategywiki.org/wiki/User:Najzere/edit_counter.js */
 
/* source: http://strategywiki.org/wiki/User:Najzere/edit_counter.js */
 
/* documentation: http://strategywiki.org/wiki/User_talk:Najzere/edit_counter.js */
 
/* documentation: http://strategywiki.org/wiki/User_talk:Najzere/edit_counter.js */
 
/* contact: http://strategywiki.org/wiki/User_talk:Najzere */
 
/* contact: http://strategywiki.org/wiki/User_talk:Najzere */
  +
/* Minecraft Wiki credit: */
/* license: CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) */
 
/* Modified version for this wiki */
+
/* author: Matt (Majr) @ minecraft.gamepedia.com */
/* author: ultradude25 */
+
/* source: http://minecraft.gamepedia.com/User:Majr/editcounter.js */
/* source: [[User:Ultradude25/editcounter.js]] */
+
/* Current version credit: */
/* Note from Kanegasi: */
+
/* author: Kanegasi @ minecraft.gamepedia.com/en.wikipedia.org */
  +
/* source: http://en.wikipedia.org/wiki/User:Kanegasi/editcounter.js */
/* THIS VERSION HERE IS SPECIFIC TO ME. DO NOT USE UNLESS YOU KNOW WHAT TO CHANGE! */
 
  +
/* documentation: http://en.wikipedia.org/wiki/User:Kanegasi/editcounter */
  +
/* contacts: http://minecraft.gamepedia.com/User_talk:Kanegasi -OR- */
  +
/* http://en.wikipedia.org/wiki/User_talk:Kanegasi */
 
/***********************************************************************************/
 
/***********************************************************************************/
 
$(document).ready(function() {
 
 
// Add a new link after "User contributions" in the toolbox
 
if ($('#t-contributions').length==0) {
 
alert('Expected element not found. Please see http://strategywiki.org/wiki/User_talk:Najzere to have your wiki added.');
 
return;
 
};
 
var $editCountLink = $('<a>Edit counter</a>').attr( { id: 't-editcounter', href: '#', title: 'Run edit counter script' } );
 
$('#t-contributions').after($('<li></li>').html($editCountLink));
 
 
$('#t-editcounter').click( function() {
 
 
// Change edit counter link to let the user know it's thinking
 
$(this).html('Calculating...');
 
 
// Set up variables
 
var editSummary = 'updated';
 
var tableTop = '[http://strategywiki.org/wiki/User_talk:Najzere/edit_counter.js edit counter.js] [http://strategywiki.org/wiki/User_talk:Najzere/edit_counter.js#Bugs Why don\'t the numbers match the total?]';
 
var edits = [];
 
var namespaces = [];
 
var movelog = [];
 
var protectlog = [];
 
var next;
 
var edittoken;
 
var succeeded = false;
 
var brace = '{';
 
var table = '<div style="text-align: center; margin-bottom: 1em"><span style="font-weight: bold">Edit Count</span>\n{| class="wikitable '+tableClass+'" style="text-align: center; margin: 0 auto"\n|-\n! ';
 
 
// Initialize namespace, move log and patrol log arrays
 
$.ajax({
 
url: '/api.php?action=query&meta=siteinfo&siprop=namespaces&format=json',
 
dataType: 'json',
 
async: false,
 
success: function(siResponse) {
 
for (var ns in siResponse.query.namespaces) {
 
if (siResponse.query.namespaces[ns].id > -1) {
 
if(siResponse.query.namespaces[ns].id != namespaces.length)
 
break;
 
if (siResponse.query.namespaces[ns].id == 0) {
 
namespaces[siResponse.query.namespaces[ns].id] = 'Main';
 
} else if (siResponse.query.namespaces[ns].id == 4) {
 
namespaces[siResponse.query.namespaces[ns].id] = 'Minecraft Wiki';
 
} else if (siResponse.query.namespaces[ns].id == 5) {
 
namespaces[siResponse.query.namespaces[ns].id] = 'Minecraft Wiki talk';
 
} else {
 
namespaces[siResponse.query.namespaces[ns].id] = siResponse.query.namespaces[ns].canonical;
 
};
 
movelog[siResponse.query.namespaces[ns].id] = 0;
 
protectlog[siResponse.query.namespaces[ns].id] = 0;
 
};
 
};
 
}
 
});
 
 
// Fill move log array
 
next = '';
 
while (next != 'stop') {
 
$.ajax({
 
url: '/api.php?action=query&list=logevents&letype=move&leuser=kanegasi&lelimit=max&leprop=title&format=json'+next,
 
dataType: 'json',
 
async: false,
 
success: function(moveResponse) {
 
for (var event in moveResponse.query.logevents) {
 
movelog[moveResponse.query.logevents[event].ns] += 1;
 
};
 
if (moveResponse["query-continue"]) {
 
next = '&lestart='+moveResponse["query-continue"].logevents.lestart;
 
} else {
 
next = 'stop';
 
};
 
}
 
});
 
};
 
 
// Fill protect log array
 
next = '';
 
while (next != 'stop') {
 
$.ajax({
 
url: '/api.php?action=query&list=logevents&letype=protect&leuser=kanegasi&lelimit=max&leprop=title&format=json'+next,
 
dataType: 'json',
 
async: false,
 
success: function(protectResponse) {
 
for (var event in protectResponse.query.logevents) {
 
protectlog[protectResponse.query.logevents[event].ns] += 1;
 
};
 
if (protectResponse["query-continue"]) {
 
next = '&lestart='+protectResponse["query-continue"].logevents.lestart;
 
} else {
 
next = 'stop';
 
};
 
}
 
});
 
};
 
 
// Loop through namespaces counting edits and subtracting page moves and patrols
 
for (var i = 0; i < namespaces.length; i++) {
 
next = '';
 
while (next != 'stop') {
 
$.ajax({
 
url: '/api.php?action=query&list=usercontribs&ucuser=kanegasi&uclimit=max&ucdir=newer&format=json&ucnamespace='+i+next,
 
dataType: 'json',
 
async: false,
 
success: function(ucResponse) {
 
edits[i] = ucResponse.query.usercontribs.length - movelog[i] - protectlog[i];
 
if (ucResponse["query-continue"]) {
 
next = '&ucstart='+ucResponse["query-continue"].usercontribs.ucstart;
 
} else {
 
next = 'stop';
 
};
 
}
 
});
 
};
 
};
 
 
for (var i = 0; i < namespaces.length; i++) {
 
if (edits[i] > 0) {
 
table += namespaces[i]+' !! ';
 
};
 
}
 
table += 'Total\n|-\n| ';
 
 
for (var i = 0; i < namespaces.length; i++) {
 
if (edits[i] > 0) {
 
table += brace+brace+'subst:formatnum:'+edits[i]+'}} || ';
 
};
 
}
 
 
// Get full edit count, as tracked by MW, add it to table
 
$.ajax({
 
url: '/api.php?action=query&meta=userinfo&uiprop=editcount&format=json',
 
dataType: 'json',
 
async: false,
 
success: function(uiResponse) {
 
table += brace+brace+'subst:formatnum:'+uiResponse.query.userinfo.editcount+'}}\n|}';
 
}
 
});
 
 
table += '<span style="font-size: x-small">Last updated: '+brace+brace+'subst:#time:F j, Y}}. Generated with '+tableTop+'</span>\n</div>';
 
 
// Get edit token
 
$.ajax({
 
url: '/api.php?action=query&prop=info|revisions&intoken=edit&format=json&titles=User:Kanegasi/edit_counter',
 
dataType: 'json',
 
async: false,
 
success: function(propResponse) {
 
for (var page in propResponse.query.pages) {
 
edittoken = propResponse.query.pages[page].edittoken.replace(/\+\\$/g,'%2B%5C');
 
};
 
}
 
});
 
 
// Edit the target page with the table
 
$.ajax({
 
url: '/api.php?action=edit&title=User:Kanegasi/edit_counter&summary='+editSummary+'&minor=1&recreate=1&bot=1&text='+escape(table)+'&token='+edittoken,
 
type: 'POST',
 
async: false,
 
success: function() { succeeded = true; }
 
});
 
 
// change edit count link to reflect the status of the page save
 
if (succeeded) {
 
$(this).html('Done!');
 
} else {
 
$(this).html('Error!');
 
};
 
 
});
 
});
 

Latest revision as of 01:42, 28 October 2013

/***********************************************************************************/
/*                                                                                 */
/*                              MEDIAWIKI EDITCOUNTER                              */
/*                                                                                 */
/*     license:   CC-BY-SA 3.0  http://creativecommons.org/licenses/by-sa/3.0/     */
/*                                                                                 */
/* Original credit:                                                                */
/*   author:        Najzere @ strategywiki.org                                     */
/*   source:        http://strategywiki.org/wiki/User:Najzere/edit_counter.js      */
/*   documentation: http://strategywiki.org/wiki/User_talk:Najzere/edit_counter.js */
/*   contact:       http://strategywiki.org/wiki/User_talk:Najzere                 */
/* Minecraft Wiki credit:                                                          */
/*   author:        Matt (Majr) @ minecraft.gamepedia.com                          */
/*   source:        http://minecraft.gamepedia.com/User:Majr/editcounter.js        */
/* Current version credit:                                                         */
/*   author:        Kanegasi @ minecraft.gamepedia.com/en.wikipedia.org            */
/*   source:        http://en.wikipedia.org/wiki/User:Kanegasi/editcounter.js      */
/*   documentation: http://en.wikipedia.org/wiki/User:Kanegasi/editcounter         */
/*   contacts:      http://minecraft.gamepedia.com/User_talk:Kanegasi  -OR-        */
/*                  http://en.wikipedia.org/wiki/User_talk:Kanegasi                */
/***********************************************************************************/