User:Suffusion of Yellow/abusecontribs.js

/* * Highlight entries at Special:AbuseLog, as follows: * Red: The user has some successful edits in the past 24 hours and some are NOT tagged "reverted" * Green: The user has some successful edits in the past 24 hours, but all are tagged "reverted" * Cyan: The user has no sucessful edits in the past 24 hours */

$.when(mw.loader.using(["mediawiki.util", "mediawiki.api"]), $.ready).then(function {	async function check(name) {		let result = await (new mw.Api).get( { action : "query", list : "usercontribs", ucuser : name, uclimit : 50, ucend : Math.floor(Date.now / 1000) - 86400, ucprop : "tags|timestamp" });

if (result.query.usercontribs.length == 0) return "none";

for (let c of result.query.usercontribs) if (!c.tags.includes("mw-reverted")) return "live";

return "reverted"; }

async function run(e) { e.preventDefault;

mw.util.addCSS(".abusecontribs-live { background-color: #f99; }" +					  ".abusecontribs-reverted { background-color: #bf9; }" +					   ".abusecontribs-none { background-color: #9fd; }");

for(let line of mw.util.$content.find('ul li')) { let cl = $(line).find('[href*="Special:Contributions"]');

$(line).removeClass("abusecontribs-live abusecontribs-reverted abusecontribs-none");

if (cl.length) { let match = cl[0].href.match(/Special:Contributions\/(.*)/);

if (match) { let result = await check(decodeURIComponent(match[1]));

$(line).addClass("abusecontribs-" + result); }			}		}	}	if (mw.config.get('wgCanonicalSpecialPageName') == "AbuseLog") { $(mw.util.addPortletLink( "p-tb", "#",           "Check for edits", 't-livedits', "Check for unreverted edits from all users listed here, within the past day" )).click(run); } });