// This code is jsHint-valid
///////////////// Get user details
$(document).ready(function() {
"use strict";
if ((mw.config.get("wgCanonicalNamespace") === "User" || mw.config.get("wgCanonicalNamespace") === "User_talk") && mw.config.get("wgTitle").indexOf('/') === -1) GetUserDetails();
});
function GetUserDetails() {
"use strict";
var query = {
action: 'query',
list: 'users',
ususers: mw.config.get("wgTitle"),
usprop: 'editcount|groups',
format: 'json'
};
$.getJSON(mw.util.wikiScript('api'), query, function(result) {
var groups = String(result.query.users[0].groups);
groups = groups.replace("*,", "");
groups = groups.replace("autoconfirmed,", "");
var newDiv = $('<div />').addClass('editsection').css('float', 'left').html(result.query.users[0].editcount + ' edits. ' + 'Rights: [' + groups + ']. ');
$('#firstHeading').after(newDiv);
$('div.editsection').after($('<br />'));
GetLastEdit();
});
}
function GetLastEdit() {
"use strict";
var query = {
action: 'query',
list: 'usercontribs',
ucuser: mw.config.get("wgTitle"),
ucprop: 'timestamp',
format: 'json'
};
$.getJSON(mw.util.wikiScript('api'), query, function(result) {
if (!result || result.error) return;
var lastEdit = new Date(result.query.usercontribs[0].timestamp);
lastEdit.setHours(0, 0, 0, 0);
var div = $('#firstHeading').next('div');
var one_day = 1000 * 60 * 60 * 24;
var today = new Date();
today.setHours(0, 0, 0, 0);
var days = today.getDate() - lastEdit.getDate();
if (days < 0)
{
today.setMonth(today.getMonth() - 1);
var monthStart = new Date(today.getFullYear(), today.getMonth(), 1);
var monthEnd = new Date(today.getFullYear(), today.getMonth() + 1, 1);
var monthLength = Math.round((monthEnd - monthStart) / one_day);
days += monthLength;
}
var months = today.getMonth() - lastEdit.getMonth();
if (months < 0)
{
today.setFullYear(today.getFullYear() - 1);
months += 12;
}
var years = today.getFullYear() - lastEdit.getFullYear();
var lastEditBefore = 'Last edit: today';
if(years + months + days > 0) {
lastEditBefore = 'Last edit: ';
if (years > 0) lastEditBefore += years + " year(s) ";
if (months > 0) lastEditBefore += months + " month(s) ";
if (days > 0) lastEditBefore += days + " day(s) ";
lastEditBefore += 'back';
}
div.append(lastEditBefore);
});
}
///////////////// End of get user details