window.popupPreviews = false;
window.popupImages = false;
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function () {
var api = new mw.Api();
function correggiRedirect() {
var links = document.querySelectorAll('#mw-content-text a'); // Trova tutti i link nel contenuto
links.forEach(function (link) {
var href = link.getAttribute('href');
if (href && href.startsWith('/wiki/')) {
var titolo = decodeURIComponent(href.split('/wiki/')[1].replace(/_/g, ' '));
api.get({
action: 'query',
titles: titolo,
redirects: true
}).done(function (data) {
var pages = data.query.pages;
for (var pageId in pages) {
var page = pages[pageId];
if (page.redirects && page.redirects.length > 0) {
var nuovoTitolo = page.redirects[0].to;
// Evidenzia il link
link.style.backgroundColor = 'yellow';
link.title = 'Questo link punta a un redirect: ' + nuovoTitolo;
// Aggiungi un pulsante per correggere
var correggiButton = document.createElement('button');
correggiButton.textContent = 'Correggi';
correggiButton.style.marginLeft = '5px';
correggiButton.style.fontSize = 'small';
correggiButton.addEventListener('click', function () {
console.log('Correzione eseguita per:', titolo, '->', nuovoTitolo);
link.href = '/wiki/' + nuovoTitolo.replace(/ /g, '_');
link.textContent = nuovoTitolo;
link.style.backgroundColor = ''; // Rimuovi evidenziazione
this.remove(); // Rimuovi il pulsante
});
link.parentNode.insertBefore(correggiButton, link.nextSibling);
}
}
}).fail(function (error) {
console.error('Errore durante la richiesta API per il link:', titolo, error);
});
}
});
}
// Aggiungi un pulsante nel menu delle azioni
mw.util.addPortletLink(
'p-cactions',
'#',
'Correggi Redirect',
'ca-correggi-redirect',
'Trova e correggi i wikilink che puntano a redirect'
);
document.getElementById('ca-correggi-redirect').addEventListener('click', function (e) {
e.preventDefault();
console.log('Avviato il controllo dei redirect...');
correggiRedirect();
});
});
|