Usuário:BraunOBruno/Bookmarklets

Página de referência para edições em dispositivos diferentes.

{{Traduzido}} preenchido

Gera

{{PD}}
{{Traduzido
|texto  = xx:yyyy
|oldid original = [https://xx.wikipedia.org/w/index.php?title=yyyy&oldid=1234 1234]
|data   = 13 de outubro de 2024
|fontes =
}}
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, oldid, callback){
        let url;
        if (oldid) {
            url = `https://${lang}.wikipedia.org/w/api.php?action=query&prop=revisions&revids=${oldid}&rvprop=ids|title&format=json&origin=*`;
        } else {
            url = `https://${lang}.wikipedia.org/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 = oldid ? oldid : pages[pageId].revisions[0].revid;
            const fullTitle = pages[pageId].title;
            callback(revisionId, fullTitle);
        })
        .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);
    }

    (function(){
        const lang = window.location.hostname.split('.')[0];
        const urlParams = new URLSearchParams(window.location.search);
        const oldid = urlParams.get('oldid');
        let title = window.location.pathname.split('/wiki/')[1];

        if (!title && !oldid) {
            alert('Não foi possível obter o título da página.');
            return;
        }

        createPopup(function(selectedFontesValue){
            getLastRevisionCode(lang, title, oldid, function(revisionId, fullTitle){
                const titUrl = fullTitle.replaceAll(' ', '_');
                const currentDate = getCurrentDate();
                const url = `https://${lang}.wikipedia.org/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);
            });
        });
    })();
})();

Artigo trad. sumário

Gera "Artigo traduzido de xx:yyy, na revisão 1234. Veja histórico para atribuição."

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, oldid, callback) {
        let url;
        if (oldid) {
            url = `https://${lang}.wikipedia.org/w/api.php?action=query&prop=revisions&revids=${oldid}&rvprop=ids|title&format=json&origin=*`;
        } else {
            url = `https://${lang}.wikipedia.org/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 = oldid ? oldid : pages[pageId].revisions[0].revid;
                const fullTitle = pages[pageId].title;
                callback(revisionId, fullTitle);
            })
            .catch(error => console.error('Erro ao obter o código da última revisão:', error));
    }

    (function() {
        const lang = window.location.hostname.split('.')[0];
        const urlParams = new URLSearchParams(window.location.search);
        const oldid = urlParams.get('oldid');
        let title = window.location.pathname.split('/wiki/')[1];

        if (!title && !oldid) {
            alert('Não foi possível obter o título da página.');
            return;
        }

        getLastRevisionCode(lang, title, oldid, function(revisionId, fullTitle) {
            const text = `Artigo traduzido de [[:${lang}:${fullTitle}]], na revisão ${revisionId}. Veja histórico para atribuição.`;
            copyToClipboard(text);
        });
    })();
})();

Conteúdo trad. sumário

Gera "Adição de conteúdo traduzido de xx:yyy, na revisão 1234. Veja histórico para atribuição."

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, oldid, callback) {
        let url;
        if (oldid) {
            url = `https://${lang}.wikipedia.org/w/api.php?action=query&prop=revisions&revids=${oldid}&rvprop=ids|title&format=json&origin=*`;
        } else {
            url = `https://${lang}.wikipedia.org/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 = oldid ? oldid : pages[pageId].revisions[0].revid;
                const fullTitle = pages[pageId].title;
                callback(revisionId, fullTitle);
            })
            .catch(error => console.error('Erro ao obter o código da última revisão:', error));
    }

    (function() {
        const lang = window.location.hostname.split('.')[0];
        const urlParams = new URLSearchParams(window.location.search);
        const oldid = urlParams.get('oldid');
        let title = window.location.pathname.split('/wiki/')[1];

        if (!title && !oldid) {
            alert('Não foi possível obter o título da página.');
            return;
        }

        getLastRevisionCode(lang, title, oldid, function(revisionId, fullTitle) {
            const text = `Adição de conteúdo traduzido de [[:${lang}:${fullTitle}]], na revisão ${revisionId}. Veja histórico para atribuição.`;
            copyToClipboard(text);
        });
    })();
})();

CatCompleter 2 QuickCategories

Movido para Usuário:BraunOBruno/CatCompleter 2 QuickCategories