Utilisateur:Alphos/abuseFilterHelper.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./*
abusefilterhelp.js
Author : [[fr:w:User:Alphos]]
*/
window.toggleAbuseFilterPatternDisplay = function (a) {
var abfPatternContentId = "abf-filterinfo-" + a + "-patterncontent";
var abfPatternContent = document.getElementById(abfPatternContentId);
if (abfPatternContent) {
if (abfPatternContent.style.display == "none") {
abfPatternContent.style.display = "inline";
} else {
abfPatternContent.style.display = "none";
}
}
return true;
};
function getAbuseFilterInfo() {
var abfLinkRegex = /^https:\/\/fr.wikipedia.org\/wiki\/Sp(é|%C3%A9|e)cial:(Filtre_antiabus|AbuseFilter)\/\d+$/;
var api = new mw.Api();
$("#mw-content-text").find("a").each(function (i, abflink) {
if (!abfLinkRegex.test(abflink)) {
return;
}
var abfFilterId = abflink.href.match(/\d+$/);
api
.get({
action: 'query',
list: 'abusefilters',
abfstartid: abfFilterId,
abflimit: 1,
abfprop: 'id|description|pattern|hits',
formatversion: 2,
})
.done(function (data) {
var filter = data.query.abusefilters[0];
// on vérifie qu'un filtre a été retourné et qu'il s'agit de celui voulu
if (!filter || filter.id !== parseInt(abfFilterId)) {
return;
}
var abfFilterInfo = document.createElement('span');
abfFilterInfo.id = "abf-filterinfo-" + i;
abfFilterInfo.style.fontSize = ".85em";
abfFilterInfo.innerHTML = " ";
var abfFilterInfoDescr = document.createElement('span');
abfFilterInfoDescr.id = "abf-filterinfo-" + i + "-descr";
abfFilterInfoDescr.style.fontStyle = "italic";
abfFilterInfoDescr.style.cursor = "help";
abfFilterInfoDescr.title = filter.description;
abfFilterInfoDescr.innerHTML = "descr";
abfFilterInfo.appendChild(abfFilterInfoDescr);
var abfFilterInfoPattern = document.createElement('span');
abfFilterInfoPattern.id = "abf-filterinfo-" + i + "-pattern";
abfFilterInfoPattern.innerHTML = " • <span onclick=\"toggleAbuseFilterPatternDisplay(" + i + ");\" style=\"cursor:pointer\">règle</span>";
abfFilterInfo.appendChild(abfFilterInfoPattern);
var abfFilterInfoPatternContent = document.createElement('span');
abfFilterInfoPatternContent.id = "abf-filterinfo-" + i + "-patterncontent";
abfFilterInfoPatternContent.style.display = "none";
abfFilterInfoPatternContent.style.fontSize = ".85em";
abfFilterInfoPatternContent.style.color = "#888888";
abfFilterInfoPatternContent.innerHTML = " : " + filter.pattern;
abfFilterInfoPattern.appendChild(abfFilterInfoPatternContent);
var abfFilterInfoHits = document.createElement('span');
abfFilterInfoHits.id = "abf-filterinfo-" + i + "-hits";
abfFilterInfoHits.innerHTML = " • <a href=\"https://fr.wikipedia.org/w/index.php?title=Sp%C3%A9cial:Journal_du_filtre_antiabus&wpSearchFilter=" + abfFilterId + "\">" + filter.hits + " hits</a>";
abfFilterInfo.appendChild(abfFilterInfoHits);
var abfFilterInfoLinks = document.createElement('span');
abfFilterInfoLinks.id = "abf-filterinfo-" + i + "-links";
abfFilterInfoLinks.innerHTML = " • <a href=\"https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Filtre_antiabus/history/" + abfFilterId + "\" title=\"history\">h</a> • " +
"<a href=\"https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Filtre_antiabus/test/" + abfFilterId + "\" title=\"test\">t</a>";
abfFilterInfo.appendChild(abfFilterInfoLinks);
abflink.parentNode.insertBefore(abfFilterInfo, abflink.nextSibling);
});
});
}
{
let namespace = mw.config.get('wgNamespaceNumber');
if (namespace === 4 || namespace === 5) {
mw.loader.using('mediawiki.api', function () {
$(function ($) {
getAbuseFilterInfo();
});
});
}
}