පරිශීලක:බිඟුවා/edit counter2.js

Wiktionary වෙතින්

Note – after saving, you may have to bypass your browser’s cache to see the changes.

  • Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
  • Konqueror and Chrome: click Reload or press F5;
  • Opera: clear the cache in Tools → Preferences;
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.

/***********************************************************************************/
/* Edit counter script                                                             */
/*   author:        User: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                 */
/*   license:       CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/)  */
/* Customized by බිඟුවා*/
/***********************************************************************************/

// Only add edit count button on user pages
if (wgTitle == wgUserName && wgNamespaceNumber == 2) {
  addOnloadHook(makeEditCountButton2);
}

// Add a new link after "User contributions" in the toolbox
function makeEditCountButton2() {
  if (!document.getElementById('t-contributions')) {
    alert('අපේක්ෂිත මූලාවයව ස්ථාපනය කර නොමැත. කරුණාකොට http://si.wiktionary.org/wiki/User_talk:බිඟුවා බලන්න.');
    return;
  };
  var newlist = document.createElement('li');
  newlist.id = "t-editcounter";
  var newlink = document.createElement('a');
  newlink.href = 'javascript:countEdits2()';
  var linkname = document.createTextNode('Test');
  newlink.appendChild(linkname);
  newlist.appendChild(newlink);
  document.getElementById('t-contributions').parentNode.insertBefore(newlist, document.getElementById('t-contributions').nextSibling);
}

function countEdits2() {
// Change edit counter link to let the user know it's thinking
  document.getElementById('t-editcounter').getElementsByTagName('a')[0].innerHTML = 'ගණනය කරමින්...';

// Set up variables
  if (wgServer == 'http://si.wiktionary.org') {
    var editSummary = '[[User:බිඟුවා/edit counter.js|edit counter.js]] මගින් සංස්කරණය කිරීම';
    var tableTop = '[[User:බිඟුවා/edit counter.js|සම්පූර්ණ සංස්කරණ සංඛ්‍යාව]]';
  } else {
    var editSummary = 'http://si.wiktionary.org/wiki/User:බිඟුවා/edit_counter.js මගින් සංස්කරණය කිරීම';
    var tableTop = '<span class="plainlinks">[http://si.wiktionary.org/wiki/User:බිඟුවා/edit_counter.js සම්පූර්ණ සංස්කරණ සංඛ්‍යාව]</span>';
  };
  if (typeof editPage == 'undefined') {editPage = 'දායකත්වය2'};
  if (typeof tableClass == 'undefined') {tableClass = ''};
  if (typeof tableStyle == 'undefined') {tableStyle = ''};
  if (editPage == '') {editPage = 'දායකත්වය2'};
  var skipcaptcha = false;
  var oldpage = false;
  var edits;
  var moves;
  var namespaces = new Array();
  var namespacessinhala = new Array();
  var movelog = new Array();
  var protectlog = new Array();
  var deletelog = new Array();
  var uploadlog = new Array();
  var next;
  var edittoken;
  var imageupload;
  var blockcount;
  var rightscount;
 var importcount;
 var patrolcount; 
 var deletecount; 
 var movecount; 
  var brace = '{';
  var table = '{| class="wikitable '+tableClass+'" style="'+tableStyle+'"\n!colspan="5"| '+tableTop+': '+brace+brace+'subst:formatnum:';

// Check if the user is autoconfirmed
  for (var right in wgUserGroups)
    if (wgUserGroups[right] == 'autoconfirmed') {skipcaptcha = true};

// Get full edit count, as tracked by MW, add it to table
  queryApi('action=query&meta=userinfo&uiprop=editcount', function(uiResponse) {
    table += uiResponse.query.userinfo.editcount+'}}';
  });


table += '\n|-\n|colspan="5" align="center"|සවිස්තර දත්තයන්';

table += '\n|-\n| නාමවකාශය ||සංස්කරණය කිරීම් ||ගෙනයාම්||ආරක්ෂා කිරීම්||මකා දැමීම්';

// Loop through namespaces counting edits and subtracting page moves and patrols
  for (var i = 0; i < namespaces.length; i++) {
    next = '';
    edits = 0;
    while (next != 'stop') {
      queryApi('action=query&list=usercontribs&ucuser='+wgUserName+'&uclimit=max&ucdir=newer&ucnamespace='+i+next, function(ucResponse) {
        edits += ucResponse.query.usercontribs.length;
        if (ucResponse["query-continue"]) {
          next = '&ucstart='+ucResponse["query-continue"].usercontribs.ucstart;
        } else {
          next = 'stop';
        };
      });
    };

    edits = edits - movelog[i] - protectlog[i];
    if (edits > 0) {
      table += '\n|-\n| '+namespaces[i]+' || '+brace+brace+'subst:formatnum:'+edits+'}} || '+movelog[i]+'|| '+protectlog[i]+' ||' +deletelog[i]+ ' ';
    };
  };



  table += '\n|-\n|colspan="5" align="center"| <small>අවසාන ගණනය කිරීම සිදු වූයේ: '+brace+brace+'subst:#time:F j, Y}}</small>\n|}';

// Get edit token and check if we'll be creating a new page (in the case of non-autoconfirmed users)
  queryApi('action=query&prop=info|revisions&intoken=edit&titles=User:'+wgUserName+'/'+editPage, function(propResponse) {
    for (var page in propResponse.query.pages) {
      edittoken = propResponse.query.pages[page].edittoken.replace(/\+\\$/g,'%2B%5C');
      if (propResponse.query.pages[page]["revisions"]) {
        oldpage = true;
      };
    };
  });

// If the user is not autoconfirmed and we're creating a new page, kick out of the script
  if (!skipcaptcha && !oldpage) {
    alert("කනගාටුයි, ඔබ ස්වයං-චිරස්ථිත පරිශීලකයෙක් නොවේ.  එම නිසා මෙම පිටුව සාදා: User:"+wgUserName+"/"+editPage+", ආපසු අත්හදා බලන්න.");
    document.getElementById('t-editcounter').getElementsByTagName('a')[0].innerHTML = 'දෝෂය!';
    return;
  };

// Edit the target page with the table, change edit count link to reflect the status of the page save
  queryApi('action=edit&title=User:'+wgUserName+'/'+editPage+'&summary='+editSummary+'&minor=1&recreate=1&bot=1&text='+table+'&token='+edittoken, function(actionResponse) {
    if (actionResponse.edit.result == "Success") {
      document.getElementById('t-editcounter').getElementsByTagName('a')[0].innerHTML = 'අවසානයි!';
    } else {
      document.getElementById('t-editcounter').getElementsByTagName('a')[0].innerHTML = 'දෝෂය!';
    };
  });
}

// Accepts an API query and callback function for handling queries from the main function
function queryApi(query, callback) {
  try {
    var xmlRequest = new XMLHttpRequest();
  } catch(e) {
    try {
      var xmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
      var xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        throw "Could not create an XmlHttpRequest";
        }
      }
    }

//http://toolserver.org/~junaid/tools/editcount.php?wproject=wiki&wlan=si&usertype=users&max=50&offset=0

  xmlRequest.open('POST', 'http://toolserver.org/~soxred93/api.php?action=replag&format=xml', false);
  xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlRequest.send(null);
  var xmlResponse = new Function("return "+xmlRequest.responseText)();
  if (!xmlResponse) {
    alert('Problem retrieving information');
  } else {
    callback(xmlResponse);
  };
}
"https://si.wiktionary.org/w/index.php?title=පරිශීලක:බිඟුවා/edit_counter2.js&oldid=11133" වෙතින් සම්ප්‍රවේශනය කෙරිණි