From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/* If you want to use this script, simply add the following line to your monobook.js:



importScript('User:Anomie/useridentifier.js'); // Linkback: [[User:Anomie/useridentifier.js]]



* (Please keep the comment so I can see how many people use this).

*/



var UserIdentifier={

    images:{

        '**':'//upload.wikimedia.org/wikipedia/commons/thumb/7/77/Wikipedia_svg_logo.svg/20px-Wikipedia_svg_logo.svg.png',

        'bot':'//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Crystal_Clear_action_run.png/20px-Crystal_Clear_action_run.png',

        'sysop':'//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Mop.svg/20px-Mop.svg.png',

        'bureaucrat':'//upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Human-preferences-desktop.svg/20px-Human-preferences-desktop.svg.png',

        'checkuser':'//upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Gnome-searchtool.svg/20px-Gnome-searchtool.svg.png',

        'reviewer':'//upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Wikipedia_Reviewer.svg/20px-Wikipedia_Reviewer.svg.png',

        'accountcreator':'//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Wikipedia_Accountcreators_v2.svg/20px-Wikipedia_Accountcreators_v2.svg.png',

        'suppress':'//upload.wikimedia.org/wikipedia/commons/thumb/0/06/Oversight_logo.png/20px-Oversight_logo.png',

        'rollbacker':'//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikipedia_Rollback.svg/20px-Wikipedia_Rollback.svg.png',

        'filemover':'//upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Wikipedia_File_mover.svg/20px-Wikipedia_File_mover.svg.png',

        'autoreviewer':'//upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Wikipedia_Autopatrolled.svg/20px-Wikipedia_Autopatrolled.svg.png',

        'abusefilter':'//upload.wikimedia.org/wikipedia/commons/thumb/6/64/Wikipedia-Crystal_clear-advancedsetting.png/20px-Wikipedia-Crystal_clear-advancedsetting.png',

        'templateeditor':'//upload.wikimedia.org/wikipedia/commons/thumb/4/41/Wikipedia_Template_editor_icon_%281%29.svg/20px-Wikipedia_Template_editor_icon_%281%29.svg.png',

        'massmessage-sender':'//upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Wikipedia_mass_messenger.svg/20px-Wikipedia_mass_messenger.svg.png',

        'extendedmover':'//upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Wikipedia_page_mover.svg/20px-Wikipedia_page_mover.svg.png',

        'patroller':'//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Wikipedia_New_page_reviewer.svg/20px-Wikipedia_New_page_reviewer.svg.png',

        'eventcoordinator': '//upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Wikipedia_Event_coordinator.svg/20px-Wikipedia_Event_coordinator.svg.png',

        'interface-admin': '//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Wikipedia_Interface_administrator.svg/20px-Wikipedia_Interface_administrator.svg.png'

    },

    gimages:{

        'steward':'//upload.wikimedia.org/wikipedia/commons/thumb/7/75/Wikimedia_Community_Logo.svg/20px-Wikimedia_Community_Logo.svg.png',

        'Global_rollback': '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Meta-Wiki_Global_rollback-2000px.png/20px-Meta-Wiki_Global_rollback-2000px.png',

        'global-rollbacker': '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Meta-Wiki_Global_rollback-2000px.png/20px-Meta-Wiki_Global_rollback-2000px.png',

        'global-sysop' : '//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Meta-Wiki_Global_sysop-2000px.png/20px-Meta-Wiki_Global_sysop-2000px.png',

        'Global_sysops' : '//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Meta-Wiki_Global_sysop-2000px.png/20px-Meta-Wiki_Global_sysop-2000px.png'

    },



    make_callback:function(name){

        var users=null;

        var globaluserinfo=null;

        var lastedit=null;

        return function(r){

            if(!r.query) {

                mw.log.error('Bad response');

                return;

            }

            if(r.query.users){

                if(r.query.users.length!=1) {

                    mw.log.error('Bad response');

                    return;

                }

                users=r.query.users0];

            }

            if(r.query.usercontribs){

                lastedit=r.query.usercontribs.length?r.query.usercontribs0].timestamp:'never';

            }

            if(r.query.globaluserinfo){

                globaluserinfo=r.query.globaluserinfo;

            }

            if(!users || !globaluserinfo || !lastedit) return;

            r=users;

            if(r.name!=name) return;

            r.emailable=(typeof(r.emailable)!='undefined');

            var d=document.createElement('DIV');

            var d2=document.createElement('DIV');

            d2.style.display='inline-block';

            d2.style.styleFloat='left';

            d2.style.overflow='visible';

            d2.style.cursor='pointer';

            d2.className='metadata';

            d2.title='Registered: '+r.registration+'\nLast edit: '+lastedit+'\nEdits: '+r.editcount+'\nEmailable: '+(r.emailable?'yes':'no')+'\nGender: '+r.gender;

            d2.onclick=function(){ d.style.display=d.style.display?'':'none'; };

            d.style.display='none';

            d.style.position='absolute';

            d.style.background='#eef';

            d.style.border='1px solid black';

            d.style.padding='3px';

            d.style.zIndex=1000;

            d.appendChild(document.createTextNode('Registered: '+r.registration));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Last edit: '+lastedit));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Edits: '+r.editcount));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Emailable: '+(r.emailable?'yes':'no')));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Gender: '+r.gender));

            if(r.groups && r.groups.length>0){

                d.appendChild(document.createElement('BR'));

                d.appendChild(document.createTextNode('Groups: '+r.groups.join(', ')));

                for(var j=r.groups.length-1; j>=0; j--){

                    if(UserIdentifier.imagesr.groupsj]]){

                        var i=document.createElement('IMG');

                        i.src=UserIdentifier.imagesr.groupsj]];

                        i.width=20;

                        i.height=20;

                        i.style.cursor='pointer';

                        i.title=r.groupsj];

                        d2.appendChild(i);

                    }

                }

                d2.title+='\nGroups: '+r.groups.join(', ');

            }

            if(globaluserinfo.groups && globaluserinfo.groups.length>0){

                d.appendChild(document.createElement('BR'));

                d.appendChild(document.createTextNode('Global groups: '+globaluserinfo.groups.join(', ')));

                for(var j=globaluserinfo.groups.length-1; j>=0; j--){

                    if(UserIdentifier.gimagesglobaluserinfo.groupsj]]){

                        var i=document.createElement('IMG');

                        i.src=UserIdentifier.gimagesglobaluserinfo.groupsj]];

                        i.width=20;

                        i.height=20;

                        i.style.cursor='pointer';

                        i.title=globaluserinfo.groupsj];

                        d2.appendChild(i);

                    }

                }

                d2.title+='\nGlobal groups: '+globaluserinfo.groups.join(', ');

            }

            if(!d2.firstChild){

                var i=document.createElement('IMG');

                i.src=UserIdentifier.images'**'];

                i.width=20;

                i.height=20;

                i.style.cursor='pointer';

                d2.appendChild(i);

            }

            var i=document.createElement('SPAN');

            i.style.fontSize='16px';

            if(r.gender=='male'){

                i.appendChild(document.createTextNode('♂'));

                i.style.color='#89CFF0';

            } else if(r.gender=='female'){

                i.appendChild(document.createTextNode('♀'));

                i.style.color='#F4C2C2';

            }

            if(i.firstChild) d2.insertBefore(i, d2.firstChild);

            d.onclick=function(){ d.style.display='none'; };

            var h=document.getElementById('firstHeading');

            h.insertBefore(d2,h.firstChild);

            // Sigh, vector 2022 is complicated. This is the best place I could find to insert it without having to override all the fonts and everything.

            var hi=document.querySelector('.vector-page-toolbar');

            if(hi){

                hi.insertBefore(d,hi.firstChild);

            } else {

                h.parentNode.insertBefore(d,h.nextSibling);

            }

            if(window.CascadeTopicons) CascadeTopicons();

        };

    },



    IDUser:function(name){

        mw.loader.using('mediawiki.util', function(){

            name = decodeURIComponent(name).replace(/_/g, ' ');

            var cb=UserIdentifier.make_callback(name);

            $.ajax({

                url:mw.util.wikiScript('api'),

                dataType:'json',

                type:'POST',

                data:{

                    format:'json',

                    action:'query',

                    list:'users',

                    ususers:name,

                    usprop:'editcount|groups|registration|emailable|gender',

                    meta:'globaluserinfo',

                    guiuser:name,

                    guiprop:'groups'

                },

                success:cb,

                error:function(xhr,textStatus,errorThrown){

                    throw new Error('AJAX error: '+textStatus+' '+errorThrown);

                }

            });

            $.ajax({

                url:mw.util.wikiScript('api'),

                dataType:'json',

                type:'POST',

                data:{

                    format:'json',

                    action:'query',

                    list:'usercontribs',

                    ucuser:name,

                    ucprop:'timestamp',

                    uclimit:1

                },

                success:cb,

                error:function(xhr,textStatus,errorThrown){

                    throw new Error('AJAX error: '+textStatus+' '+errorThrown);

                }

            });

            mw.util.addPortletLink('p-cactions',mw.util.wikiScript()+'?title=Special%3AContributions&target='+encodeURIComponent(name),'Contribs');

            mw.util.addPortletLink('p-cactions',mw.util.wikiScript()+'?title=Special%3ACentralAuth/'+encodeURIComponent(name),'SUL');

        });

    },

 

    onLoad:function(){

        if(mw.config.get('wgNamespaceNumber')==2 || mw.config.get('wgNamespaceNumber')==3){ 

            var u=mw.config.get('wgTitle');

            var i=u.indexOf('/');

            if(i>0) u=u.substr(0,i);

            UserIdentifier.IDUser(u);

        } else if(mw.config.get('wgCanonicalNamespace')=='Special' && mw.config.get('wgCanonicalSpecialPageName')=='Contributions'){

            var a=document.querySelector( '#contentSub a' );

            if(!a) return;

            var u=a.href.match(/\/wiki\/User:([^\/]+)/);

            if(u) UserIdentifier.IDUser(u1]);

            u=a.href.match(/[?&]title=User:([^&]+)/);

            if(u) UserIdentifier.IDUser(u1]);

        } else if(mw.config.get('wgCanonicalNamespace')=='Special' && mw.config.get('wgCanonicalSpecialPageName')=='Log'){

            var u='', $('#mw-input-user input')[0].defaultValue];

            if(!u1]) u=$('#mw-input-page input')[0].defaultValue.match(/^User:([^\/]+)/);

            if(u) UserIdentifier.IDUser(u1]);

        }

    }

};



