Skip to content

Commit

Permalink
Fix MediaWiki:Gadget-markAdmins-data.js broken
Browse files Browse the repository at this point in the history
1. Rename Image-reviewer to image-reviewer
2. Filed https://phabricator.wikimedia.org/T229176
3. Added safeguard for renamed groups: If API returns error,
   do not populate users to that group
4. Improved edit summary
  • Loading branch information
Rillke authored and CMB committed Jul 28, 2019
1 parent 403de29 commit c4781b6
Showing 1 changed file with 31 additions and 8 deletions.
39 changes: 31 additions & 8 deletions js/tasks/update_user_groups.js
Expand Up @@ -15,7 +15,7 @@ var uug, client, metaClient, cfg,
ST_UNKNOWN = 0;

uug = {
version: '0.0.1.2',
version: '0.0.2.0',
config: {
reportPage: 'MediaWiki:Gadget-markAdmins-data.js',
reportSummary: 'Bot: Updating user group members.'
Expand Down Expand Up @@ -58,8 +58,8 @@ uug = {
aulimit: 'max'
};

uug.client.api.call( params, function( r ) {
$def.resolve( r );
uug.client.api.call( params, function( r, next, data ) {
$def.resolve( r, data );
}, 'POST' );
return $def;
},
Expand All @@ -72,13 +72,17 @@ uug = {
agulimit: 'max'
};

uug.metaClient.api.call( params, function( r ) {
$def.resolve( r );
uug.metaClient.api.call( params, function( r, next, data ) {
$def.resolve( r, data );
}, 'POST' );
return $def;
},
evalResultFunction: function( ug, key ) {
return function( r ) {
return function( r, data ) {
if ( data.warnings ) {
console.log( 'User group update: Got warnings. Not adding ' + ug );
return console.error( 'User group update: Got warnings. Not adding ' + ug, data.warnings );
}
$.each( r[key || 'allusers'], function( i, user ) {
if (!uug.usersByGroup[ug]) uug.usersByGroup[ug] = [];
if (!uug.groupsByUsers[user.name]) uug.groupsByUsers[user.name] = [];
Expand All @@ -97,7 +101,7 @@ uug = {
return uug.$fetchFromCommons( ugName ).done( uug.evalResultFunction( ugName ) );
},
$fetchImageReviewers: function() {
var ugName = 'Image-reviewer';
var ugName = 'image-reviewer';
return uug.$fetchFromCommons( ugName ).done( uug.evalResultFunction( ugName ) );
},
$fetchOversight: function() {
Expand Down Expand Up @@ -135,12 +139,13 @@ uug = {
var newText = $.trim('mw.hook(\'userjs.script-loaded.markadmins\').fire(' + uug.sortStringifyJSON( uug.groupsByUsers ) + ');');

console.log('User group update: Updating report if necessary.');
console.log(uug.getSummary());

if (oldText === newText) {
$def.resolve();
} else {
oldText = newText;
client.edit(cfg.reportPage, newText, cfg.reportSummary + ' v.' + uug.version, function() {
client.edit(cfg.reportPage, newText, uug.getSummary(), function() {
$def.resolve();
});
}
Expand All @@ -164,6 +169,24 @@ uug = {
}
return '{\n' + out.join( ',\n' ) + '\n}';
},
getSummary: function() {
var translation = {
sysop: 'Administrator',
oversight: 'Oversighter',
checkuser: 'Check user'
};
var sum = $.map(uug.usersByGroup, function(prop, key) {
var s = (prop.length === 1 ? '' : 's');
if (key in translation) {
s = translation[key] + s;
} else {
s = $.ucFirst(key) + s;
}
s += ': ' + prop.length;
return s;
}).join('; ');
return cfg.reportSummary + ' v.' + uug.version + ' ' + sum;
},
deferred: null,
bot: null,
execute: function( bot ) {
Expand Down

0 comments on commit c4781b6

Please sign in to comment.