MediaWiki:Gadget-OnlineAdmins.js: Difference between revisions

Jump to navigation Jump to search
m
PB2008 moved page User:PB2008/OnlineAdmins.js to MediaWiki:Gadget-OnlineAdmins.js without leaving a redirect
No edit summary
m (PB2008 moved page User:PB2008/OnlineAdmins.js to MediaWiki:Gadget-OnlineAdmins.js without leaving a redirect)
Tags: Mobile edit Mobile web edit
 
(21 intermediate revisions by 3 users not shown)
Line 6: Line 6:
     'Find Admins',
     'Find Admins',
     't-onlineadmin',
     't-onlineadmin',
     'Seek help from these users.      Note: The action query tends to be quite long when the number of recent edits was high. This is a currrently unsolved problem.',
     'Seek help from admins.',
     '',
     '',
     '#pt-userpage'
     '#pt-userpage'
Line 12: Line 12:
     var rcstart, rcend, time;
     var rcstart, rcend, time;
     var users = [];
     var users = [];
     var admins = [], rollbackers = [], patrollers = [];
     var admins = [], bureaucrats = [], stewards = [];
     var api = new mw.Api();
     var api = new mw.Api();


Line 18: Line 18:
     $(portletLinkOnline).click(function(e) {
     $(portletLinkOnline).click(function(e) {
         e.preventDefault();
         e.preventDefault();
         users = [];
         users = [];
         var usersExt = [];
         var usersExt = [];
         admins = [];
         admins = [];
 
         // Recent edits within 30 minutes
         // 最近更改30分钟内的编辑用户
         time = new Date();
         time = new Date();
         rcstart = time.toISOString();
         rcstart = time.toISOString();
         time.setMinutes(time.getMinutes() - 15);
         time.setMinutes(time.getMinutes() - 30);
         rcend = time.toISOString();
         rcend = time.toISOString();
         //API:RecentChanges
         //API:RecentChanges
         api.get({
         api.get({
Line 58: Line 55:
                 Array.prototype.push.apply(users, usersExt);
                 Array.prototype.push.apply(users, usersExt);


                 // 使用者名稱去重與分割
                 // Removing Duplicate Usernames
                 users = $.unique(users.sort());
                 users = $.unique(users.sort());


Line 64: Line 61:
                 var mark = function(data) {
                 var mark = function(data) {
                     $.each(data.query.users, function(i, user) {
                     $.each(data.query.users, function(i, user) {
                        // 找到管理员,去除adminbot
                         if ($.inArray('bot', user.groups) === -1) {
                         if ($.inArray('bot', user.groups) === -1) {
                             if ($.inArray('sysop', user.groups) > -1) {
                             if ($.inArray('sysop', user.groups) > -1) {
Line 81: Line 77:
                     }).done(mark));
                     }).done(mark));
                 }
                 }
                // 查询用户权限
                 $.when.apply($, promises).done(function () {
                 $.when.apply($, promises).done(function () {
                    // 消除空值
                     var filter = function(n) {
                     var filter = function(n) {
                         return n;
                         return n;
                     };
                     };
                   
                     admins = admins.filter(filter);
                     admins = admins.filter(filter);
                     var userlink = function(user) {
                     var userlink = function(user) {
Line 94: Line 86:
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                     };
                     };
                   
                     if (admins.length > 0) {
                     if (admins.length > 0) {
                         var adminsstring = ['<center><p><b>Online Admins</b></p></center>'];
                         var adminsstring = ['<center><p><b>Online Admin(s)</b></p></center>'];


                         if (admins.length > 0) {
                         if (admins.length > 0) {
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + admins.length + ' administrators <br> online:');
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + admins.length + ' administrator(s) <br> online:');
                             $.each(admins, function(i, e) {
                             $.each(admins, function(i, e) {
                                 adminsstring.push(userlink(e));
                                 adminsstring.push(userlink(e));
Line 110: Line 101:
                     }
                     }
                 }).fail(function () {
                 }).fail(function () {
                     mw.notify('Error 404 - Connection not found');
                     mw.notify('Error 404');
                 });
                 });
             });
             });
         });
         });
     });
     });
// Only Support Chinese Wikipedia Currently.
// Create portlet link
// Create portlet link
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
     'p-personal',
     'p-personal',
     '#',
     '#',
     'Patrollers',
     'Bureaucrats',
     't-onlinepatrol',
     't-onlinebureaucrat',
     'Seek help from patrollers.      Note: The action query tends to be quite long when the number of recent edits was high. This is a currrently unsolved problem.',
     'Seek help from bureaucrats.',
     '',
     '',
     '#pt-userpage'
     '#pt-userpage'
Line 128: Line 118:
     var rcstart, rcend, time;
     var rcstart, rcend, time;
     var users = [];
     var users = [];
     var admins = [], rollbackers = [], patrollers = [];
     var admins = [], bureaucrats = [], stewards = [];
     var api = new mw.Api();
     var api = new mw.Api();


Line 138: Line 128:
         var usersExt = [];
         var usersExt = [];
         admins = [];
         admins = [];
         rollbackers = [];
         bureaucrats = [];
         patrollers = [];
         stewards = [];


         // 最近更改30分钟内的编辑用户
         //Recent edit within 30 minutes
         time = new Date();
         time = new Date();
         rcstart = time.toISOString();
         rcstart = time.toISOString();
         time.setMinutes(time.getMinutes() - 15);
         time.setMinutes(time.getMinutes() - 30);
         rcend = time.toISOString();
         rcend = time.toISOString();


Line 173: Line 163:
                     usersExt[i] = item.user;
                     usersExt[i] = item.user;
                 });
                 });
                 Array.prototype.push.apply(users, usersExt);
                 Array.prototype.push.apply(users, usersExt);
                // 使用者名稱去重與分割
                 users = $.unique(users.sort());
                 users = $.unique(users.sort());
                 var promises = [];
                 var promises = [];
                 var mark = function(data) {
                 var mark = function(data) {
                     $.each(data.query.users, function(i, user) {
                     $.each(data.query.users, function(i, user) {
                        // 找到管理员,去除adminbot
                         if ($.inArray('bot', user.groups) === -1) {
                         if ($.inArray('bot', user.groups) === -1) {
                             if ($.inArray('sysop', user.groups) > -1) {
                             if ($.inArray('bureaucrat', user.groups) > -1) {
                                 admins[i] = user.name;
                                 bureaucrats[i] = user.name;
                            }
                            if ($.inArray('rollbacker', user.groups) > -1) {
                                rollbackers[i] = user.name;
                            }
                            if ($.inArray('patroller', user.groups) > -1) {
                                patrollers[i] = user.name;
                             }
                             }
                         }
                         }
Line 205: Line 184:
                     }).done(mark));
                     }).done(mark));
                 }
                 }
                // 查询用户权限
                 $.when.apply($, promises).done(function () {
                 $.when.apply($, promises).done(function () {
                    // 消除空值
                     var filter = function(n) {
                     var filter = function(n) {
                         return n;
                         return n;
                     };
                     };
                   
                     admins = admins.filter(filter);
                     admins = admins.filter(filter);
                     rollbackers = rollbackers.filter(filter);
                     bureaucrats = bureaucrats.filter(filter);
                     patrollers = patrollers.filter(filter);
                     stewards = stewards.filter(filter);
 
                     var userlink = function(user) {
                     var userlink = function(user) {
                         var user2 = user.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&lt;');
                         var user2 = user.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&lt;');
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                     };
                     };
                   
                     if (bureaucrats.length > 0) {
                     if (patrollers.length > 0) {
                         var adminsstring = ['<center><p><b>Bureaucrat(s) Online:</b></p></center>'];
                         var adminsstring = ['<center><p><b>Online Patrollers</b></p></center>'];
                         if (bureaucrats.length > 0) {
                       
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + bureaucrats.length + ' bureaucrat(s) <br>online:');
                         if (patrollers.length > 0) {
                             $.each(bureaucrats, function(i, e) {
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + patrollers.length + ' patrollers <br>online:');
                             $.each(patrollers, function(i, e) {
                                 adminsstring.push(userlink(e));
                                 adminsstring.push(userlink(e));
                             });
                             });
Line 234: Line 206:
                         mw.notify($(adminsstring.join('')));
                         mw.notify($(adminsstring.join('')));
                     } else {
                     } else {
                         mw.notify('Sorry! There are no patrollers online at this moment');
                         mw.notify('Sorry! There are no bureaucrats online');
                     }
                     }
                 }).fail(function () {
                 }).fail(function () {
                     mw.notify('Error 404 - Connection not found');
                     mw.notify('Error 404');
                 });
                 });
             });
             });
         });
         });
     });
     });
