Korisnik:Aca/RevisionID.js

Izvor: Wikipedija
Prijeđi na navigaciju Prijeđi na pretragu

Napomena: Nakon objave možda ćete trebate očistiti međuspremnik (keš) svog preglednika kako biste vidjeli promjene.

  • Firefox / Safari: držite Shift i pritisnite Reload, ili pritisnite bilo Ctrl-F5 ili Ctrl-R (Command-R na Macu)
  • Google Chrome: pritisnite Ctrl-Shift-R (Command-Shift-R na Macu)
  • Internet Explorer / Edge: držite Ctrl i kliknite Refresh, ili pritisnite Ctrl-F5
  • Opera: pritisnite Ctrl-F5.
/*** Show Revision ID ***/

// Shows the revison id on history pages
// Documentation at [[User:BrandonXLF/ShowRevisionID]]
// By [[User:BrandonXLF]]

$(document).ready(function() {
    var lang = {
        "en": {
            dateTimeSplit: '',
            DTSplit: '',
            patrolString: "Patrolled by ",
            summaryMale: '',
            summaryFemale: '',
            copied: '',
            contribsPageLocal: '',
            diffPageLocal: ''
        },
        "hr": {
            dateTimeSplit: 'od ',
            DTSplit: ', ',
            patrolString: "Ophodio ",
            summaryMale: "Vraćanje na inačicu [[Special:Diff/$1|$1]] koju je $2 u $3 unio $4",
            summaryFemale: "Vraćanje na inačicu [[Special:Diff/$1|$1]] koju je $2 u $3 unijela $4",
            copied: 'Kopirano: ',
            contribsPageLocal: 'Posebno:Dopinosi',
            diffPageLocal: 'Posebno:Diff'
        },
        "sr": {
            dateTimeSplit: 'на датум ',
            DTSplit: ' у ',
            patrolString: "Испатролирао ",
            summaryMale: "Ручно враћање на измену бр. [[Special:Diff/$1|$1]] коју је унео $4 на датум $3 у $2",
            summaryFemale: "Ручно враћање на измену бр. [[Special:Diff/$1|$1]] коју је унела $4 на датум $3 у $2",
            copied: 'Копирано: ',
            contribsPageLocal: 'Посебно:Доприноси',
            diffPageLocal: 'Посебно:Разлике'
        },
        "sr-el": {
            dateTimeSplit: 'na dan ',
            DTSplit: ' u ',
            patrolString: "Ispatrolirao ",
            summaryMale: "Ručno vraćanje na izmenu br. [[Special:Diff/$1|$1]] koju je uneo $4 na datum $3 u $2",
            summaryFemale: "Ručno vraćanje na izmenu br. [[Special:Diff/$1|$1]] koju je unela $4 na datum $3 u $2",
            copied: 'Kopirano: ',
            contribsPageLocal: 'Posebno:Doprinosi',
            diffPageLocal: 'Posebno:Razlike'
        },
        "sr-ec": {
            dateTimeSplit: 'на датум ',
            DTSplit: ' у ',
            patrolString: "Испатролирао ",
            summaryMale: "Ручно враћање на измену бр. [[Special:Diff/$1|$1]] коју је унео $4 на датум $2 у $3",
            summaryFemale: "Ручно враћање на измену бр. [[Special:Diff/$1|$1]] коју је унела $4 на датум $2 у $3",
            copied: 'Копирано: ',
            contribsPageLocal: 'Посебно:Доприноси',
            diffPageLocal: 'Посебно:Разлике'
        },
        "sh": {
            dateTimeSplit: 'na datum ',
            DTSplit: ' u ',
            patrolString: "Pregledao/-la ",
            summaryMale: "Ručno vraćanje na verziju br. [[Special:Diff/$1|$1]] koju je uredio $4 na datum $2 u $3",
            summaryFemale: "Ručno vraćanje na verziju br. [[Special:Diff/$1|$1]] koju je uredila $4 na datum $2 u $3",
            copied: 'Kopirano: ',
            contribsPageLocal: 'Posebno:Doprinosi',
            diffPageLocal: 'Posebno:Diff'
        },
    }
    var langVar = "";
    mw.config.exists('wgUserVariant') ? langVar = mw.config.get('wgUserVariant') : langVar = mw.config.get('wgUserLanguage');
    console.log("RevID LANG:", langVar);

    var items;
    if (location.search.includes('action=history') || location.search.includes('title=Posebno%3ADoprinosi') ||
        location.href.includes('Special:Contributions') || location.href.includes(lang[langVar].contribsPageLocal)) {
        items = document.querySelectorAll('li[data-mw-revid]');
        for (var i = 0; i < items.length; i++) {
            items[i].getElementsByClassName('mw-changeslist-date')[0].after(document.createTextNode(' | ' + items[i].getAttribute('data-mw-revid')));
        }
    } else if (location.href.includes('Special:Diff') || location.href.includes(lang[langVar].diffPageLocal) ||
        location.href.includes('diff') || location.href.includes('oldid')) {

        osvjeziRevID(lang, langVar);

        $(".mw-revslider-slider-wrapper").bind("click", function(e) {
            setTimeout(function() {
                osvjeziRevID(lang, langVar);
            }, 1000);
        });
    }
});

function kopirajSazetak(revid, suradnik, datumiVrijeme, lang, langVar) {
    var lang = JSON.parse(lang);
    var vrijeme = datumiVrijeme.split(lang[langVar].DTSplit)[0];
    var datum = datumiVrijeme.split(lang[langVar].DTSplit)[1];
    var spolAPI = $.getJSON(mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&prop=&list=users&meta=&usprop=gender&ususers=" + suradnik)
        .done(function(query) {
            if (!query.query) { return; } // API fail
            query = query.query;
            var gender = (typeof query.users[0].gender == "string") ? query.users[0].gender : null;
            var string, dummy;
            console.log(lang);
            if (gender == "female") {
                string = lang[langVar].summaryFemale.replaceAll('$1', revid).replace('$2', datum).replace('$3', vrijeme).replace('$4', suradnik);
                //kopiraj u clipboard
                dummy = $('<input>').val(string).appendTo('body').select();
                document.execCommand('copy');
                document.body.lastElementChild.remove();

                console.log("Kopirano: " + string);
            } else {
                string = lang[langVar].summaryMale.replaceAll('$1', revid).replace('$2', datum).replace('$3', vrijeme).replace('$4', suradnik);
                //kopiraj u clipboard
                dummy = $('<input>').val(string).appendTo('body').select();
                document.execCommand('copy');
                document.body.lastElementChild.remove();

                console.log(lang[langVar].copied + string);
            }
        });
}

function osvjeziRevID(lang, langVar) {
    var stringHrefPrev = $('#mw-diff-otitle1').children('strong').find('a', 'span>a').attr('href');
    var stringHrefCurr = $('#mw-diff-ntitle1').children('strong').find('a', 'span>a').attr('href');

    var revidPrev = stringHrefPrev && stringHrefPrev.split('oldid=')[1];
    try {
        var userNamePrev = document.getElementsByClassName('mw-userlink')[0].children[0].innerHTML;
        var datumiVrijemePrev = $('#mw-diff-otitle1').children('strong').find('a', 'span>a')[0].innerHTML.split(lang[langVar].dateTimeSplit)[1];
    } catch (e) {
        return; // Uncaught TypeError: Cannot read property 'innerHTML' of undefined
    }

    var revidCurr = stringHrefCurr.split('oldid=')[1];
    var userNameCurr = document.getElementsByClassName('mw-userlink')[1].children[0].innerHTML;
    var datumiVrijemeCurr = $('#mw-diff-ntitle1').children('strong').find('a', 'span>a')[0].innerHTML.split(lang[langVar].dateTimeSplit)[1];

    var wgPageName = mw.config.get("wgPageName");



    var idValuePrev = document.createElement('abbr');

    idValuePrev.className = 'revID-ivi';
    idValuePrev.innerHTML = ' | ' + revidPrev + ' | ';
    idValuePrev.addEventListener('click', function() {
        kopirajSazetak(revidPrev, userNamePrev, datumiVrijemePrev, JSON.stringify(lang), langVar);
    });


    var patrolAPI = $.getJSON(mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&prop=&list=logevents&leprop=details%7Cuser&letype=patrol&letitle=" + wgPageName)
        .done(function(query) {
            if (!query.query) { return; } // API fail
            query = query.query;

            query.logevents.forEach(function(entry) {
                if (entry.params.curid == revidPrev) {
                    idValuePrev.setAttribute('title', lang[langVar].patrolString + entry.user);
                }
            });
        });
        $('#mw-diff-otitle1').children('strong').find('a', 'span>a')[0].after(idValuePrev);

    var idValueCurr = document.createElement('abbr');
    idValueCurr.className = 'revID-ivi';
    idValueCurr.innerHTML = ' | ' + revidCurr + ' | ';
    idValueCurr.addEventListener('click', function() {
        kopirajSazetak(revidCurr, userNameCurr, datumiVrijemeCurr, JSON.stringify(lang), langVar);
    });

    patrolAPI.done(function(query) {
        if (!query.query) { return; } // API fail
        query = query.query;

        query.logevents.forEach(function(entry) {
            if (entry.params.curid == revidCurr) {
                idValueCurr.setAttribute('title', lang[langVar].patrolString + entry.user);
            }
        });
    });

    $('#mw-diff-ntitle1').children('strong').find('a', 'span>a')[0].after(idValueCurr);
}