$(document).ready(UserIdentifier.onLoad);
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/* If you want to use this script, simply add the following line to your monobook.js:



importScript('User:Anomie/useridentifier.js'); // Linkback: [[User:Anomie/useridentifier.js]]



* (Please keep the comment so I can see how many people use this).

*/



var UserIdentifier={

    images:{

        '**':'//upload.wikimedia.org/wikipedia/commons/thumb/7/77/Wikipedia_svg_logo.svg/20px-Wikipedia_svg_logo.svg.png',

        'bot':'//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Crystal_Clear_action_run.png/20px-Crystal_Clear_action_run.png',

        'sysop':'//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Mop.svg/20px-Mop.svg.png',

        'bureaucrat':'//upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Human-preferences-desktop.svg/20px-Human-preferences-desktop.svg.png',

        'checkuser':'//upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Gnome-searchtool.svg/20px-Gnome-searchtool.svg.png',

        'reviewer':'//upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Wikipedia_Reviewer.svg/20px-Wikipedia_Reviewer.svg.png',

        'accountcreator':'//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Wikipedia_Accountcreators_v2.svg/20px-Wikipedia_Accountcreators_v2.svg.png',

        'suppress':'//upload.wikimedia.org/wikipedia/commons/thumb/0/06/Oversight_logo.png/20px-Oversight_logo.png',

        'rollbacker':'//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikipedia_Rollback.svg/20px-Wikipedia_Rollback.svg.png',

        'filemover':'//upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Wikipedia_File_mover.svg/20px-Wikipedia_File_mover.svg.png',

        'autoreviewer':'//upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Wikipedia_Autopatrolled.svg/20px-Wikipedia_Autopatrolled.svg.png',

        'abusefilter':'//upload.wikimedia.org/wikipedia/commons/thumb/6/64/Wikipedia-Crystal_clear-advancedsetting.png/20px-Wikipedia-Crystal_clear-advancedsetting.png',

        'templateeditor':'//upload.wikimedia.org/wikipedia/commons/thumb/4/41/Wikipedia_Template_editor_icon_%281%29.svg/20px-Wikipedia_Template_editor_icon_%281%29.svg.png',

        'massmessage-sender':'//upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Wikipedia_mass_messenger.svg/20px-Wikipedia_mass_messenger.svg.png',

        'extendedmover':'//upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Wikipedia_page_mover.svg/20px-Wikipedia_page_mover.svg.png',

        'patroller':'//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Wikipedia_New_page_reviewer.svg/20px-Wikipedia_New_page_reviewer.svg.png',

        'eventcoordinator': '//upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Wikipedia_Event_coordinator.svg/20px-Wikipedia_Event_coordinator.svg.png',

        'interface-admin': '//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Wikipedia_Interface_administrator.svg/20px-Wikipedia_Interface_administrator.svg.png'

    },

    gimages:{

        'steward':'//upload.wikimedia.org/wikipedia/commons/thumb/7/75/Wikimedia_Community_Logo.svg/20px-Wikimedia_Community_Logo.svg.png',

        'Global_rollback': '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Meta-Wiki_Global_rollback-2000px.png/20px-Meta-Wiki_Global_rollback-2000px.png',

        'global-rollbacker': '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Meta-Wiki_Global_rollback-2000px.png/20px-Meta-Wiki_Global_rollback-2000px.png',

        'global-sysop' : '//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Meta-Wiki_Global_sysop-2000px.png/20px-Meta-Wiki_Global_sysop-2000px.png',

        'Global_sysops' : '//upload.wikimedia.org/wikipedia/commons/thumb/5/57/Meta-Wiki_Global_sysop-2000px.png/20px-Meta-Wiki_Global_sysop-2000px.png'

    },



    make_callback:function(name){

        var users=null;

        var globaluserinfo=null;

        var lastedit=null;

        return function(r){

            if(!r.query) {

                mw.log.error('Bad response');

                return;

            }

            if(r.query.users){

                if(r.query.users.length!=1) {

                    mw.log.error('Bad response');

                    return;

                }

                users=r.query.users0];

            }

            if(r.query.usercontribs){

                lastedit=r.query.usercontribs.length?r.query.usercontribs0].timestamp:'never';

            }

            if(r.query.globaluserinfo){

                globaluserinfo=r.query.globaluserinfo;

            }

            if(!users || !globaluserinfo || !lastedit) return;

            r=users;

            if(r.name!=name) return;

            r.emailable=(typeof(r.emailable)!='undefined');

            var d=document.createElement('DIV');

            var d2=document.createElement('DIV');

            d2.style.display='inline-block';

            d2.style.styleFloat='left';

            d2.style.overflow='visible';

            d2.style.cursor='pointer';

            d2.className='metadata';

            d2.title='Registered: '+r.registration+'\nLast edit: '+lastedit+'\nEdits: '+r.editcount+'\nEmailable: '+(r.emailable?'yes':'no')+'\nGender: '+r.gender;

            d2.onclick=function(){ d.style.display=d.style.display?'':'none'; };

            d.style.display='none';

            d.style.position='absolute';

            d.style.background='#eef';

            d.style.border='1px solid black';

            d.style.padding='3px';

            d.style.zIndex=1000;

            d.appendChild(document.createTextNode('Registered: '+r.registration));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Last edit: '+lastedit));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Edits: '+r.editcount));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Emailable: '+(r.emailable?'yes':'no')));

            d.appendChild(document.createElement('BR'));

            d.appendChild(document.createTextNode('Gender: '+r.gender));

            if(r.groups && r.groups.length>0){

                d.appendChild(document.createElement('BR'));

                d.appendChild(document.createTextNode('Groups: '+r.groups.join(', ')));

                for(var j=r.groups.length-1; j>=0; j--){

                    if(UserIdentifier.imagesr.groupsj]]){

                        var i=document.createElement('IMG');

                        i.src=UserIdentifier.imagesr.groupsj]];

                        i.width=20;

                        i.height=20;

                        i.style.cursor='pointer';

                        i.title=r.groupsj];

                        d2.appendChild(i);

                    }

                }

                d2.title+='\nGroups: '+r.groups.join(', ');

            }

            if(globaluserinfo.groups && globaluserinfo.groups.length>0){

                d.appendChild(document.createElement('BR'));

                d.appendChild(document.createTextNode('Global groups: '+globaluserinfo.groups.join(', ')));

                for(var j=globaluserinfo.groups.length-1; j>=0; j--){

                    if(UserIdentifier.gimagesglobaluserinfo.groupsj]]){

                        var i=document.createElement('IMG');

                        i.src=UserIdentifier.gimagesglobaluserinfo.groupsj]];

                        i.width=20;

                        i.height=20;

                        i.style.cursor='pointer';

                        i.title=globaluserinfo.groupsj];

                        d2.appendChild(i);

                    }

                }

                d2.title+='\nGlobal groups: '+globaluserinfo.groups.join(', ');

            }

            if(!d2.firstChild){

                var i=document.createElement('IMG');

                i.src=UserIdentifier.images'**'];

                i.width=20;

                i.height=20;

                i.style.cursor='pointer';

                d2.appendChild(i);

            }

            var i=document.createElement('SPAN');

            i.style.fontSize='16px';

            if(r.gender=='male'){

                i.appendChild(document.createTextNode('♂'));

                i.style.color='#89CFF0';

            } else if(r.gender=='female'){

                i.appendChild(document.createTextNode('♀'));

                i.style.color='#F4C2C2';

            }

            if(i.firstChild) d2.insertBefore(i, d2.firstChild);

            d.onclick=function(){ d.style.display='none'; };

            var h=document.getElementById('firstHeading');

            h.insertBefore(d2,h.firstChild);

            // Sigh, vector 2022 is complicated. This is the best place I could find to insert it without having to override all the fonts and everything.

            var hi=document.querySelector('.vector-page-toolbar');

            if(hi){

                hi.insertBefore(d,hi.firstChild);

            } else {

                h.parentNode.insertBefore(d,h.nextSibling);

            }

            if(window.CascadeTopicons) CascadeTopicons();

        };

    },



    IDUser:function(name){

        mw.loader.using('mediawiki.util', function(){

            name = decodeURIComponent(name).replace(/_/g, ' ');

            var cb=UserIdentifier.make_callback(name);

            $.ajax({

                url:mw.util.wikiScript('api'),

                dataType:'json',

                type:'POST',

                data:{

                    format:'json',

                    action:'query',

                    list:'users',

                    ususers:name,

                    usprop:'editcount|groups|registration|emailable|gender',

                    meta:'globaluserinfo',

                    guiuser:name,

                    guiprop:'groups'

                },

                success:cb,

                error:function(xhr,textStatus,errorThrown){

                    throw new Error('AJAX error: '+textStatus+' '+errorThrown);

                }

            });

            $.ajax({

                url:mw.util.wikiScript('api'),

                dataType:'json',

                type:'POST',

                data:{

                    format:'json',

                    action:'query',

                    list:'usercontribs',

                    ucuser:name,

                    ucprop:'timestamp',

                    uclimit:1

                },

                success:cb,

                error:function(xhr,textStatus,errorThrown){

                    throw new Error('AJAX error: '+textStatus+' '+errorThrown);

                }

            });

            mw.util.addPortletLink('p-cactions',mw.util.wikiScript()+'?title=Special%3AContributions&target='+encodeURIComponent(name),'Contribs');

            mw.util.addPortletLink('p-cactions',mw.util.wikiScript()+'?title=Special%3ACentralAuth/'+encodeURIComponent(name),'SUL');

        });

    },

 

    onLoad:function(){

        if(mw.config.get('wgNamespaceNumber')==2 || mw.config.get('wgNamespaceNumber')==3){ 

            var u=mw.config.get('wgTitle');

            var i=u.indexOf('/');

            if(i>0) u=u.substr(0,i);

            UserIdentifier.IDUser(u);

        } else if(mw.config.get('wgCanonicalNamespace')=='Special' && mw.config.get('wgCanonicalSpecialPageName')=='Contributions'){

            var a=document.querySelector( '#contentSub a' );

            if(!a) return;

            var u=a.href.match(/\/wiki\/User:([^\/]+)/);

            if(u) UserIdentifier.IDUser(u1]);

            u=a.href.match(/[?&]title=User:([^&]+)/);

            if(u) UserIdentifier.IDUser(u1]);

        } else if(mw.config.get('wgCanonicalNamespace')=='Special' && mw.config.get('wgCanonicalSpecialPageName')=='Log'){

            var u='', $('#mw-input-user input')[0].defaultValue];

            if(!u1]) u=$('#mw-input-page input')[0].defaultValue.match(/^User:([^\/]+)/);

            if(u) UserIdentifier.IDUser(u1]);

        }

    }

};



$(document).ready(UserIdentifier.onLoad);

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook