/***********************************************************************************//* *//* MEDIAWIKI EDITCOUNTER v111 *//* *//* 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 *//***********************************************************************************/ $(document).ready(function () {// Add new link labeled "Edit counter v111" after "User contributions" in side menuif (!$('#t-contributions').length) {alert('Missing "User contributions" link in the side menu');return;}var $editCountLink = $('<a>Edit counter v111</a>').attr({id: 't-editcounter', href: '#', title: 'Run edit counter script'});$('#t-contributions').after($('<li></li>').html($editCountLink));$('#t-editcounter').click(function () {$('#t-editcounter').text('Processing…');setTimeout(function () {// Set up variablesif (/wikipedia.org/.test(mw.config.get('wgServer'))) {interwikiLink = 'en';} else {interwikiLink = 'wikipedia';}if (typeof (pageName) == 'undefined') { pageName = 'edit count'; }if (typeof (subPages) == 'undefined') { subPages = false; }if (typeof (datePageName) == 'undefined') { datePageName = 'date'; }if (typeof (totalPageName) == 'undefined') { totalPageName = 'total'; }if (typeof (summaryLink) == 'undefined') {summaryLink = interwikiLink + ':User:Kanegasi/editcounter';}if (typeof (tableCaption) == 'undefined') { tableCaption = ''; }if (typeof (tableHeaders) == 'undefined' || tableHeaders === true) {headerPipe = '! ';} else {headerPipe = '| ';}if (typeof (nameSpaces) == 'undefined') { nameSpaces = []; }if (typeof (mainTableAttrib) == 'undefined') {mainTableAttrib = 'class="wikitable" style="margin: ' +'0 auto 1em; text-align: center"';}if (typeof (topRowAttrib) == 'undefined') { topRowAttrib = ''; }if (typeof (bottomRowAttrib) == 'undefined') { bottomRowAttrib = ''; }if (typeof (dateFormat) == 'undefined') { dateFormat = 'F j, Y'; }if (typeof (noInclude1) == 'undefined') { noInclude1 = ''; } else {noInclude1 = '<noinclude>' + noInclude1 + '</noinclude>';}if (typeof (noInclude2) == 'undefined') { noInclude2 = ''; } else {noInclude2 = '<noinclude>' + noInclude2 + '</noinclude>';}if (typeof (noInclude3) == 'undefined') { noInclude3 = ''; } else {noInclude3 = '<noinclude>' + noInclude3 + '</noinclude>';}if (typeof (noInclude) == 'undefined') { noInclude = ''; } else {noInclude1 = '<noinclude>' + noInclude + '</noinclude>';noInclude2 = '<noinclude>' + noInclude + '</noinclude>';noInclude3 = '<noinclude>' + noInclude + '</noinclude>';}if (!(/\|/.test(summaryLink))) { summaryLink += '|updated'; }if (/wikipedia:User:Kanegasi\/editcounter/i.test(summaryLink) &&interwikiLink == 'en') {summaryLink = summaryLink.replace(/wikipedia/i,'en');}var userName = mw.config.get('wgUserName'),contribLink = '[' + mw.config.get('wgServer') + mw.config.get('wgScriptPath') +'/index.php?title=Special%3AContributions&target=' +encodeURIComponent(userName) + '&namespace=',bracesLeft = '{{',bracesRight = '}}',deletedEdits = 0,edits = [],editToken,fullPageName = 'User:' + userName + '/' + pageName,fullDatePageName = fullPageName + '/' + datePageName,fullTotalPageName = fullPageName + '/' + totalPageName,commonPage = 'User:' + userName + '/' + 'common.js',vectorPage = 'User:' + userName + '/' + 'vector.js',scriptPages = commonPage + '|' + vectorPage,next,noCaptcha = false,oldPage = false,oldPage1 = true,oldPage2 = true,oldPage3 = true,tableAll,timeStamp = bracesLeft + 'subst:#time:' + dateFormat + bracesRight,tablePart1 = '{| ' + mainTableAttrib + '\n',tablePart2 = '|+ style="caption-side: bottom; ' +'font-size: x-small; font-weight: normal" | ',tablePart3 = '[[' + interwikiLink + ':User:Kanegasi/editcounter|' +'Last update: ' + timeStamp + ']]\n',tablePart5 = '|- ' + topRowAttrib + '\n',tablePart6 = '',tablePart7 = '|- class="plainlinks" ' + bottomRowAttrib + '\n',tablePart8 = '',totalCount,totalEdits = bracesLeft + 'subst:formatnum:',touchedDate,currentDate,coolDown,touchedDate2,currentDate2,coolDown2,ajaxvars;if (tableCaption !== '') {tablePart4 = '|-\n! colspan=99 style="align: center; ' +'border-left: hidden; border-right: hidden; ' +'border-top: hidden" | ' + tableCaption + '\n';} else {tablePart4 = '';}// Retrieve edit token and check for existing page(s)$.ajax({type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',prop: 'info',intoken: 'edit',titles: fullPageName + '|' + fullDatePageName +'|' + fullTotalPageName + '|' + scriptPages},dataType: 'json',async: false,success: function (propResponse) {for (var page in propResponse.query.pages) {editToken = propResponse.query.pages[page].edittoken;if (propResponse.query.pages[page].title == fullPageName) {if (propResponse.query.pages[page].missing) {oldPage1 = false;} else {oldPage = true;}if (propResponse.query.pages[page].touched) {touchedDate = propResponse.query.pages[page].touched;currentDate = propResponse.query.pages[page].starttimestamp;coolDown = new Date(currentDate.substr(0,10).replace(/-/ig,',')) -new Date(touchedDate.substr(0,10).replace(/-/ig,','));}}if (propResponse.query.pages[page].title == vectorPage) {if (!propResponse.query.pages[page].missing) {if (propResponse.query.pages[page].touched) {touchedDate2 = propResponse.query.pages[page].touched;currentDate2 = propResponse.query.pages[page].starttimestamp;coolDown2 = new Date(currentDate2.substr(0,10).replace(/-/ig,',')) -new Date(touchedDate2.substr(0,10).replace(/-/ig,','));}}}if (propResponse.query.pages[page].title == commonPage) {if (!propResponse.query.pages[page].missing && !coolDown2) {if (propResponse.query.pages[page].touched) {touchedDate2 = propResponse.query.pages[page].touched;currentDate2 = propResponse.query.pages[page].starttimestamp;coolDown2 = new Date(currentDate2.substr(0,10).replace(/-/ig,',')) -new Date(touchedDate2.substr(0,10).replace(/-/ig,','));}}}if (propResponse.query.pages[page].title == fullDatePageName) {if (propResponse.query.pages[page].missing && subPages) {oldPage2 = false;} else {oldPage = true;}}if (propResponse.query.pages[page].title == fullTotalPageName) {if (propResponse.query.pages[page].missing && subPages) {oldPage3 = false;} else {oldPage = true;}}}},error: function (xhr, textStatus, error){$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});// Check if user autoconfirmed and stop script if false and no page exists.// Also check for last count and stop if same day.if (/confirmed/i.test(mw.config.get('wgUserGroups'))) {noCaptcha = true;}if (!oldPage && !noCaptcha) {$('#t-editcounter').text('Error!');if (!oldPage1) {oldPage1 = '\n\t' + fullPageName;} else {oldPage1 = '';}if (!oldPage2 && subPages) {oldPage2 = '\n\t' + fullDatePageName;} else {oldPage2 = '';}if (!oldPage3 && subPages) {oldPage3 = '\n\t' + fullTotalPageName;} else {oldPage3 = '';}alert('Your account requires a captcha to make new pages.\n' +'Make sure the following page(s) exist:\n' +oldPage1 + oldPage2 + oldPage3);return;}if (coolDown === 0 && coolDown2 !== 0) {$('#t-editcounter').text('Error!');alert('You have already counted your edits today.');return;}// Initialize namespace and edit arrays$.ajax({type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',meta: 'siteinfo',siprop: 'namespaces'},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 === 0 &&typeof (nameSpaces[0]) == 'undefined') {nameSpaces[siResponse.query.namespaces[ns].id] = 'Main';} else if (siResponse.query.namespaces[ns].id == 4 &&typeof (nameSpaces[4]) == 'undefined') {nameSpaces[siResponse.query.namespaces[ns].id] = mw.config.get('wgSiteName');} else if (siResponse.query.namespaces[ns].id == 5 &&typeof (nameSpaces[5]) == 'undefined') {nameSpaces[siResponse.query.namespaces[ns].id] = mw.config.get('wgSiteName') +' talk';} else {if (typeof (nameSpaces[siResponse.query.namespaces[ns].id]) == 'undefined') {nameSpaces[siResponse.query.namespaces[ns].id] =siResponse.query.namespaces[ns].canonical;}}edits[siResponse.query.namespaces[ns].id] = 0;}}},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});// Fill edit array with moves (negative numbers)next = '1';while (next != 'stop') {ajaxvars = {type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',rawcontinue: '',list: 'logevents',leuser: userName,letype: 'move',leprop: 'title',lelimit: 'max',ledir: 'newer'},dataType: 'json',async: false,success: function (logResponse) {for (var event in logResponse.query.logevents) {edits[logResponse.query.logevents[event].ns] -= 1;deletedEdits -= 1;}if (logResponse['query-continue']) {next = logResponse['query-continue'].logevents.lecontinue;} else {next = 'stop';}},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}};if (next != '1') {ajaxvars.data = {format: 'json',action: 'query',rawcontinue: '',list: 'logevents',leuser: userName,letype: 'move',leprop: 'title',lelimit: 'max',ledir: 'newer',lecontinue: next};}$.ajax(ajaxvars);}// Fill edit array with protects (negative numbers)next = '1';while (next != 'stop') {ajaxvars = {type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',rawcontinue: '',list: 'logevents',leuser: userName,letype: 'protect',leprop: 'title',lelimit: 'max',ledir: 'newer'},dataType: 'json',async: false,success: function (logResponse) {for (var event in logResponse.query.logevents) {edits[logResponse.query.logevents[event].ns] -= 1;deletedEdits -= 1;}if (logResponse['query-continue']) {next = logResponse['query-continue'].logevents.lecontinue;} else {next = 'stop';}},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}};if (next != '1') {ajaxvars.data = {format: 'json',action: 'query',rawcontinue: '',list: 'logevents',leuser: userName,letype: 'protect',leprop: 'title',lelimit: 'max',ledir: 'newer',lecontinue: next};}$.ajax(ajaxvars);}// Fill edit array with file overwrites (negative numbers)next = '1';while (next != 'stop') {ajaxvars = {type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',rawcontinue: '',list: 'logevents',leuser: userName,leaction: 'upload/overwrite',leprop: 'title',lelimit: 'max',ledir: 'newer'},dataType: 'json',async: false,success: function (logResponse) {for (var event in logResponse.query.logevents) {edits[logResponse.query.logevents[event].ns] -= 1;deletedEdits -= 1;}if (logResponse['query-continue']) {next = logResponse['query-continue'].logevents.lecontinue;} else {next = 'stop';}},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}};if (next != '1') {ajaxvars.data = {format: 'json',action: 'query',list: 'logevents',rawcontinue: '',leuser: userName,leaction: 'upload/overwrite',leprop: 'title',lelimit: 'max',ledir: 'newer',lecontinue: next};}$.ajax(ajaxvars);}// Fill edit array with normal edits (positive numbers)next = '1';while (next != 'stop') {ajaxvars = {type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',rawcontinue: '',list: 'usercontribs',ucuser: userName,ucprop: 'title',uclimit: 'max',ucdir: 'newer'},dataType: 'json',async: false,success: function (ucResponse) {for (var event in ucResponse.query.usercontribs) {edits[ucResponse.query.usercontribs[event].ns] += 1;deletedEdits += 1;}if (ucResponse['query-continue']) {next = ucResponse['query-continue'].usercontribs.uccontinue;} else {next = 'stop';}},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}};if (next != '1') {ajaxvars.data = {format: 'json',action: 'query',rawcontinue: '',list: 'usercontribs',ucuser: userName,ucprop: 'title',uclimit: 'max',ucdir: 'newer',uccontinue: next};}$.ajax(ajaxvars);}for (var i = 0; i < nameSpaces.length; i++) {if (edits[i] > 0) {if (i == 2) {if (subPages) {edits[i] += 3;} else {edits[i] += 1;}}tablePart6 += headerPipe + nameSpaces[i] + '\n';tablePart8 += '| ' + contribLink + i + ' ' + bracesLeft +'subst:formatnum:' + edits[i] + bracesRight + ']' + '\n';}}tablePart6 += headerPipe + 'Total\n';tablePart8 += '| [[Special:Contributions/' +userName + '|<span title="Deleted edits: ';// Retrieve total edit count and calculate estimated deleted edits$.ajax({type: "GET",url: mw.util.wikiScript('api'),data: {format: 'json',action: 'query',meta: 'userinfo',uiprop: 'editcount'},dataType: 'json',async: false,success: function (totalResponse) {deletedEdits -= totalResponse.query.userinfo.editcount;if (subPages) {totalCount = totalResponse.query.userinfo.editcount + 3;} else {totalCount = totalResponse.query.userinfo.editcount + 1;}tablePart8 += Math.abs(deletedEdits) + '">' + totalEdits +totalCount + bracesRight + '</span>]]\n|}';},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});tableAll = tablePart1 + tablePart2 + tablePart3 + tablePart4 +tablePart5 + tablePart6 + tablePart7 + tablePart8;// Submit post request to main page$.ajax({type: 'POST',url: mw.util.wikiScript('api'),data: {format: 'json',action: 'edit',title: fullPageName,text: tableAll + noInclude1,summary: '[[' + summaryLink + ']]',bot: '1',minor: '1',recreate: '1',token: editToken},dataType: 'json',async: false,success: function () {$('#t-editcounter').text('Success!');},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});// Submit post request to date pageif (subPages) {$.ajax({type: 'POST',url: mw.util.wikiScript('api'),data: {format: 'json',action: 'edit',title: fullDatePageName,text: timeStamp + noInclude2,summary: '[[' + summaryLink + ']]',bot: '1',minor: '1',recreate: '1',token: editToken},dataType: 'json',async: false,success: function () {$('#t-editcounter').text('Success!');},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});}// Submit post request to total pageif (subPages) {$.ajax({type: 'POST',url: mw.util.wikiScript('api'),data: {format: 'json',action: 'edit',title: fullTotalPageName,text: totalCount + noInclude3,summary: '[[' + summaryLink + ']]',bot: '1',minor: '1',recreate: '1',token: editToken},dataType: 'json',async: false,success: function () {$('#t-editcounter').text('Success!');},error: function (xhr, textStatus, error) {$('#t-editcounter').text('Error!');alert(xhr.statusText);alert(textStatus);alert(error);return;}});}},1000);});});
🔥 Top keywords: Main PageSpecial:SearchPage 3Wikipedia:Featured picturesHouse of the DragonUEFA Euro 2024Bryson DeChambeauJuneteenthInside Out 2Eid al-AdhaCleopatraDeaths in 2024Merrily We Roll Along (musical)Jonathan GroffJude Bellingham.xxx77th Tony AwardsBridgertonGary PlauchéKylian MbappéDaniel RadcliffeUEFA European Championship2024 ICC Men's T20 World CupUnit 731The Boys (TV series)Rory McIlroyN'Golo KantéUEFA Euro 2020YouTubeRomelu LukakuOpinion polling for the 2024 United Kingdom general electionThe Boys season 4Romania national football teamNicola CoughlanStereophonic (play)Gene WilderErin DarkeAntoine GriezmannProject 2025