Jump to content

User:Technical 13/Scripts/OrphanStatus.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Technical 13 (talk | contribs) at 13:12, 12 December 2014 (increase limit since it's not quite as clear cut as how many, it will matter how many non-DAB and a few other criteria I need to incorporate.). 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.
if(mw.config.get('wgNamespaceNumber') === 0 && mw.config.get('wgAction') === "view" && $.inArray("All orphaned articles", mw.config.get('wgCategories')) >= 0){
    function deOrphan(backLinks){
        $(".loadinganimation").html("Article deOrphaning in progress...");
        var deOrphanerRequest = {
            action:"query",
            titles: mw.config.get( 'wgPageName' ),
            prop: "revisions",
            intoken: "edit",
            rvprop: "content",
            indexpageids: 1,
            dataType: "xml",
            format: "xml"
        };
        $.get(mw.config.get( 'wgScriptPath' )+"/api.php", deOrphanerRequest, function(deOrphanerResponse){
            var deOrphanerContent = $(deOrphanerResponse).find('rev').text();
            var oldMIparameter = false;
            if(deOrphanerContent.search(/\| *Orphan *=[\d\w\s\n]*(.*?\}\})/gi) != -1){ oldMIparameter = true; }
            deOrphanerContent = deOrphanerContent
                .replace(/\{\{Orphan(.*?)\}\}[\|\n]/gi, "")// Parse out orphan template (not) in multiple issues
                .replace(/\| *Orphan *=[\d\w\s\n]*(.*?\}\})/gi, "$1")// Parse out old style multiple issues orphan parameter
            var deOrphanerSubmit = {
                action: "edit",
                pageid: mw.config.get( 'wgArticleId' ),
                text: deOrphanerContent,
                summary: "Article [[User:Technical_13/Scripts/OrphanStatus|deOrphaned]]!",
                token: mw.user.tokens.get( 'editToken' )
            };
            $.when(
                $.post(mw.config.get( 'wgScriptPath' )+"/api.php", deOrphanerSubmit, function(deOrphanerSesponse){ })
            ).done(function() {
                var deOrphanedText = 'Article deOrphaned! <small>( ';
                if(oldMIparameter ){
                   deOrphanedText += '<b style="font-variant: small-caps;">Load</b> ';
                } else {
                   deOrphanedText += '<a href="#reLoad" onClick="location.reload();" style="font-weight: bold;">reload</a> | ';
                }
                deOrphanedText += '<a href="/w/index.php?title=' + mw.config.get("wgTitle") + '&diff=cur&oldid=prev" style="font-weight: bold;">diff</a> )</small>';
                $(".loadinganimation").html(deOrphanedText);
            });
        });
    }
    $('#firstHeading').append('&nbsp; <span class="loadinganimation" style="font-size: medium !important; color: #000 !important; font-family: sans-serif !important;">•   •&nbsp;&nbsp;•&nbsp;&nbsp;</span> ');
    var loadingAnimation = window.setInterval( function() { ($(".loadinganimation").html() == "•   •&nbsp;&nbsp;•&nbsp;&nbsp;" ? $(".loadinganimation").html("&nbsp;•   •&nbsp;&nbsp;•&nbsp;") :  ($(".loadinganimation").html() == "&nbsp;•   •&nbsp;&nbsp;•&nbsp;" ? $(".loadinganimation").html("&nbsp;&nbsp;•   •&nbsp;&nbsp;•") :  ($(".loadinganimation").html() == "&nbsp;&nbsp;•   •&nbsp;&nbsp;•" ? $(".loadinganimation").html("&nbsp;•&nbsp;&nbsp;•   •&nbsp;") :  $(".loadinganimation").html("•   •&nbsp;&nbsp;•&nbsp;&nbsp;")))) }, 250);
    var requestBacklinks = {
        action: "query",
        list: "backlinks",
        format: "json",
        blfilterredir: "nonredirects",
        bllimit: 500,
        blnamespace: 0,
        bltitle: mw.config.get('wgTitle')
    };
    $.get(mw.config.get( 'wgScriptPath' )+"/api.php", requestBacklinks, function(responseBacklinks){
        var backLinks = responseBacklinks.query.backlinks.length;
        switch (backLinks){
            case 0:
                var blStatement = 'This page is an <a href="/wiki/Wikipedia:Orphan" style="font-weight: bold;">orphan</a> as no <a href="/w/index.php?title=Special:WhatLinksHere/' + mw.config.get('wgTitle') + '&namespace=0&hideredirs=1&hidetrans=1" style="font-weight: bold;">other articles</a> link to it.';
                break;
            case 1:
                var blStatement = 'There is <b>1 link to this page</b> from an <a href="/w/index.php?title=Special:WhatLinksHere/' + mw.config.get('wgTitle') + '&namespace=0&hideredirs=1&hidetrans=1" style="font-weight: bold;">other article</a>. <small>(<a href="#deOrphan" onClick="deOrphan(' + backLinks + ');" style="font-weight: bold;">deOrphan</a>)</small>';
                break;
            case 2:
                var blStatement = 'There are <b>2 links to this page</b> from <a href="/w/index.php?title=Special:WhatLinksHere/' + mw.config.get('wgTitle') + '&namespace=0&hideredirs=1&hidetrans=1" style="font-weight: bold;">other articles</a>. <small>(<a href="#deOrphan" onClick="deOrphan(' + backLinks + ');" style="font-weight: bold;">deOrphan</a>)</small>';
                break;
            default:
                var blStatement = 'This page is not an <a href="/wiki/Wikipedia:Orphan" style="font-weight: bold;">orphan</a> as it meets the "Rule of Three" by having three or more links from <a href="/w/index.php?title=Special:WhatLinksHere/' + mw.config.get('wgTitle') + '&namespace=0&hideredirs=1&hidetrans=1" style="font-weight: bold;">other articles</a>. <small>(<a href="#deOrphan" onClick="deOrphan(' + backLinks + ');" style="font-weight: bold;">deOrphan</a>)</small>';
//                setTimeout( function(){ deOrphan(backLinks); }, 2500);
                break;
        }
        clearInterval(loadingAnimation);
        $(".loadinganimation").html(blStatement);
    });
}