User:Pinigin/userinfo.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Pinigin/userinfo. |
/*
* UserInfo.js (c) 2017-2018, Maksim Pinigin
* Create a "Special:UserInfo" page that allows you to view a little information about the user
* To enable this script, go to User:Your_name/common.js and type "importScript('User:Pinigin/userinfo.js');" (without quotes)
* To enable this script on every Wikimedia project, go to meta:User:Your_name/global.js and type: mw.loader.load( "//commons.wikimedia.org/w/index.php?title=User:Pinigin/userinfo.js&action=raw&ctype=text/javascript" );
*/
// Localization
// Russian
if(mw.config.values.wgUserLanguage === "ru") {
var pui_pagename = "Информация о пользователе";
var pui_username = "Имя участника";
var pui_getuserinfo = "Получить информацию о пользователе";
var pui_userlink = "Перейти на страницу с информацией о пользователе";
var pui_spaname = "Инструменты созданные Максимом Пинигином";
var pui_enterusername = "Вы должны ввести имя пользователя";
var pui_userid = "ID пользователя:";
var pui_globalid = "Глобальный ID:";
var pui_usernamer = "Имя участника:";
var pui_editscount = "Количество правок:";
var pui_regdate = "Дата регистрации:";
var pui_gender = "Пол участника:";
var pui_usergroups = "Группы участника:";
var pui_globalgroups = "Глобальные группы:";
}
// Ukrainian (Translated by: Funtazoid, Checked by: Haralil)
else if(mw.config.values.wgUserLanguage == "uk") {
var pui_pagename = "Інформація про користувача";
var pui_username = "Ім'я учасника";
var pui_getuserinfo = "Отримати інформацію про користувача";
var pui_userlink = "Отримати інформацію про користувача"; // not translated
var pui_spaname = "Інструменти створені Максимом Пинигином";
var pui_enterusername = "Ви повинні ввести ім'я користувача";
var pui_userid = "ID користувача:";
var pui_globalid = "Глобальний ID:";
var pui_usernamer = "Ім'я учасника:";
var pui_editscount = "Кількість правок:";
var pui_regdate = "Дата реєстрації:";
var pui_gender = "Пол учасника:";
var pui_usergroups = "Групи учасника:";
var pui_globalgroups = "Глобальні групи:";
}
// English (default)
else {
var pui_pagename = "User information";
var pui_username = "User name";
var pui_getuserinfo = "Get user information";
var pui_userlink = "Go to the user information page";
var pui_spaname = "Tools created by Maxim Pinigin";
var pui_enterusername = "You must enter a user name";
var pui_userid = "User ID:";
var pui_globalid = "Global ID:";
var pui_usernamer = "User name:";
var pui_editscount = "Number of edits:";
var pui_regdate = "Date of registration:";
var pui_gender = "Gender:";
var pui_usergroups = "Groups:";
var pui_globalgroups = "Global groups:";
}
function getUserInfo() {
var username = $("#username_input").val();
$("#userinfobody").html("");
$.ajax({
type:"get",
url:"/w/api.php?action=query&list=users&ususers=" + username + "&usprop=registration%7Cgender%7Ceditcount%7Cblockinfo%7Cgroups&format=json",
success:function (data) {
$.ajax({
type:"get",
url:"/w/api.php?action=query&format=json&list=globalallusers&utf8=1&agufrom=" + username + "&aguprop=groups&agulimit=1",
success:function (gdata) {
if(username === "") {
$("#userinfobody").append("<br><b>" + pui_enterusername + "</b>");
}
else {
$("#userinfobody").append("<br>");
$("#userinfobody").append("<b>" + pui_userid + "</b> " + data.query.users[0].userid + "<br>");
$("#userinfobody").append("<b>" + pui_globalid + "</b> " + gdata.query.globalallusers[0].id + "<br>");
$("#userinfobody").append("<b>" + pui_usernamer + "</b> " + data.query.users[0].name + "<br>");
$("#userinfobody").append("<b>" + pui_editscount + "</b> " + data.query.users[0].editcount + "<br>");
if (data.query.users[0].registration !== null)
$("#userinfobody").append("<b>" + pui_regdate + "</b> " + data.query.users[0].registration.replace('T', ' ').replace('Z', ' ') + "<br>");
$("#userinfobody").append("<b>" + pui_gender + "</b> " + data.query.users[0].gender + "<br>");
$("#userinfobody").append("<b>" + pui_usergroups + "</b> " + data.query.users[0].groups.join(', ') + "<br>");
if(gdata.query.globalallusers[0].groups.length !== 0)
$("#userinfobody").append("<b>" + pui_globalgroups + "</b> " + gdata.query.globalallusers[0].groups.join(', ') + "<br>");
}
}
});
}
});
}
if(mw.config.values.wgNamespaceNumber === -1 && mw.config.values.wgPageName.split(':')[1] == "UserInfo")
{
$('#mw-content-text').html("");
document.title = pui_pagename + " — " + mw.config.values.wgSiteName;
$('#firstHeading').text(pui_pagename);
$('#mw-content-text').append('<input id="username_input" name="username_input" type="text" placeholder="' + pui_username + '"> <button onClick="getUserInfo();">' + pui_getuserinfo + '</button><br><div id="userinfobody"></div>');
if(location.hash.replace("#","") !== "")
{
$("#username_input").val(location.hash.replace("#",""));
getUserInfo();
}
}
if(mw.config.values.wgNamespaceNumber === 2) {
if(mw.config.values.wgPageName.indexOf("/") === -1) {
urlHash = "/wiki/Special:UserInfo#" + mw.config.values.wgPageName.split(':')[1];
$("#t-info").append('<br><br><a href="' + urlHash + '" rel="alternate" title="' + pui_userlink + '" accesskey="p">' + pui_pagename + '</a>');
}
}