Usuário:BraunOBruno/Traduzido.js
Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5.
javascript:(function(){
function copyToClipboard(text){
const textarea = document.createElement('textarea');
textarea.value = text;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
}
function getLastRevisionCode(lang, title, callback){
const url = `https://${lang}.wiki.x.io/w/api.php?action=query&prop=revisions&titles=${title}&rvlimit=1&rvprop=ids&format=json&origin=*`;
fetch(url)
.then(response => response.json())
.then(data => {
const pages = data.query.pages;
const pageId = Object.keys(pages)[0];
const revisionId = pages[pageId].revisions[0].revid;
callback(revisionId, pages[pageId].title);
})
.catch(error => console.error('Erro ao obter o código da última revisão:', error));
}
function getCurrentDate(){
const date = new Date();
const day = date.getDate();
const monthNames = ["janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"];
const month = monthNames[date.getMonth()];
const year = date.getFullYear();
return `${day} de ${month} de ${year}`;
}
function createPopup(callback){
const popup = document.createElement('div');
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.style.padding = '20px';
popup.style.backgroundColor = '#fff';
popup.style.border = '1px solid #000';
popup.style.zIndex = '10000';
const label = document.createElement('label');
label.textContent = 'Selecione o valor para |fontes = : ';
popup.appendChild(label);
const select = document.createElement('select');
const options = ['', 'SEM', 'NV', 'V', 'NT'];
options.forEach(option => {
const opt = document.createElement('option');
opt.value = option;
opt.textContent = option === '' ? 'Em branco' : option;
if (option === 'NV') opt.selected = true;
select.appendChild(opt);
});
popup.appendChild(select);
const button = document.createElement('button');
button.textContent = 'Copiar';
button.onclick = function(){
const selectedValue = select.value;
document.body.removeChild(popup);
callback(selectedValue);
};
popup.appendChild(button);
const cancelButton = document.createElement('button');
cancelButton.textContent = 'Cancelar';
cancelButton.onclick = function(){
document.body.removeChild(popup);
};
popup.appendChild(cancelButton);
document.addEventListener('keydown', function(event){
if (event.key === 'Escape') {
document.body.removeChild(popup);
}
});
document.body.appendChild(popup);
}
const lang = window.location.hostname.split('.')[0];
let title = window.location.pathname.split('/wiki/')[1];
if(!title){
alert('Não foi possível obter o título da página.');
return;
}
createPopup(function(selectedFontesValue){
getLastRevisionCode(lang, title, function(revisionId, fullTitle){
const titUrl = fullTitle.replaceAll(' ', '_');
const currentDate = getCurrentDate();
const url = `https://${lang}.wiki.x.io/w/index.php?title=${titUrl}&oldid=${revisionId}`;
const oldIdText = `[${url} ${revisionId}]`;
const text = `{{PD}}\n{{Traduzido\n|texto = ${lang}:${fullTitle}\n|oldid original = ${oldIdText}\n|data = ${currentDate}\n|fontes = ${selectedFontesValue}\n}}`;
copyToClipboard(text);
});
});
})();