Jump to content

User:RoySmith/spi-tools.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
'use strict';

/**
 * Fires on page load, adds the SPI-Tools portlet.
 *
 * pageTitle is the full title of the page this is running on,
 * i.e. "Wikipedia:Sockpuppet investigations/..."
 */
function spiTools_addLink(pageTitle) {
    mw.loader.using('mediawiki.util').then(function () {
        const parts = pageTitle.split('/');
        const last = parts.length - 1;
        const caseName = parts[last] == 'Archive' ? parts[last - 1] : parts[last];
        mw.util.addPortletLink('p-cactions',
                               'javascript:spiTools_init("' + caseName + '")',
                               'SPI Tools',
                               'ca-spiTools',
                               'Open SPI Tools');
    });
};

async function spiTools_init(caseName) {
    const baseURL = 'https://spi-tools.toolforge.org/spi/?caseName=';
    window.open(baseURL + encodeURIComponent(caseName));
};

/**
 * Install on SPI pages
 */
mw.hook('wikipage.content').add(function () {
    const wikipediaNS = mw.config.get('wgNamespaceIds')['wikipedia']
    if (mw.config.get('wgNamespaceNumber') == wikipediaNS) {
        const titleRegex = /^Sockpuppet investigations\/[^\/]+/;
        const pageTitle = mw.config.get("wgTitle");
        if (titleRegex.test(pageTitle)) {
            spiTools_addLink(pageTitle);
        }
    }
});