![]() |
VOOZH | about |
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 key and click the Reload toolbar button.
For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* MCW PATCH START */ // Remove all patches using this (single line mode) regex: // /\/\* MCW PATCH START \*\/.+?\/\* MCW PATCH END \*\/\n/gs // (I recommend just using regex101.com) /* MCW PATCH END */// User profile // <nowiki> mw.loader.using([ 'mediawiki.util', 'mediawiki.api', 'mediawiki.DateFormatter', 'mediawiki.interface.helpers.styles', 'mediawiki.codex.messagebox.styles' ]).then(function(require){ constconfig=mw.config.get([ 'wgRelevantUserName', 'wgNamespaceNumber', 'wgUserLanguage', 'wgArticleId', 'wgAction', 'wgTitle', 'wgWikiID' ]); constusername=config.wgRelevantUserName; if(!username||window.loadedHorseUserProfile)return; window.loadedHorseUserProfile=true; if(config.wgNamespaceNumber!==-1&&config.wgTitle.includes('/'))return; const{formatTimeAndDate}=require('mediawiki.DateFormatter'); constapi=newmw.Api({userAgent:'HorseUserProfile'}); if(mw.util.isIPAddress(username))api.get({ action:'query', list:['usercontribs','blocks','globalblocks'], ucuser:username, ucprop:[], uclimit:'max', bkip:username, bkprop:['user','by','timestamp','expiry','flags','reason','restrictions'], bklimit:1, bgip:username, bgprop:['target','by','timestamp','expiry','reason'], bglimit:1, formatversion:2 }).then(function(data){ leteditcount=data.query.usercontribs.length; if(data.continue&&data.continue.uccontinue)editcount=data.limits.usercontribs+'+'; constuser={ groups:['*'], editcount:editcount }; if(!data.query.globalblocks)data.query.globalblocks=[]; formatProfile(user,data.query.blocks[0],data.query.globalblocks[0]); }); elseapi.get({ action:'query', list:['users','blocks','globalblocks'/* MCW PATCH START */,'usercontribs','logevents'/* MCW PATCH END */], ususers:username, usprop:['groups','editcount','registration','emailable'], bkusers:username, bkprop:['user','by','timestamp','expiry','flags','reason','restrictions'], bklimit:1, bgtargets:username, bgprop:['target','by','timestamp','expiry','reason'], bglimit:1,/* MCW PATCH START */ ucuser:username, ucprop:['timestamp','ids'], ucdir:'newer', uclimit:1, leuser:username, leprop:['timestamp'], ledir:'newer', lelimit:1, /* MCW PATCH END */ formatversion:2 }).then(function(data){ if(!data.query.globalblocks)data.query.globalblocks=[]; formatProfile(data.query.users[0],data.query.blocks[0],data.query.globalblocks[0]/* MCW PATCH START */,data.query.usercontribs[0],data.query.logevents[0]/* MCW PATCH END */); }); if(window.loadedHorseUserProfileContribs)return; window.loadedHorseUserProfileContribs=true; if(config.wgNamespaceNumber===2&&!config.wgArticleId&&config.wgAction==='view'){ mw.loader.using(['mediawiki.pager.styles','mediawiki.special.changeslist']).then(function(){ lettext='== [[Special:Contributions/'+username+'|{{int:contributions-title|'+username+'}}]] ==\n{{Special:Contributions/'+username+'|limit=20}}'; api.parse(text,{ title:'User:'+config.wgTitle, wrapoutputclass:'horse-userprofile-contribs', disableeditsection:true, disablelimitreport:true, uselang:config.wgUserLanguage }).then(function(parsedText){ mw.hook('wikipage.content').fire( $(parsedText).appendTo('#mw-content-text') ); }); }); } functionformatProfile(user,block,gblock/* MCW PATCH START */,contrib,logevent/* MCW PATCH END */){ user.groups.splice(user.groups.indexOf('*'),1); lettext='<div class="horse-userprofile-info">'; if(user.groups.length){ constgroupList=user.groups.map(function(group){ constgrouppage='{{MediaWiki:grouppage-'+group+'}}'; return[ '{{#if: {{#ifexist:'+grouppage+'|1}}{{#ifeq:{{localurl:'+grouppage+'}}|{{fullurl:'+grouppage+'}}|1}} | [['+grouppage+'|{{int:group-'+group+'}}]] | {{int:group-'+group+'}} }}', '{{#if: {{#ifexist:'+grouppage+'|1}}{{#ifeq:{{localurl:'+grouppage+'}}|{{fullurl:'+grouppage+'}}|1}} | [['+grouppage+'|{{int:group-'+group+'-member|'+username+'}}]] | {{int:group-'+group+'-member|'+username+'}} }}' ]; }).reduce(function(prev,cur){ prev[0].push(cur[0]); prev[1].push(cur[1]); returnprev; },[[],[]]); text+='\n\n<span>{{int:prefs-memberingroups|'+user.groups.length+'|'+username+'}}</span>\t<span>{{int:prefs-memberingroups-type|'+mw.language.listToText(groupList[0])+'|'+mw.language.listToText(groupList[1])+'}}</span>'; } text+='\n\n<span>{{int:prefs-edits}}</span>\t<span>[[Special:Contribs/'+username+'|'+mw.language.convertNumber(user.editcount)+']]</span>';/* MCW PATCH START */ user.registration=[user.registration,contrib?contrib.timestamp:'',logevent?logevent.timestamp:''].filter(function(it){returnit}).sort()[0]; /* MCW PATCH END */ if(user.registration)text+='\n\n<span>{{int:prefs-registration}}</span>\t<span>'+formatTimeAndDate(newDate(user.registration))+'</span>'; // if ( user.userid && !user.emailable ) text += '\n\n<span>{{int:nowikiemailtext|'+username+'}}</span>'; text+='\n\n</div>'; if(block&&!$('.mw-warning-with-logexcerpt .mw-logevent-loglines > .mw-logline-block').length){ letnotice='blocked-notice-logextract'; if(mw.util.isIPAddress(block.user,true))notice+='-anon'; letlogentry='logentry-block-block'; constpartialBlock=[]; if(block.partial){ notice+='-partial'; logentry='logentry-partialblock-block'; if(block.restrictions.pages){ constblockpages=block.restrictions.pages.map(function(page){ return'[['+page.title+']]'; }); partialBlock.push('{{int:logentry-partialblock-block-page|'+blockpages.length+'|'+mw.language.listToText(blockpages)+'}}'); } if(block.restrictions.namespaces){ constblocknamespaces=block.restrictions.namespaces.map(function(namespace){ if(!namespace)return'[[Special:AllPages|{{int:blanknamespace}}]]'; return'[[Special:AllPages/{{ns:'+namespace+'}}:|{{ns:'+namespace+'}}]]'; }); partialBlock.push('{{int:logentry-partialblock-block-ns|'+blocknamespaces.length+'|'+mw.language.listToText(blocknamespaces)+'}}'); } if(block.restrictions.actions){ constblockactions=block.restrictions.actions.map(function(action){ return'{{int:ipb-action-'+action+'}}'; }); partialBlock.push('{{int:logentry-partialblock-block-action|'+blockactions.length+'|'+mw.language.listToText(blockactions)+'}}'); } if(!partialBlock.length)logentry='logentry-non-editing-block-block'; } constblockDate=newDate(block.timestamp); letblockexpiry='{{int:infiniteblock}}'; if(!['infinite','indefinite','infinity','never'].includes(block.expiry)){ constexpiry=newDate(block.expiry.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2,3})/,'$1-$2-$3T$4:$5:$6Z')); constduration=expiry-blockDate; letblockDuration=[]; letfactor=1000; if(duration%factor===0)blockDuration=['duration-seconds',Math.floor(duration/factor)]; factor*=60; if(duration%factor===0)blockDuration=['duration-minutes',Math.floor(duration/factor)]; factor*=60; if(duration%factor===0)blockDuration=['duration-hours',Math.floor(duration/factor)]; factor*=24; if(duration%factor===0)blockDuration=['duration-days',Math.floor(duration/factor)]; if(duration%(factor*7)===0)blockDuration=['duration-weeks',Math.floor(duration/(factor*7))]; if(duration%(factor*30)===0)blockDuration=['months',Math.floor(duration/(factor*30))]; factor*=365; if(duration%factor===0)blockDuration=['duration-years',Math.floor(duration/factor)]; if(duration%(factor*10)===0)blockDuration=['duration-decades',Math.floor(duration/(factor*10))]; if(duration%(factor*100)===0)blockDuration=['duration-centuries',Math.floor(duration/(factor*100))]; if(duration%(factor*1000)===0)blockDuration=['duration-millennia',Math.floor(duration/(factor*1000))]; if(blockDuration.length<2||blockDuration[1]>1000)blockexpiry=formatTimeAndDate(expiry); elseblockexpiry='{{int:'+blockDuration.join('|')+'}}'; } blockexpiry='<span class="blockExpiry">'+blockexpiry+'</span>'; letblockflags=''; constblockflaglist=[]; if(block.anononly)blockflaglist.push('{{int:block-log-flags-anononly}}'); if(block.nocreate)blockflaglist.push('{{int:block-log-flags-nocreate}}'); if(!block.autoblock&&!mw.util.isIPAddress(block.user,true))blockflaglist.push('{{int:block-log-flags-noautoblock}}'); if(!block.allowusertalk)blockflaglist.push('{{int:block-log-flags-nousertalk}}'); if(block.noemail)blockflaglist.push('{{int:block-log-flags-noemail}}'); if(block.hidden)blockflaglist.push('{{int:block-log-flags-hiddenname}}'); if(blockflaglist.length)blockflags='{{int:parentheses|'+blockflaglist.join(mw.msg('comma-separator'))+'}}'; letblockreason=' <span class="comment">{{int:parentheses|'+block.reason+'}}</span>'; if(!block.reason)blockreason=''; text+='<div class="horse-userprofile-block cdx-message cdx-message--block cdx-message--warning mw-warning-with-logexcerpt"><span class="cdx-message__icon"></span><div class="cdx-message__content">\n{{int:'+notice+'|'+username+'}}\n'; text+='<ul class="mw-logevent-loglines"><li class="mw-logline-block">'+formatTimeAndDate(blockDate)+' {{int:'+logentry+'|[[User:'+block.by+'|<bdi>'+block.by+'</bdi>]] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.by+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.by+'|{{int:contribslink}}]]</span></span>|'+block.by; if(mw.util.isIPAddress(block.user,true)||mw.util.isTemporaryUser(block.user))text+='|[[Special:Contribs/'+block.user+'|<bdi>'+block.user+'</bdi>]] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span></span>'; elsetext+='|[[User:'+block.user+'|<bdi>'+block.user+'</bdi>]] <span class="mw-usertoollinks mw-changeslist-links"><span>[[User talk:'+block.user+'|{{int:talkpagelinktext}}]]</span> <span>[[Special:Contribs/'+block.user+'|{{int:contribslink}}]]</span></span>'; text+='|'+block.user+'|'+blockexpiry+'|'+blockflags+'|'+mw.language.listToText(partialBlock)+'}}'+blockreason+'</li></ul></div></div>'; } if(gblock&&!$('.mw-warning-with-logexcerpt .mw-logevent-loglines + a[href*="type=gblblock"]').length){ constbyWiki={ name:gblock.bywiki, interwiki:'' }; if(gblock.bywiki.endsWith('_mcwiki'))byWiki.interwiki=gblock.bywiki.split('_')[0]; elseif(gblock.bywiki==='en_mcmetawiki')byWiki.interwiki='meta'; if(byWiki.interwiki){ byWiki.name=byWiki.interwiki+'.minecraft.wiki'; byWiki.interwiki+=':'; } if(gblock.bywiki===config.wgWikiID)byWiki.interwiki=''; constnotice='globalblocking-contribs-notice'; constlogentry='globalblocking-contribs-mock-log-line'; constblockUser='{{int:globalblocking-list-table-cell-by|[[:'+byWiki.interwiki+'User:'+gblock.by+'|<bdi>'+gblock.by+'</bdi>]]|'+byWiki.name+'}}'; constblockDate=newDate(gblock.timestamp); letblockexpiry='{{int:infiniteblock}}'; if(!['infinite','indefinite','infinity','never'].includes(gblock.expiry)){ constexpiry=newDate(gblock.expiry.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2,3})/,'$1-$2-$3T$4:$5:$6Z')); constduration=expiry-blockDate; letblockDuration=[]; letfactor=1000; if(duration%factor===0)blockDuration=['duration-seconds',Math.floor(duration/factor)]; factor*=60; if(duration%factor===0)blockDuration=['duration-minutes',Math.floor(duration/factor)]; factor*=60; if(duration%factor===0)blockDuration=['duration-hours',Math.floor(duration/factor)]; factor*=24; if(duration%factor===0)blockDuration=['duration-days',Math.floor(duration/factor)]; if(duration%(factor*7)===0)blockDuration=['duration-weeks',Math.floor(duration/(factor*7))]; if(duration%(factor*30)===0)blockDuration=['months',Math.floor(duration/(factor*30))]; factor*=365; if(duration%factor===0)blockDuration=['duration-years',Math.floor(duration/factor)]; if(duration%(factor*10)===0)blockDuration=['duration-decades',Math.floor(duration/(factor*10))]; if(duration%(factor*100)===0)blockDuration=['duration-centuries',Math.floor(duration/(factor*100))]; if(duration%(factor*1000)===0)blockDuration=['duration-millennia',Math.floor(duration/(factor*1000))]; if(blockDuration.length<2||blockDuration[1]>1000)blockexpiry=formatTimeAndDate(expiry); elseblockexpiry='{{int:'+blockDuration.join('|')+'}}'; } blockexpiry='<span class="blockExpiry">'+blockexpiry+'</span>'; letblockflags=''; constblockflaglist=[]; if(gblock.anononly)blockflaglist.push('{{int:globalblocking-list-anononly}}'); if(gblock['account-creation-disabled'])blockflaglist.push('{{int:globalblocking-block-flag-account-creation-disabled}}'); if(blockflaglist.length)blockflags='{{int:parentheses|'+blockflaglist.join(mw.msg('comma-separator'))+'}}'; letblockreason='<span class="comment">{{int:parentheses|'+gblock.reason+'}}</span>'; if(!gblock.reason)blockreason=''; text+='<div class="horse-userprofile-block cdx-message cdx-message--block cdx-message--warning mw-warning-with-logexcerpt"><span class="cdx-message__icon"></span><div class="cdx-message__content">\n{{int:'+notice+'|'+username+'}}\n'; text+='<ul class="mw-logevent-loglines"><li>{{int:'+logentry+'|'+formatTimeAndDate(blockDate)+'|'+gblock.by+'|'+blockUser+'|'+gblock.target; if(mw.util.isIPAddress(gblock.target,true)||mw.util.isTemporaryUser(gblock.target))text+='|[[Special:Contribs/'+gblock.target+'|<bdi>'+gblock.target+'</bdi>]] <span class="mw-usertoollinks">{{int:parentheses|[[User talk:'+gblock.target+'|{{int:talkpagelinktext}}]]}}</span>'; elsetext+='|[[User:'+gblock.target+'|<bdi>'+gblock.target+'</bdi>]] <span class="mw-usertoollinks">{{int:parentheses|[[User talk:'+gblock.target+'|{{int:talkpagelinktext}}]]<nowiki> | </nowiki>[[Special:Contribs/'+gblock.target+'|{{int:contribslink}}]]}}</span>'; text+='|'+blockexpiry+'|'+blockflags+'|'+blockreason+'|}}</li></ul></div></div>'; } api.parse('<div class="cdx-message__content">'+text+'</div>',{ disablelimitreport:true, wrapoutputclass:'horse-userprofile mw-message-box cdx-message mw-content-'+($('#mw-content-subtitle').attr('dir')||'ltr'), uselang:config.wgUserLanguage }).then(function(parsedText){ parsedText=parsedText.replace(/\u29FCgroup-([^\u29FC\u29FD]+?)(?:-member)?\u29FD/g,'$1'); mw.hook('wikipage.content').fire( $(parsedText).insertAfter('#mw-content-subtitle') ); }); } }); // </nowiki>