MediaWiki:Gadget-OnlineAdmins.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Shortening code)
No edit summary
Line 22: Line 22:
         var usersExt = [];
         var usersExt = [];
         admins = [];
         admins = [];
         // Recent edits within 15 minutes
         // Recent edits within 15 minutes
         time = new Date();
         time = new Date();
Line 58: Line 57:
                 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 63:
                 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 79:
                     }).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 88:
                         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 Admins</b></p></center>'];
Line 115: Line 108:
         });
         });
     });
     });
// Only Support Chinese Wikipedia Currently.
// Create portlet link
// Create portlet link
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
Line 199: Line 191:
                     }).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);
                     rollbackers = rollbackers.filter(filter);
                     patrollers = patrollers.filter(filter);
                     patrollers = patrollers.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 (patrollers.length > 0) {
                     if (patrollers.length > 0) {
                         var adminsstring = ['<center><p><b>Online Patrollers</b></p></center>'];
                         var adminsstring = ['<center><p><b>Patrollers Online:</b></p></center>'];
                       
                         if (patrollers.length > 0) {
                         if (patrollers.length > 0) {
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + patrollers.length + ' patrollers <br>online:');
                             adminsstring.push('<p style="word-break:break-all;">There are currently ' + patrollers.length + ' patrollers <br>online:');
Line 228: Line 213:
                         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 patrollers online');
                     }
                     }
                 }).fail(function () {
                 }).fail(function () {
Line 236: Line 221:
         });
         });
     });
     });
// Only Support Chinese Wikipedia Currently.
// Create portlet link
// Create portlet link
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
Line 259: Line 243:
         var usersExt = [];
         var usersExt = [];
         rollbackers = [];
         rollbackers = [];
        // 最近更改30分钟内的编辑用户
         time = new Date();
         time = new Date();
         rcstart = time.toISOString();
         rcstart = time.toISOString();
         time.setMinutes(time.getMinutes() - 15);
         time.setMinutes(time.getMinutes() - 15);
         rcend = time.toISOString();
         rcend = time.toISOString();
         //API:RecentChanges
         //API:RecentChanges
         api.get({
         api.get({
Line 294: Line 275:


                 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('rollbacker', user.groups) > -1) {
Line 318: Line 295:
                     }).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);
                     rollbackers = rollbackers.filter(filter);
                     patrollers = patrollers.filter(filter);
                     patrollers = patrollers.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 (rollbackers.length > 0) {
                     if (rollbackers.length > 0) {
                         var adminsstring = ['<center><p><b>Current online rollbackers</b></p></center>'];
                         var adminsstring = ['<center><p><b>Current online rollbackers</b></p></center>'];
Line 344: Line 315:
                             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 currently no rollbackers.');
                     }
                     }
                 }).fail(function () {
                 }).fail(function () {
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu