MediaWiki:Gadget-Adiutor.js
Qiyofa
Eʼtibor bering: Oʻzgartirishlaringizni koʻrish uchun, yangi moslamalaringizning saqlashdan keyin, brauzer keshini tozalash kerak:
Mozilla / Firefox: Ctrl+Shift+R, IE: Ctrl+F5, Safari: Cmd+Shift+R, Konqueror: F5, Opera: Tools → Preferences orqali keshni tozalang.
/*
* Adiutor: A gadget to assist various user actions
* Author: Vikipolimer
* Licencing and attribution: [[VP:Adiutor#Lisanslama ve atıf]]
* Module: Loader
*/
/* <nowiki> */
$.when(mw.loader.using(["mediawiki.user", "oojs-ui-core", "oojs-ui-widgets", "oojs-ui-windows", ]), $.ready).then(function() {
var mwConfig = mw.config.get(["skin", "wgAction", "wgPageName", "wgNamespaceNumber", "wgTitle", "wgUserGroups", "wgUserName"]);
api = new mw.Api();
checkOptions('Foydalanuvchi:' + mwConfig.wgUserName + '/Adiutor-options.js').then(function(data) {
if(data.query.pages["-1"]) {
Options = JSON.stringify([{
"name": "csdSendMessageToCreator",
"value": false
}, {
"name": "csdLogNominatedPages",
"value": false
}, {
"name": "csdLogPageName",
"value": "TOʻ qaydlari"
}, {
"name": "afdSendMessageToCreator",
"value": false
}, {
"name": "afdLogNominatedPages",
"value": false
}, {
"name": "afdLogPageName",
"value": "Oʻ qaydlari"
}, {
"name": "prdSendMessageToCreator",
"value": false
}, {
"name": "prdLogNominatedPages",
"value": false
}, {
"name": "afdNominateOpinionsLog",
"value": false
}, {
"name": "afdOpinionLogPageName",
"value": "Oʻ qaydlari"
}, {
"name": "showMyStatus",
"value": false
}, {
"name": "MyStatus",
"value": true
}]);
var params = {
action: 'edit',
title: 'Foydalanuvchi:' + mwConfig.wgUserName + '/Adiutor-options.js',
appendtext: Options,
summary: 'Opsiya fayllari yaratildi',
format: 'json'
};
api = new mw.Api();
api.postWithToken('csrf', params).done(function() {
//location.reload();
});
} else {
var userSettingsParams = {
action: 'parse',
page: 'Foydalanuvchi:' + mwConfig.wgUserName + '/Adiutor-options.js',
prop: 'wikitext',
format: "json"
};
api.get(userSettingsParams).done(function(data) {
var AdiutorOptions = JSON.parse([data.parse.wikitext['*']]);
for(var i in AdiutorOptions) {
localStorage.setItem((AdiutorOptions[i]).name, (AdiutorOptions[i]).value);
}
});
}
});
var DefaultMenuItems = [];
switch(mwConfig.wgNamespaceNumber) {
case -1:
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 14:
case 10:
case 11:
case 100:
case 101:
case 102:
case 103:
case 828:
case 829:
// LOAD MODULES
if(mwConfig.wgNamespaceNumber === 3) {
var UserParams = {
action: 'query',
meta: 'userinfo',
uiprop: 'rights',
format: 'json'
};
api.get(UserParams).then(function(data) {
checkMentor(data.query.userinfo.id);
});
}
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-AFD-Helper.js');
if(/(?:\?|&)(?:action|diff|oldid)=/.test(window.location.href)) {
DefaultMenuItems.push(new OO.ui.MenuOptionWidget({
icon: 'cancel',
data: 'rdr',
label: 'Oʻchirishga',
classes: ['adiutor-top-rrd-menu'],
}));
}
if(mwConfig.wgPageName.includes('Maxsus:Contributions') || mwConfig.wgNamespaceNumber === 2 || mwConfig.wgNamespaceNumber === 3 && !mwConfig.wgPageName.includes(mwConfig.wgUserName)) {
DefaultMenuItems.push(new OO.ui.MenuOptionWidget({
icon: 'cancel',
data: 'report',
label: 'Chetlashtirishga',
classes: ['adiutor-top-user-menu-end'],
}), new OO.ui.MenuOptionWidget({
icon: 'hand',
data: 'warn',
label: 'Ogohlantirish',
}), new OO.ui.MenuOptionWidget({
icon: 'speechBubbleAdd',
data: 'welcome',
label: 'Qarshilash',
classes: ['adiutor-top-user-menu'],
}));
}
if(!mwConfig.wgPageName.includes('Maxsus:Contributions')) {
DefaultMenuItems.push(new OO.ui.MenuOptionWidget({
icon: 'add',
data: 1,
label: 'Tezda oʻchirishga',
}), new OO.ui.MenuOptionWidget({
icon: 'arrowNext',
data: 'pmr',
label: 'Koʻchirishga',
}), new OO.ui.MenuOptionWidget({
icon: 'add',
data: 3,
label: 'Oʻchirishga',
}), new OO.ui.MenuOptionWidget({
icon: 'lock',
data: 'rpp',
label: 'Himoyalashga',
}), new OO.ui.MenuOptionWidget({
icon: 'history',
data: 4,
label: 'Soʻnggi tahrir',
}), new OO.ui.MenuOptionWidget({
icon: 'tag',
data: 'tag',
label: 'Xabar andozalari',
}), new OO.ui.MenuOptionWidget({
icon: 'checkAll',
data: 5,
label: 'Mualliflik huquqlari',
}), new OO.ui.MenuOptionWidget({
icon: 'settings',
data: 6,
label: 'Moslamalar',
classes: ['adiutor-top-settings-menu'],
}));
}
var adiutorMenu = new OO.ui.ButtonMenuSelectWidget({
icon: 'ellipsis',
invisibleLabel: true,
framed: false,
title: 'Koʻproq opsiyalar',
align: 'force-right',
classes: ['adiutor-top-selector', 'mw-indicator'],
menu: {
horizontalPosition: 'end',
items: DefaultMenuItems,
classes: ['adiutor-top-menu'],
}
});
adiutorMenu.getMenu().on('choose', function(menuOption) {
switch(menuOption.getData()) {
case 1:
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-CSD.js');
break;
case 2:
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-PRD.js');
break;
case 3:
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-AFD.js');
break;
case 4:
window.location = '/w/index.php?title=' + mwConfig.wgPageName + "&diff=cur&oldid=prev&diffmode=source";
break;
case 5:
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-COV.js');
break;
case 6:
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-OPT.js');
break;
case 'report':
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-AIV.js');
break;
case 'warn':
OO.ui.alert('Tez kunlarda faol boʻladi :)').done(function() {});
break;
case 'welcome':
OO.ui.alert('Tez kunlarda faol boʻladi :)').done(function() {});
break;
case 'rdr':
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-RDR.js');
break;
case 'pmr':
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-PMR.js');
break;
case 'rpp':
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-RPP.js');
break;
case 'tag':
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-TAG.js');
break;
}
});
if(!mwConfig.wgPageName.includes('Bosh_Sahifa')) {
switch(mwConfig.skin) {
case 'vector':
$('.mw-portlet-cactions').parent().append(adiutorMenu.$element);
break;
case 'vector-2022':
$('.vector-collapsible').append(adiutorMenu.$element);
break;
case 'monobook':
$('.mw-indicators').append(adiutorMenu.$element);
break;
case 'timeless':
$('.mw-portlet-body').append(adiutorMenu.$element);
break;
case 'minerva':
$('.page-actions-menu__list').append(adiutorMenu.$element);
break;
}
break;
}
}
function checkOptions(title) {
return api.get({
action: 'query',
prop: 'revisions',
rvlimit: 1,
rvprop: ['user'],
rvdir: 'newer',
titles: title,
});
}
switch(mwConfig.wgNamespaceNumber) {
case 2:
case 3:
var CurrentUserPage = mwConfig.wgPageName.replace(/Foydalanuvchi(\s|\_)munozaras\s*?\:\s*?(.*)/gi, "Foydalanuvchi:$2");
checkOptions(CurrentUserPage + '/Adiutor-options.js').then(function(data) {
if(data.query.pages["-1"]) {
//
} else {
var XUserParams = {
action: 'parse',
page: CurrentUserPage + '/Adiutor-options.js',
prop: 'wikitext',
format: "json"
};
api.get(XUserParams).done(function(data) {
var AdiutorOptions = JSON.parse([data.parse.wikitext['*']]);
var ShowStatus;
var UserStatus;
$.each(AdiutorOptions, function() {
if(this.name == "showMyStatus") {
ShowStatus = this.value;
}
});
$.each(AdiutorOptions, function() {
if(this.name == "MyStatus") {
UserStatus = this.value;
}
});
if(ShowStatus) {
switch(UserStatus) {
case "active":
buttonSelect = new OO.ui.ButtonOptionWidget({
framed: false,
label: 'Faol',
data: 'active',
classes: ['adiutor-user-status-active'],
});
$('.mw-first-heading').append(buttonSelect.$element);
break;
case "passive":
buttonSelect = new OO.ui.ButtonOptionWidget({
framed: false,
label: 'Faol emas',
data: 'passive',
classes: ['adiutor-user-status-passive'],
});
$('.mw-first-heading').append(buttonSelect.$element);
break;
case "away":
buttonSelect = new OO.ui.ButtonOptionWidget({
framed: false,
label: 'Taʼtilda',
data: 'away',
classes: ['adiutor-user-status-away'],
});
$('.mw-first-heading').append(buttonSelect.$element);
break;
}
var checkLoggedUserPage = mwConfig.wgPageName.includes(mwConfig.wgUserName);
if(checkLoggedUserPage) {
buttonSelect.on('click', (function() {
buttonSelect.$element.hide();
var dropdown = new OO.ui.DropdownWidget({
menu: {
items: [
new OO.ui.MenuOptionWidget({
data: 'active',
label: 'Faol'
}),
new OO.ui.MenuOptionWidget({
data: 'passive',
label: 'Faol emas'
}),
new OO.ui.MenuOptionWidget({
data: 'away',
label: 'Taʼtilda'
})
],
},
label: 'Holati',
classes: ['adiutor-user-status-selector']
});
$('.mw-first-heading').append(dropdown.$element);
dropdown.getMenu().on('choose', function(menuOption) {
changeUserStatus(menuOption.getData());
});
}));
}
}
});
}
});
break;
}
function changeUserStatus(status) {
api.get({
action: 'parse',
page: 'Foydalanuvchi:' + mwConfig.wgUserName + '/Adiutor-options.js',
prop: 'wikitext',
format: "json"
}).done(function(data) {
var AdiutorOptions = JSON.parse([data.parse.wikitext['*']]);
$.each(AdiutorOptions, function() {
if(this.name == "MyStatus") {
this.value = status;
}
});
console.log(AdiutorOptions);
api.postWithToken('csrf', {
action: 'edit',
title: 'Foydalanuvchi:' + mwConfig.wgUserName + '/Adiutor-options.js',
text: JSON.stringify(AdiutorOptions),
summary: '[[VP:Adiutor|Adiutor]] opsiyalari yangilandi',
format: 'json'
}).done(function() {
location.reload();
});
});
}
function checkMentor(UserId) {
api.get({
action: 'parse',
page: "MediaWiki:GrowthMentors.json",
prop: 'wikitext',
format: "json"
}).done(function(data) {
if(data.parse.wikitext['*'].includes(UserId) && mwConfig.wgPageName.includes(mwConfig.wgUserName)) {
mw.loader.load('//uz.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:Gadget-Adiutor-CMR.js');
}
});
}
});
/* </nowiki> */