VOOZH about

URL: https://minecraft.wiki/w/MediaWiki:Gadget-UserProfile.js

⇱ MediaWiki:Gadget-UserProfile.js – Minecraft Wiki


MediaWiki:Gadget-UserProfile.js

From Minecraft Wiki
Jump to navigation Jump to search
In other languages

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>
Retrieved from "https://minecraft.wiki/w/MediaWiki:Gadget-UserProfile.js?oldid=3602666"

Navigation menu