Jump to content

User:Opencooper/talkCount.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Opencooper (talk | contribs) at 13:36, 17 May 2019 (tweak). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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.
// Shows the number of discussions on the talk page
// Quick and dirty; doesn't bother with stuff like namespace numbers

function setup() {
    // If we're not reading an article, do nothing
    if (!(mw.config.get('wgAction') === 'view'
          && mw.config.get('wgIsArticle')
          && !location.search.split('oldid=')[1]
          && mw.config.get('wgPageName') !== 'Main_Page')) {
        return;
    }

    // Check if we're on a talk page
    var namespace = mw.config.get( 'wgCanonicalNamespace' );
    if (/talk/i.test(namespace)) {
    	return;
    }

    // Check if talk page is a redlink
    if ($("#ca-talk.new").length !== 0) {
        return;
    }

    var talkUrl = $("#ca-talk a").attr("href");
    var talkTitle = talkUrl.split("/wiki/")[1];
    talkTitle = decodeURI(talkTitle);

    // Get parsed talk page section info
    // API docs: https://en.wikipedia.org/w/api.php?action=help&modules=parse
    $.ajax({
        url: "https://en.wikipedia.org/w/api.php",
        data: {
            action: "parse",
            format: "json",
            page: talkTitle,
            prop: "sections"
        },
        success: countSections
    });
}

function countSections(response) {
	var sectionsCount = response.parse.sections.length;
	var countHTML = " <small>(" + sectionsCount + ")</small>";
	$("#ca-talk a").append(countHTML);
}

setup();