// Only Support Chinese Wikipedia Currently.
// Create portlet link
// Create portlet link
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
     'p-personal',
     'p-personal',
     '#',
     '#',
     'Rollbackers',
     'Stewards',
     't-onlinerollbacks',
     't-onlinesteward',
     'Seek help from these users.      Note: The action query tends to be quite long when the number of recent edits was high. This is a currrently unsolved problem.',
     'Seek help from stewards.',
     '',
     '',
     '#pt-userpage'
     '#pt-userpage'
Line 255: Line 226:
     var rcstart, rcend, time;
     var rcstart, rcend, time;
     var users = [];
     var users = [];
     var admins = [], rollbackers = [], patrollers = [];
     var admins = [], bureaucrats = [], stewards = [];
     var api = new mw.Api();
     var api = new mw.Api();


Line 264: Line 235:
         users = [];
         users = [];
         var usersExt = [];
         var usersExt = [];
         rollbackers = [];
         admins = [];
        bureaucrats = [];
        stewards = [];


         // 最近更改30分钟内的编辑用户
         //Recent edit within 30 minutes
         time = new Date();
         time = new Date();
         rcstart = time.toISOString();
         rcstart = time.toISOString();
         time.setMinutes(time.getMinutes() - 15);
         time.setMinutes(time.getMinutes() - 30);
         rcend = time.toISOString();
         rcend = time.toISOString();


