User:Legoktm/disambig.js

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*
    disambig.js - Script to update descriptions
    for an item to indicate its a disambiguation
    page.
 
    Written by Legoktm, and Ebraminio
 
    Released as CC-Zero
 
*/
/*jslint browser: true, unparam: true*/
/*global jQuery: false, mediaWiki: false*/
(function ($, mw) {
    'use strict';
    var disambigClaim = {
        'entity-type': 'item',
        'numeric-id': 11651459 // [[Q11651459]]: Wikipedia:Disambiguation
    }, descriptions = {
        'descriptions': {
            'gu': {
                'value': 'સ્પષ્ટતા પાનું',
                'language': 'gu'
            },
            'en': {
                'value': 'Wikipedia disambiguation page',
                'language': 'en'
            },
            'is': {
                'value': 'aðgreiningarsíða á Wikipediu',
                'language': 'is'
            },
            'it': {
                'value': 'pagina di disambiguazione di Wikipedia',
                'language': 'it'
            },
            'cs': {
                'value': 'rozcestník',
                'language': 'cs'
            },
            'gl': {
                'value': 'páxina de homónimos',
                'language': 'gl'
            },
            'id': {
                'value': 'Halaman disambiguasi',
                'language': 'id'
            },
            'jv': {
                'value': 'Kaca sambungan',
                'language': 'jv'
            },
            'su': {
                'value': 'Kaca disambiguasi',
                'language': 'su'
            },
            'es': {
                'value': 'desambiguación de Wikipedia',
                'language': 'es'
            },
            'ru': {
                'value': 'страница значений',
                'language': 'ru'
            },
            'nl': {
                'value': 'doorverwijspagina',
                'language': 'nl'
            },
            'pt': {
                'value': 'página de desambiguação',
                'language': 'pt'
            },
            'nb': {
                'value': 'Wikipedia-pekerside',
                'language': 'nb'
            },
            'ca': {
                'value': 'Pàgina de desambiguació',
                'language': 'ca'
            },
            'fr': {
                'value': "page d'homonymie",
                'language': 'fr'
            },
            'de': {
                'value': 'Begriffsklärungsseite',
                'language': 'de'
            },
            'fa': {
                'value': 'یک صفحهٔ ابهام\u200cزدایی در ویکی\u200cپدیا',
                'language': 'fa'
            },
            'hi': {
                'value': 'बहुविकल्पी पृष्ठ',
                'language': 'hi'
            },
            'fi': {
                'value': 'täsmennyssivu',
                'language': 'fi'
            },
            'ko': {
                'value': '위키백과 동음이의어 문서',
                'language': 'ko'
            },
            'ur': {
                'value': 'ویکیپیڈیا ضد ابہام صفحہ',
                'language': 'ur'
            },
            'ms': {
                'value': 'Laman nyahkekaburan',
                'language': 'ms'
            },
            'dsb': {
                'value': 'wěcejwóznamowosć',
                'language': 'dsb'
            },
            'or': {
                'value': 'ବହୁବିକଳ୍ପ ପୃଷ୍ଠା',
                'language': 'or'
            },
            'pl': {
                'value': 'Strona ujednoznaczniająca',
                'language': 'pl'
            },
        }
    };
 
    /**
     * Finished! Reload the page please!
     */
    function done() {
        window.location = mw.util.getUrl(mw.config.get('wgPageName'));
    }
 
    /**
     * Log data on async calls
     */
    function log(data) {
        // console.log(data);
        return;
    }
 
    /**
     * Add the disambiguation claim then call #done
     */
    function secondStep() {
        if ($('.wb-claim-section-p107 a[href="/wiki/Q11651459"]').length !== 0) {
            // Okay, there is a disambig P107 claim
            done();
            return;
        }
 
        new mw.Api().post({
            action: 'wbcreateclaim',
            entity: mw.config.get('wgPageName'),
            property: 'P107',
            snaktype: 'value',
            token: mw.user.tokens.get('editToken'),
            value: JSON.stringify(disambigClaim)
        }).always(log).done(done);
    }
 
    /**
     * Add the descriptions then call #secondStep
     */
    function firstStep() {
        new mw.Api().post({
            action: 'wbeditentity',
            id: mw.config.get('wgPageName'),
            token: mw.user.tokens.get('editToken'),
            bot: 1,
            summary: 'changed descriptions in 25 languages ([[User:legoktm/disambig.js|js]])',
            data: JSON.stringify(descriptions)
        }).always(log).done(secondStep);
    }
 
    if (mw.config.get('wgNamespaceNumber') === 0) {
        $(mw.util.addPortletLink('p-cactions', '#', 'Disambig', 'ca-disambig', 'Update descriptions for a disambig page'))
            .click(firstStep);
    }
}(jQuery, mediaWiki));