User:Pythoncoder/Scripts/userHighlighter.js: Difference between revisions

Content deleted Content added
Reverted to revision 847980017 by Pythoncoder (talk). (TW)
better brown
 
(25 intermediate revisions by 3 users not shown)
Line 1:
//<nowiki>
/**
* User highlighter 3.01
* ---------------------
* A jQuery/mediawiki-heavy rewrite of [[User:Amalthea/userhighlighter.js]]
Line 8:
* (that is, everything but the tabs, personal links at the top of the screen and sidebar)
* by giving them a gold background. It also colors links to userpages of users with lower
* and higher-ranked permissions.
*
* The original source for this script is a combination of Bellezzasolo's (adds
* See [[User:Theopolisme/Scripts/adminhighlighter]] for more details.
* intermediate-level groups) and Amorymeltzer's (adds advanced-level groups)
*
* versions of the script. You may be interested in
* Version 3.0 merges Bellezzasolo and Amorymeltzer's version.
* [[User:Chlod/Scripts/UserHighlighter.js]], which adds a tooltip showing
* a user's groups. However, I continue to use this version because Navigation
* Popups already covers this functionality. This script has been forked many
* times; please see my documentation page for a full chart of these forks.
*
* TODO: Rollback
*
* @author theopolismeAis523
* @author Amalthea
* @author Theopolisme
* @author Bellezzasolo
* @author Amorymeltzer
* @author Pythoncoder
*
* Version 3.1 will be released in 2025. In addition to removing deprecated
* MediaWiki functionality (which originally prompted the update),
* I'm taking the time to backport some features from forks of this script,
* so I guess I should add more credits:
*
* @author Anne_drew
*/
(function($, mw){
mw.hook('wikipage.content').add(function($, mw){
var ecdata, pcdata, mvdata, tpdata, addata;
$.when(
$.getJSON(mw.config.get('wgScriptPath')+
'/index.php?action=raw&ctype=application/json&title=User:AmorymeltzerAmoryBot/crathighlighter.js/arbcom.jsjson',
function(data){
acdata = data;
}
}),
),
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Amorymeltzer/crathighlighter.js/crat.js', function(data){
$.getJSON(mw.config.get('wgScriptPath')+
crdata = data;
'/index.php?action=raw&ctype=application/json&title=User:AmoryBot/crathighlighter.js/oversight.json',
}),
function(data){
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Amorymeltzer/crathighlighter.js/oversight.js', function(data){
osdata = data;
}
}),
),
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Amorymeltzer/crathighlighter.js/checkuser.js', function(data){
$.getJSON(mw.config.get('wgScriptPath')+
cudata = data;
'/index.php?action=raw&ctype=application/json&title=User:AmoryBot/crathighlighter.js/checkuser.json',
}),
function(data){
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/excon.js', function(data){
ecdata cudata = data;
}
}),
),
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/pcusr.js', function(data){
$.getJSON(mw.config.get('wgScriptPath')+
pcdata = data;
'/index.php?action=raw&ctype=application/json&title=User:AmoryBot/crathighlighter.js/interface-admin.json',
}),
function(data){
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/pgmvr.js', function(data){
mvdata iadata = data;
}
}),
),
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/temop.js', function(data){
$.getJSON(mw.config.get('wgScriptPath')+
tpdata = data;
'/index.php?action=raw&ctype=application/json&title=User:AmoryBot/crathighlighter.js/steward.json',
}),
function(data){
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Amalthea_(bot)/userhighlighter.js/sysop.js', function(data){
addata stewardData = data;
}
}),
),
$.getJSON(mw.config.get('wgScriptPath')+'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/ptusr.js', function(data){
// Reviewer, Pagemover, and Template Editor data is outdated!
ptdata = data;
// TODO: Extract from User:MDanielsBot/markAdmins-Data.js instead
})
$.getJSON(mw.config.get('wgScriptPath')+
).then(function() {
'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/pcusr.js',
function(data){
pcdata = data;
}
),
$.getJSON(mw.config.get('wgScriptPath')+
'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/pgmvr.js',
function(data){
mvdata = data;
}
),
$.getJSON(mw.config.get('wgScriptPath')+
'/index.php?action=raw&ctype=application/json&title=User:Bellezzasolo Bot/userhighlighter.js/temop.js',
function(data){
tpdata = data;
}
),
// End outdated data
$.getJSON(
mw.config.get("wgScriptPath") +
"/index.php?action=raw&ctype=application/json&title=User:NovemBot/userlist.js",
function (data) {
bureaucratData = data.bureaucrat;
adminData = data.sysop;
formerAdminData = data.formeradmin;
nppData = data.patroller;
ecdata = data.extendedconfirmed;
ipdata = data.productiveIPs;
//tenKData = data['10k'];
}
)).then(function() {
ADMINHIGHLIGHT_EXTLINKS = window.ADMINHIGHLIGHT_EXTLINKS || false;
ADMINHIGHLIGHT_NAMESPACES = [-1,2,3];
mw.loader.using(['mediawiki.util','mediawiki.Uri', 'mediawiki.Title'], function() {
mw.util.addCSS(".userhighlighter_arbcom[class~=userhighlighter_excon], [class~=userhighlighter_trusted-ip] {background-color: #f9999f}");
mw.util.addCSS(".userhighlighter_crat[class~=userhighlighter_pcusr] {background-color: #fd9ddd}");
mw.util.addCSS(".userhighlighter_oversight[class~=userhighlighter_ptusr] {background-color: #8889c9}");
mw.util.addCSS(".userhighlighter_checkuser[class~=userhighlighter_pgmvr] {background-color: #9dfbf9}");
mw.util.addCSS(".userhighlighter_sysop[class~=userhighlighter_temop] {background-color: #ff9f9f}");
mw.util.addCSS(".userhighlighter_temop[class~=userhighlighter_former-admin] {background-color: #fcedb9}");
mw.util.addCSS(".userhighlighter_pgmvr[class~=userhighlighter_sysop] {background-color: #bf99ff}");
mw.util.addCSS(".userhighlighter_ptusr[class~=userhighlighter_checkuser][class~=userhighlighter_sysop] {background-color: #9ff9cf}");
mw.util.addCSS(".userhighlighter_pcusr[class~=userhighlighter_oversight][class~=userhighlighter_sysop] {background-color: #ddd999}");
mw.util.addCSS(".userhighlighter_excon[class~=userhighlighter_arbcom][class~=userhighlighter_sysop] {background-color: #99ff99}");
mw.util.addCSS("[class~=userhighlighter_interface-admin][class~=userhighlighter_sysop] {background-color: #ff9}");
mw.util.addCSS("[class~=userhighlighter_bureaucrat][class~=userhighlighter_sysop] {background-color: #fb9}");
mw.util.addCSS("[class~=userhighlighter_steward] {background-color: #9cc}");
mw.util.addCSS("[class~=userhighlighter_jimbo][class~=userhighlighter_sysop] {background-color: #fd9}");
$('#article a, #bodyContent a, #mw_contentholder a').each(function(index,linkraw){
try {
Line 72 ⟶ 123:
var url = link.attr('href');
if (!url || url.charAt(0) === '#') return; // Skip <a> elements that aren't actually links; skip anchors
if (url.lastIndexOf("http://", 0) !== 0 && url.lastIndexOf("https://", 0) !== 0 && url.lastIndexOf("/", 0) !== 0) return; //require http(s) links, avoid "javascript:..." etc. which mw.Uri does not support
var uri = new mw.UriURL(url);
if (!ADMINHIGHLIGHT_EXTLINKS && !$.isEmptyObject(uri.query)searchParams.size > 0) return; // Skip links with query strings if highlighting external links is disabled
if (uri.host == 'en.wikipedia.org') {
var mwtitle = new mw.Title(mw.util.getParamValue('title',url) || decodeURIComponent(uri.pathpathname.slice(6))); // Try to get the title parameter of URL; if not available, remove '/wiki/' and use that
if ($.inArray(mwtitle.getNamespaceId(), ADMINHIGHLIGHT_NAMESPACES)>=0) {
var user = mwtitle.getMain().replace(/_/g," ");
Line 82 ⟶ 133:
if (mwtitle.getNamespaceId() === -1) user = user.replace('Contribs/',''); // The Contribs abbreviation too
if (stewardData[user] == 1) {
link.addClass(link.attr('class') + ' userhighlighter_steward');
}
if(bureaucratData[user] == 1) {
link.addClass(link.attr('class') + ' userhighlighter_bureaucrat');
}
if(iadata[user] == 1) {
link.addClass(link.attr('class') + ' userhighlighter_interface-admin');
}
if(acdata[user] == 1) {
link.addClass(link.attr("'class",') + ' "userhighlighter_arbcom"');
}
if(osdata[user] == 1) {
link.addClass(link.attr('class') + ' userhighlighter_oversight');
}
if(cudata[user] == 1) {
link.addClass(link.attr('class') + ' userhighlighter_checkuser');
}
else if (crdataadminData[user] == 1) {
link.addClass(link.attr("'class",') + ' "userhighlighter_crat"userhighlighter_sysop');
}
else if(osdataformerAdminData[user] == 1) {
link.addClass(link.attr("'class",') + ' "userhighlighter_oversight"userhighlighter_former-admin');
}
else if(cudatatpdata[user] == 1) {
link.addClass(link.attr("'class",') + "userhighlighter_checkuser userhighlighter_temop");
}
else if (addatamvdata[user] == 1) {
link.addClass(link.attr('class') + " userhighlighter_pgmvr");
link.attr("class", "userhighlighter_sysop"); // Override the above color by using `a.userhighlighter_sysop.userhighlighter_sysop {background-color: COLOR !important}`
}
else if(tpdatanppData[user] == 1) {
link.addClass(link.attr('class') + " userhighlighter_ptusr");
link.attr("class", "userhighlighter_temop"); // Override the above color by using `a.userhighlighter_temop.userhighlighter_temop {background-color: COLOR !important}`
}
else if(mvdatapcdata[user] == 1) {
link.addClass(link.attr('class') + " userhighlighter_pcusr");
link.attr("class", "userhighlighter_pgmvr"); // Override the above color by using `a.userhighlighter_pgmvr.userhighlighter_pgmvr {background-color: COLOR !important}`
}
else if(ptdataecdata[user] == 1) {
link.addClass(link.attr('class') + " userhighlighter_excon");
link.attr("class", "userhighlighter_ptusr"); // Override the above color by using `a.userhighlighter_ptusr.userhighlighter_ptusr {background-color: COLOR !important}`
}
else if(pcdataipdata[user] == 1) {
link.addClass(link.attr('class') + " userhighlighter_trusted-ip");
link.attr("class", "userhighlighter_pcusr"); // Override the above color by using `a.userhighlighter_pcusr.userhighlighter_pcusr {background-color: COLOR !important}`
}
else if(ecdata[user] == 1'Jimbo Wales') {
link.addClass(link.attr('class') + " userhighlighter_jimbo");
link.attr("class", "userhighlighter_excon"); // Override the above color by using `a.userhighlighter_excon.userhighlighter_excon {background-color: COLOR !important}`
}
}
Line 121 ⟶ 187:
});
});
});
}(jQuery, mediaWiki));
//</nowiki>