Pengguna:Iwan Novirion/userinfo.js: Perbedaan antara revisi
Tampilan
Konten dihapus Konten ditambahkan
Mengembalikan ke revisi 6584548 bertanggal 2013-03-31 14:33:56 oleh Iwan Novirion menggunakan popups |
tes |
||
Baris 4: | Baris 4: | ||
* inspired from [[:en:User:PleaseStand/User info]] by PleaseStand (taken also some code, Thanks!) |
* inspired from [[:en:User:PleaseStand/User info]] by PleaseStand (taken also some code, Thanks!) |
||
* translate to Indonesian [[:id:User:Iwan_Novirion/userinfo.js]] |
* translate to Indonesian [[:id:User:Iwan_Novirion/userinfo.js]] |
||
*/ |
|||
$(document).ready(function(){ |
$(document).ready(function(){ |
||
if((wgNamespaceNumber!=2&&wgNamespaceNumber!=3)||(/\//.test(wgTitle))) return; |
if((wgNamespaceNumber!=2&&wgNamespaceNumber!=3)||(/\//.test(wgTitle))) return; |
||
var user=wgTitle.split("/")[0]; |
var user=wgTitle.split("/")[0]; |
||
var siteData=wgServer.replace(/^\/\/(.+)$/,"$1").split(".").slice(-3,2); |
var siteData=wgServer.replace(/^\/\/(.+)$/,"$1").split(".").slice(-3,2); |
||
$. |
$.post( |
||
mw.util.wikiScript("api"), |
mw.util.wikiScript("api"), |
||
{ |
{ |
||
Baris 16: | Baris 15: | ||
meta:"allmessages", |
meta:"allmessages", |
||
amlang:wgUserLanguage, |
amlang:wgUserLanguage, |
||
ammessages:[ |
|||
ammessages:"ago|usereditcount|duration-seconds|duration-minutes|duration-hours|duration-days|duration-weeks|months|duration-years" |
|||
"ago", |
|||
"just-now", |
|||
"usereditcount", |
|||
"seconds", |
|||
"minutes", |
|||
"hours", |
|||
"days", |
|||
"weeks", |
|||
"months", |
|||
"years" |
|||
].concat( |
|||
$.map([ |
|||
"API_High_Limit_Requestor", |
|||
"Ex_Administrator", |
|||
"Ex_Bureaucrat", |
|||
"Global_bot", |
|||
"Global_rollback", |
|||
"Global_sysops", |
|||
"Image-reviewer", |
|||
"Indic_Bots", |
|||
"New_wikis_importer", |
|||
"OTRS", |
|||
"OTRS-member", |
|||
"Ombudsmen", |
|||
"Staff", |
|||
"abusefilter", |
|||
"accountcreator", |
|||
"arbcom", |
|||
"autoconfirmed", |
|||
"autopatrolled", |
|||
"autoreview", |
|||
"autoreviewer", |
|||
"bigexport", |
|||
"bot", |
|||
"botadmin", |
|||
"bureaucrat", |
|||
"centralnoticeadmin", |
|||
"checkuser", |
|||
"coder", |
|||
"confirmed", |
|||
"editinterface", |
|||
"editor", |
|||
"editprotected", |
|||
"eliminator", |
|||
"epcampus", |
|||
"epcoordinator", |
|||
"epinstructor", |
|||
"eponline", |
|||
"filemover", |
|||
"flood", |
|||
"founder", |
|||
"global-ipblock-exempt", |
|||
"import", |
|||
"inactive", |
|||
"interface_editor", |
|||
"ipblock-exempt", |
|||
"oversight", |
|||
"patroller", |
|||
"recursive-export", |
|||
"researcher", |
|||
"reviewer", |
|||
"rollbacker", |
|||
"steward", |
|||
"suppress", |
|||
"svnadmins", |
|||
"sysadmin", |
|||
"sysop", |
|||
"test-sysop", |
|||
"translate-proofr", |
|||
"translationadmin", |
|||
"transwiki", |
|||
"trusted", |
|||
"upwizcampeditors", |
|||
"user" |
|||
], |
|||
function(e){ |
|||
return "group-"+e+"-member"; |
|||
}) |
|||
).join("|") |
|||
}, |
}, |
||
function(seujnyvukesrn){ |
function(seujnyvukesrn){ |
||
Baris 31: | Baris 109: | ||
var dateDiff=function(date,precision){// state-of-the-art function for date differences! |
var dateDiff=function(date,precision){// state-of-the-art function for date differences! |
||
var labels=[ |
var labels=[ |
||
messages[" |
messages["years"], |
||
messages["months"], |
messages["months"], |
||
messages[" |
messages["weeks"], |
||
messages[" |
messages["days"], |
||
messages[" |
messages["hours"], |
||
messages[" |
messages["minutes"], |
||
messages[" |
messages["seconds"] |
||
]; |
]; |
||
var mult=[12,4.34,7,24,60,60,1000]; |
var mult=[12,4.34,7,24,60,60,1000]; |
||
Baris 56: | Baris 134: | ||
} |
} |
||
}); |
}); |
||
return prettyJoin(message); |
return message.length>0?messages.ago.replace(/\$1/g,prettyJoin(message)):messages["just-now"]; |
||
}; |
}; |
||
var prettyJoin=function(array){ |
var prettyJoin=function(array){ |
||
Baris 65: | Baris 143: | ||
default:return array.slice(0,-1).join(", ")+", dan "+array[array.length-1];break; |
default:return array.slice(0,-1).join(", ")+", dan "+array[array.length-1];break; |
||
} |
} |
||
}; |
|||
var friendlyGroups={ |
|||
// Exclude implicit user group information provided by MW 1.17 --PS 2010-02-17 |
|||
sysop:"pengurus", |
|||
accountcreator:"account creator", |
|||
"import":"importer", |
|||
transwiki:"transwiki importer", |
|||
"ipblock-exempt":"pengecualian IP", |
|||
oversight:"pengawas", |
|||
confirmed:"confirmed user", |
|||
abusefilter:"edit filter manager", |
|||
autoreviewer:"autopatrolled user" |
|||
}; |
}; |
||
$.getJSON( |
$.getJSON( |
||
Baris 97: | Baris 163: | ||
if(typeof(user.missing)!="undefined"||typeof(user.invalid)!="undefined"){ |
if(typeof(user.missing)!="undefined"||typeof(user.invalid)!="undefined"){ |
||
// invalid/anonymous user |
// invalid/anonymous user |
||
if(mw.util.isIPv4Address(user.name)) userDesc=" |
if(mw.util.isIPv4Address(user.name)) userDesc="anonymous IPv4 user"; |
||
else if(mw.util.isIPv6Address(user.name)) userDesc=" |
else if(mw.util.isIPv6Address(user.name)) userDesc="anonymous IPv6 user"; |
||
else userDesc="unspecified user"; |
else userDesc="unspecified user"; |
||
userDesc="A"+(/^[aeio]/i.test(userDesc)?"n":"")+" "+userDesc; |
userDesc="A"+(/^[aeio]/i.test(userDesc)?"n":"")+" "+userDesc; |
||
Baris 104: | Baris 170: | ||
else{ |
else{ |
||
var gender=typeof(user.gender)!="undefined"?user.gender:""; |
var gender=typeof(user.gender)!="undefined"?user.gender:""; |
||
$.each(seujnyvukesrn.query.allmessages,function(i,e){ |
|||
if(e["*"].indexOf("{{GENDER")===-1||e["*"].indexOf("{{PLURAL")!=-1) return; |
|||
var s=e["*"].match(/^(.*)\{\{GENDER: ?\$1\|([^\|]*)(\|([^\|]*))?(\|([^\|]*))?\}\}(.*)$/).slice(1); |
|||
s.splice(2,1); |
|||
s.splice(3,1); |
|||
var g=(gender==="male"&&typeof s[1]!="undefined"?s[1]:(gender==="female"&&typeof s[2]!="undefined"?s[2]:"")); |
|||
if(g==="") g=typeof s[3]!="undefined"?s[3]:s[1]; |
|||
s=s[0]+g+s[4]; |
|||
messages[e.name]=s; |
|||
}); |
|||
var groups=$.map( |
var groups=$.map( |
||
$(user.groups).not(["*","user","autoconfirmed"]), |
$(user.groups).not(["*","user","autoconfirmed"]), |
||
function(e){ |
function(e){ |
||
return ( |
return (typeof messages["group-"+e+"-member"]!="undefined"?messages["group-"+e+"-member"]:e); |
||
} |
} |
||
); |
); |
||
var userDesc=groups.length>0?prettyJoin(groups):" |
var userDesc=groups.length>0?prettyJoin(groups):(typeof user.blockedby!="undefined"?"user":"registered user"); |
||
if(typeof |
if(typeof user.blockedby!="undefined"){ |
||
userDesc=$("<span>").append("A ") |
userDesc=$("<span>").append("A ") |
||
.append( |
.append( |
||
Baris 117: | Baris 193: | ||
.text("blocked") |
.text("blocked") |
||
.attr("href",mw.util.wikiGetlink("Special:Log")+"?type=block&page="+user.name) |
.attr("href",mw.util.wikiGetlink("Special:Log")+"?type=block&page="+user.name) |
||
.html() |
|||
).append(" "+userDesc); |
).append(" "+userDesc); |
||
} |
} |
||
Baris 123: | Baris 198: | ||
var regDate=new Date(user.registration); |
var regDate=new Date(user.registration); |
||
if(user.registration==null) console.warn("UserInfo.js: cannot determine user's registration timestamp"); |
if(user.registration==null) console.warn("UserInfo.js: cannot determine user's registration timestamp"); |
||
var lastContribDate=new Date(query.usercontribs[0].timestamp); |
var lastContribDate=query.usercontribs.length>0?new Date(query.usercontribs[0].timestamp):null; |
||
if(gender&&gender!=""){ |
if(gender&&gender!=""){ |
||
$("<span>") |
$("<span>") |
||
Baris 140: | Baris 215: | ||
}; |
}; |
||
var userActiveKey="inactive"; |
var userActiveKey="inactive"; |
||
if(new Date()-lastContribDate<120000) userActiveKey="active"; |
if(lastContribDate!=null){ |
||
if(new Date()-lastContribDate<120000) userActiveKey="active"; |
|||
else if(new Date()-lastContribDate<3600000) userActiveKey="uncertain"; |
else if(new Date()-lastContribDate<3600000) userActiveKey="uncertain"; |
||
} |
|||
var userActiveColors=userActiveKeys[userActiveKey]; |
var userActiveColors=userActiveKeys[userActiveKey]; |
||
var userActiveGradient="radial-gradient(center,ellipse cover,#"+userActiveColors.join(",#")+")"; |
var userActiveGradient="radial-gradient(center,ellipse cover,#"+userActiveColors.join(",#")+")"; |
||
Baris 162: | Baris 239: | ||
.css("background",userActiveGradient) |
.css("background",userActiveGradient) |
||
.prependTo("#firstHeading"); |
.prependTo("#firstHeading"); |
||
userDesc=$("<span>"). |
userDesc=$("<span>").append(userDesc) |
||
.append(", "+(user.registration!=null?dateDiff(regDate,2)+" |
.append(", "+(user.registration!=null?dateDiff(regDate,2)+", ":"")+"dengan ") |
||
.append( |
.append( |
||
$("<a>") |
$("<a>") |
||
Baris 169: | Baris 246: | ||
(typeof messages.usereditcount==="string"?messages.usereditcount: |
(typeof messages.usereditcount==="string"?messages.usereditcount: |
||
messages.usereditcount[0]+ |
messages.usereditcount[0]+ |
||
(user.editcount |
(user.editcount!=1?messages.usereditcount[2]:messages.usereditcount[1])+ |
||
messages.usereditcount[3] |
messages.usereditcount[3] |
||
) |
) |
||
.replace(/\$1/g,user.editcount.toLocaleString()) |
.replace(/\$1/g,user.editcount.toLocaleString()) |
||
) |
) |
||
.attr("href","http://toolserver.org/~tparis/ |
.attr("href","http://toolserver.org/~tparis/pcount/index.php?"+ |
||
$.param({ |
$.param({ |
||
name:user.name, |
name:user.name, |
||
Baris 182: | Baris 259: | ||
) |
) |
||
) |
) |
||
.append(". Suntingan terakhir ") |
.append(lastContribDate!=null?". Suntingan terakhir ":"") |
||
.append( |
.append( |
||
$("<a>") |
lastContribDate!=null?$("<a>") |
||
.text( |
.text(dateDiff(lastContribDate,2)) |
||
.attr("href",mw.util.wikiGetlink("Special:Contributions/"+user.name)) |
.attr("href",mw.util.wikiGetlink("Special:Contributions/"+user.name)):"" |
||
); |
); |
||
} |
} |
Revisi per 29 April 2013 20.48
/* <nowiki>
* UserInfo.js by [[User:Ricordisamoa]]
* uses jQuery & Ajax
* inspired from [[:en:User:PleaseStand/User info]] by PleaseStand (taken also some code, Thanks!)
* translate to Indonesian [[:id:User:Iwan_Novirion/userinfo.js]]
$(document).ready(function(){
if((wgNamespaceNumber!=2&&wgNamespaceNumber!=3)||(/\//.test(wgTitle))) return;
var user=wgTitle.split("/")[0];
var siteData=wgServer.replace(/^\/\/(.+)$/,"$1").split(".").slice(-3,2);
$.post(
mw.util.wikiScript("api"),
{
action:"query",
format:"json",
meta:"allmessages",
amlang:wgUserLanguage,
ammessages:[
"ago",
"just-now",
"usereditcount",
"seconds",
"minutes",
"hours",
"days",
"weeks",
"months",
"years"
].concat(
$.map([
"API_High_Limit_Requestor",
"Ex_Administrator",
"Ex_Bureaucrat",
"Global_bot",
"Global_rollback",
"Global_sysops",
"Image-reviewer",
"Indic_Bots",
"New_wikis_importer",
"OTRS",
"OTRS-member",
"Ombudsmen",
"Staff",
"abusefilter",
"accountcreator",
"arbcom",
"autoconfirmed",
"autopatrolled",
"autoreview",
"autoreviewer",
"bigexport",
"bot",
"botadmin",
"bureaucrat",
"centralnoticeadmin",
"checkuser",
"coder",
"confirmed",
"editinterface",
"editor",
"editprotected",
"eliminator",
"epcampus",
"epcoordinator",
"epinstructor",
"eponline",
"filemover",
"flood",
"founder",
"global-ipblock-exempt",
"import",
"inactive",
"interface_editor",
"ipblock-exempt",
"oversight",
"patroller",
"recursive-export",
"researcher",
"reviewer",
"rollbacker",
"steward",
"suppress",
"svnadmins",
"sysadmin",
"sysop",
"test-sysop",
"translate-proofr",
"translationadmin",
"transwiki",
"trusted",
"upwizcampeditors",
"user"
],
function(e){
return "group-"+e+"-member";
})
).join("|")
},
function(seujnyvukesrn){
var messages={};
$.each(seujnyvukesrn.query.allmessages,function(i,e){
messages[e.name]=e["*"];
if(e["*"].indexOf("{{PLURAL")!=-1){
var s=e["*"].match(/^(.*)\{\{PLURAL: ?\$1\|([^\|]*)(\|([^\|]*))?\}\}(.*)$/).slice(1);
s.splice(2,1);
if(typeof s[2]=="undefined") s[2]="";
messages[e.name]=s;
}
});
var dateDiff=function(date,precision){// state-of-the-art function for date differences!
var labels=[
messages["years"],
messages["months"],
messages["weeks"],
messages["days"],
messages["hours"],
messages["minutes"],
messages["seconds"]
];
var mult=[12,4.34,7,24,60,60,1000];
var diff=new Date()-date;
var message=[];
$.each(mult,function(i,e){
if(i<=precision||message.length===0){
var f=parseInt(eval(mult.slice(i).join("*")));
if(Math.floor(diff/f)>0){
var msg=(
typeof labels[i]==="string"?labels[i]:
(labels[i][0]+(Math.floor(diff/f)>1?labels[i][2]:labels[i][1])+labels[i][3])
)
.replace(/\$1/g,Math.floor(diff/f));
message.push(msg);
diff-=Math.floor(diff/f)*f;
}
}
});
return message.length>0?messages.ago.replace(/\$1/g,prettyJoin(message)):messages["just-now"];
};
var prettyJoin=function(array){
switch(array.length){
case 0:return "";break;
case 1:return array[0];break;
case 2:return array.join(" dan ");break;
default:return array.slice(0,-1).join(", ")+", dan "+array[array.length-1];break;
}
};
$.getJSON(
mw.util.wikiScript("api"),
{
action:"query",
format:"json",
list:"users|usercontribs",
maxage:300,
usprop:"blockinfo|editcount|gender|registration|groups",
ususers:user,
ucuser:user,
ucprop:"timestamp",
uclimit:1
},
function(data){
var query=data.query;
var user=query.users[0];
var userDesc="";
if(typeof(user.missing)!="undefined"||typeof(user.invalid)!="undefined"){
// invalid/anonymous user
if(mw.util.isIPv4Address(user.name)) userDesc="anonymous IPv4 user";
else if(mw.util.isIPv6Address(user.name)) userDesc="anonymous IPv6 user";
else userDesc="unspecified user";
userDesc="A"+(/^[aeio]/i.test(userDesc)?"n":"")+" "+userDesc;
}
else{
var gender=typeof(user.gender)!="undefined"?user.gender:"";
$.each(seujnyvukesrn.query.allmessages,function(i,e){
if(e["*"].indexOf("{{GENDER")===-1||e["*"].indexOf("{{PLURAL")!=-1) return;
var s=e["*"].match(/^(.*)\{\{GENDER: ?\$1\|([^\|]*)(\|([^\|]*))?(\|([^\|]*))?\}\}(.*)$/).slice(1);
s.splice(2,1);
s.splice(3,1);
var g=(gender==="male"&&typeof s[1]!="undefined"?s[1]:(gender==="female"&&typeof s[2]!="undefined"?s[2]:""));
if(g==="") g=typeof s[3]!="undefined"?s[3]:s[1];
s=s[0]+g+s[4];
messages[e.name]=s;
});
var groups=$.map(
$(user.groups).not(["*","user","autoconfirmed"]),
function(e){
return (typeof messages["group-"+e+"-member"]!="undefined"?messages["group-"+e+"-member"]:e);
}
);
var userDesc=groups.length>0?prettyJoin(groups):(typeof user.blockedby!="undefined"?"user":"registered user");
if(typeof user.blockedby!="undefined"){
userDesc=$("<span>").append("A ")
.append(
$("<a>")
.text("blocked")
.attr("href",mw.util.wikiGetlink("Special:Log")+"?type=block&page="+user.name)
).append(" "+userDesc);
}
else userDesc="Seorang"+(/^[aeio]/i.test(userDesc)?"":"")+" "+userDesc;
var regDate=new Date(user.registration);
if(user.registration==null) console.warn("UserInfo.js: cannot determine user's registration timestamp");
var lastContribDate=query.usercontribs.length>0?new Date(query.usercontribs[0].timestamp):null;
if(gender&&gender!=""){
$("<span>")
.text(gender==="male"?"\u2642":(gender==="female"?"\u2640":""))
.css({
paddingLeft:"0.25em",
fontFamily:"'Lucida Grande','Lucida Sans Unicode',sans-serif",
fontSize:"1em",
})
.appendTo("#firstHeading");
}
var userActiveKeys={
inactive:["c73535","c33003"],
uncertain:["949494","7e7e7e"],
active:["6bc431","1fbf00"]
};
var userActiveKey="inactive";
if(lastContribDate!=null){
if(new Date()-lastContribDate<120000) userActiveKey="active";
else if(new Date()-lastContribDate<3600000) userActiveKey="uncertain";
}
var userActiveColors=userActiveKeys[userActiveKey];
var userActiveGradient="radial-gradient(center,ellipse cover,#"+userActiveColors.join(",#")+")";
$("<span>")
.attr("title","this user is probably "+userActiveKey+" at the moment")
.css({
borderRadius:"100%",
background:"lime",
height:".8em",
width:".8em",
marginRight:".3em",
display:"inline-block",
lineHeight:0,
background:"#"+userActiveColors[0]
})
.css("background","-webkit-"+userActiveGradient)
.css("background","-moz-"+userActiveGradient)
.css("background","-ms-"+userActiveGradient)
.css("background","-o-"+userActiveGradient)
.css("background",userActiveGradient)
.prependTo("#firstHeading");
userDesc=$("<span>").append(userDesc)
.append(", "+(user.registration!=null?dateDiff(regDate,2)+", ":"")+"dengan ")
.append(
$("<a>")
.text(
(typeof messages.usereditcount==="string"?messages.usereditcount:
messages.usereditcount[0]+
(user.editcount!=1?messages.usereditcount[2]:messages.usereditcount[1])+
messages.usereditcount[3]
)
.replace(/\$1/g,user.editcount.toLocaleString())
)
.attr("href","http://toolserver.org/~tparis/pcount/index.php?"+
$.param({
name:user.name,
lang:siteData[0],
wiki:siteData[1]
})
)
)
.append(lastContribDate!=null?". Suntingan terakhir ":"")
.append(
lastContribDate!=null?$("<a>")
.text(dateDiff(lastContribDate,2))
.attr("href",mw.util.wikiGetlink("Special:Contributions/"+user.name)):""
);
}
$("#siteSub").show().prepend(". ").prepend(userDesc);
}
);
}
);
});