Line 298: Line 271:
                     usersExt[i] = item.user;
                     usersExt[i] = item.user;
                 });
                 });
                 Array.prototype.push.apply(users, usersExt);
                 Array.prototype.push.apply(users, usersExt);
                // 使用者名稱去重與分割
                 users = $.unique(users.sort());
                 users = $.unique(users.sort());
                 var promises = [];
                 var promises = [];
                 var mark = function(data) {
                 var mark = function(data) {
                     $.each(data.query.users, function(i, user) {
                     $.each(data.query.users, function(i, user) {
                        // 找到管理员,去除adminbot
                         if ($.inArray('bot', user.groups) === -1) {
                         if ($.inArray('bot', user.groups) === -1) {
                             if ($.inArray('rollbacker', user.groups) > -1) {
                             if ($.inArray('steward', user.groups) > -1) {
                                 rollbackers[i] = user.name;
                                 stewards[i] = user.name;
                             }
                             }
                         }
                         }
Line 324: Line 292:
                     }).done(mark));
                     }).done(mark));
                 }
                 }
                // 查询用户权限
                 $.when.apply($, promises).done(function () {
                 $.when.apply($, promises).done(function () {
                    // 消除空值
                     var filter = function(n) {
                     var filter = function(n) {
                         return n;
                         return n;
                     };
                     };
                   
                     admins = admins.filter(filter);
                     admins = admins.filter(filter);
                     rollbackers = rollbackers.filter(filter);
                     bureaucrats = bureaucrats.filter(filter);
                     patrollers = patrollers.filter(filter);
                     stewards = stewards.filter(filter);
 
                     var userlink = function(user) {
                     var userlink = function(user) {
                         var user2 = user.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&lt;');
                         var user2 = user.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&lt;');
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                         return '<br><a href="/wiki/User:' + user2 + '" target="_blank">' + user2 + '</a>&nbsp;<small style="opacity:.75;">(<a href="/wiki/User talk:' + user2 + '" target="_blank">Talk</a>)</small> ';
                     };
                     };
                   
                     if (stewards.length > 0) {
                     if (rollbackers.length > 0) {
                         var adminsstring = ['<center><p><b>Steward(s) Online:</b></p></center>'];
                         var adminsstring = ['<center><p><b>Current online rollbackers</b></p></center>'];
                         if (stewards.length > 0) {
                         if (rollbackers.length > 0) {
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + steward(s).length + ' steward(s) <br>online:');
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + rollbackers.length + ' rollbackers <br>online');
                             $.each(bureaucrats, function(i, e) {
                             $.each(rollbackers, function(i, e) {
                                 adminsstring.push(userlink(e));
                                 adminsstring.push(userlink(e));
                             });
                             });
                             adminsstring.push('</p>');
                             adminsstring.push('</p>');
                         }
                         }
                         mw.notify($(adminsstring.join('')));
                         mw.notify($(adminsstring.join('')));
                     } else {
                     } else {
                         mw.notify('Sorry! There are currently no rollbackers online.');
                         mw.notify('Sorry! There are no stewards online');
                     }
                     }
                 }).fail(function () {
                 }).fail(function () {
                     mw.notify('Error 404 - Connection not found');
                     mw.notify('Error 404');
                 });
                 });
             });
             });
         });
         });
     });
     });
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu