אונטערשייד צווישן ווערסיעס פון "באַניצער:בוט צמא לדעת/descriptions.js"

פון המכלול
קפיצה לניווט קפיצה לחיפוש
קאין תקציר עריכה
קאין תקציר עריכה
שורה 49: שורה 49:
                             const description = descriptions.yi.value;
                             const description = descriptions.yi.value;
                             //console.table(e);
                             //console.table(e);
                             console.log(interwiki + ' : ' + pageName);
                             console.log(pageName + ' : ' + description);
                             console.timeLog('מדידת זמן', '2');
                             console.timeLog('מדידת זמן', '2');
                             if (needed(pageName)) {
                             if (needed(pageName)) {

רעוויזיע פון 01:33, 20 אקטאבער 2023

mw.loader.using(['mediawiki.jqueryMsg']).done(function () {
    function listPages() {
        const api = new mw.Api();
        api.get({
            "action": "query",
            "format": "json",
            "list": "allpages",
            "utf8": 1,
            "apnamespace": "8000",
            "apfilterredir": "nonredirects",
            //"apfrom": "א",
            "aplimit": "10"
        }).done((data) => {
            //console.table(data);
            const list = data.query.allpages;
            console.timeLog('מדידת זמן', 'a');
            console.table(list);
            for (const p in list) {
                const pageName = list[p].title.replace("רוי:", "");
                wikidataDesc(pageName);
            }
        })
    }

    function wikidataDesc(page) {
        const pageName = page//.replace('איד:', 'ייד').replace(/^רבי /, "").replace(/^הרב /, "").replace(/\"הייליגע\"/g, "הייליגע").replace('דעיוויד', 'דייוויד');
        $.ajax({
            url: '//www.wikidata.org/w/api.php',
            data: {
                'format': 'json',
                'action': 'wbgetentities',
                'sites': "yiwiki",
                'titles': pageName,
                'props': 'descriptions',
                'languages': 'yi'
            },
            dataType: 'jsonp',
            cache: true
        })
            .done(function (data) {
                console.log(data);
                if (data.success) {
                    //console.table(data.success);
                    $(function () {
                        for (var e in data.entities) {
                            if (e == -1) return;
                            var descriptions = data.entities[e].descriptions;
                            if (!descriptions.yi) return console.log('ל' + pageName + ' אין מידע ויקינתונים.');
                            const description = descriptions.yi.value;
                            //console.table(e);
                            console.log(pageName + ' : ' + description);
                            console.timeLog('מדידת זמן', '2');
                            if (needed(pageName)) {
                                addDesc(pageName, description);
                            }
                        }
                    });
                }
            });
    }
    
    function needed(pageName) {
        var params = {
            "action": "query",
            "format": "json",
            "titles": pageName,
            "prop": "categories",
            "clcategories": "קאַטעגאָריע:בלעטער מיט קורצע דעסקריפציע"
        }

        var api = new mw.Api();
        var ret = true;
        api.get(params).done(function (data) {
            for (const p in data.query.pages) {
                if ("categories" in data.query.pages[p]) ret = false;
            }
        })
        return ret;
    }

    function addDesc(pageName, text) {
        var params = {
            "action": "edit",
            "format": "json",
            "title": pageName,
            "summary": "דעסקריפציע: " + text,
            "minor": 1,
            "bot": 1,
            "prependtext": text + '\n',
            "appendtext": '\n[' + '[קאַטעגאָריע:וויקידאטא דעסקריפציע]]</noinclude>',
            "utf8": 1
        },
            api = new mw.Api();

        api.postWithToken('csrf', params).done(function (data) {
            console.table(data);
            console.timeLog('מדידת זמן', 3);
        });
    }
    if (mw.config.get('wgUserGroups').indexOf('bot') !== -1 && confirm('להריץ?')) {
        console.time('מדידת זמן');
        listPages();
    }
})