User:Awesome Aasim/infiniscroll.js

if (!infiniscroll) { var infiniscroll = {}; // script that would add infinite scrolling to Special:Contribs, Special:Log, Special:NewPages, and a few other pages infiniscroll.urlparams = (new URL(location.href)).searchParams; infiniscroll.loading = false; $(document).ready(function {        if (!infiniscroll.urlparams.get("noinfiniscroll")) {            var $ul = $('.mw-pager-navigation-bar').parent.children('ul').eq(0);            $ul.before(' ');            $('.mw-pager-body').eq(0).append($ul);            if ($('.mw-pager-body').length > 0 && (mw.config.get('wgAction') == 'history' || mw.config.get('wgNamespaceNumber') < 0)) {                var start = function  {                    $.get(location.href).done(function (result) { $(".mw-pager-body").eq(0).html($(result).find(".mw-pager-body").eq(0).html); $("#mw-content-text").prepend(' Infinite scrolling enabled. Press &#9632; to disable. '); }).fail(function { start; });               };                start;                infiniscroll.load = function  {                    if (!infiniscroll.loading) {                        infiniscroll.loading = true;                        var oldnexthtml = $(".mw-nextlink").eq(1).html;                        var oldnexttext = $(".mw-nextlink").eq(1).text;                        var nextlink = $(".mw-nextlink").eq(1).attr("href");                        if (nextlink) {                            $(".mw-nextlink").eq(1).html('Loading...');                            var oldselected = [0, 0];                            $(".mw-pager-body").find("li").each(function (i) { if ($(this).find('input').eq(0).prop("checked")) { oldselected[0] = i;                               } if ($(this).find('input').eq(1).prop("checked")) { oldselected[1] = i;                               } });                           $.get(nextlink).done(function (result) { $(result).find(".mw-pager-body").find("li").eq(0).find("input").eq(0).attr("style", null).prop("disabled", false); var $ul = $(result).find('.mw-pager-navigation-bar').parent.children('ul').eq(0); $ul.before(' '); $(result).find('.mw-pager-body').eq(0).append($ul); console.log($(result).find('.mw-pager-body').eq(0).html); $(".mw-pager-body").eq(0).append($(result).find(".mw-pager-body").eq(0).html); $(".mw-pager-body").find("li").each(function {                                    if ($(this).find("input").eq(0).attr("style") || $(this).find("input").eq(0).attr("id")) {                                        $(this).find("input").eq(0).attr("style", null);                                        $(this).find("input").eq(0).attr("id", null);                                        $(this).find("input").eq(0).prop("disabled", false);                                    }                                }); $(".mw-pager-body").find("li").eq(0).find("input").eq(0).attr("style", "visibility:hidden;"); $(".mw-pager-body").find("li").eq(oldselected[1]).find("input").eq(1).click; $(".mw-pager-body").find("li").eq(oldselected[0]).find("input").eq(0).click; if ($(result).find("a.mw-nextlink").eq(1).text) { $(".mw-nextlink").eq(1).html(oldnexthtml); $(".mw-nextlink").eq(1).attr("href", $(result).find(".mw-nextlink").eq(1).attr("href")); } else { document.getElementsByClassName("mw-nextlink")[1].outerHTML = oldnexttext; infiniscroll.loadHistory = function { return false; };                               }                                $('.mw-pager-body').find('.mw-history-compareselectedversions').remove; infiniscroll.loading = false; }).fail(function { $(".mw-nextlink").eq(1).html(oldnexthtml); infiniscroll.loading = false; });                       }                    }                };                $(".mw-nextlink").eq(0).after(' | &#9632;');                $(".mw-nextlink").eq(1).click(function (e) { e.preventDefault; infiniscroll.load; });               window.onscroll = function (ev) {                    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {                        infiniscroll.load;                    }                };                infiniscroll.load;            } else {                infiniscroll.loadSpecialPage = function  {                    // user contributions                    if ($(".mw-contributions-list, .mw-pager-body").length > 0) {                        $("#mw-content-text").prepend(' Infinite scrolling enabled. Press &#9632; to disable. ');                       infiniscroll.loadContribs = function  {                            if (!infiniscroll.loading) {                                infiniscroll.loading = true;                                var oldnexthtml = $(".mw-nextlink").eq(1).html;                                var oldnexttext = $(".mw-nextlink").eq(1).text;                                var nextlink = $(".mw-nextlink").eq(1).attr("href");                                if (nextlink) {                                    $(".mw-nextlink").eq(1).html('Loading...');                                    $.get(nextlink).done(function (result) { $(".mw-contributions-list, .mw-pager-body").eq(0).append($(result).find(".mw-contributions-list, .mw-pager-body").eq(0).html); if ($(result).find("a.mw-nextlink").eq(1).text) { $(".mw-nextlink").eq(1).html(oldnexthtml); $(".mw-nextlink").eq(1).attr("href", $(result).find(".mw-nextlink").eq(1).attr("href")); } else { document.getElementsByClassName("mw-nextlink")[1].outerHTML = oldnexttext; infiniscroll.loadContribs = function { return false; };                                       }                                        infiniscroll.loading = false; }).fail(function { $(".mw-nextlink").eq(1).html(oldnexthtml); infiniscroll.loading = false; });                               }                            }                        };                        $(".mw-nextlink").eq(0).after(' | &#9632;');                        $(".mw-nextlink").eq(1).click(function (e) { e.preventDefault; infiniscroll.loadContribs; });                       window.onscroll = function (ev) {                            if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {                                infiniscroll.loadContribs;                            }                        };                    }                    // log pages                    else if ($(".mw-logevent-loglines, .mw-pager-body").length > 0) {                        $("#mw-content-text").prepend(' Infinite scrolling enabled. Press &#9632; to disable. ');                       infiniscroll.loadLogs = function  {                            if (!infiniscroll.loading) {                                infiniscroll.loading = true;                                var oldnexthtml = $(".mw-nextlink").eq(1).html;                                var oldnexttext = $(".mw-nextlink").eq(1).text;                                var nextlink = $(".mw-nextlink").eq(1).attr("href");                                if (nextlink) {                                    $(".mw-nextlink").eq(1).html('Loading...');                                    $.get(nextlink).done(function (result) { $(".mw-logevent-loglines, .mw-pager-body").eq(0).append($(result).find(".mw-logevent-loglines, .mw-pager-body").eq(0).html); if ($(result).find("a.mw-nextlink").eq(1).text) { $(".mw-nextlink").eq(1).html(oldnexthtml); $(".mw-nextlink").eq(1).attr("href", $(result).find(".mw-nextlink").eq(1).attr("href")); } else { document.getElementsByClassName("mw-nextlink")[1].outerHTML = oldnexttext; infiniscroll.loadLogs = function { return false; };                                       }                                        infiniscroll.loading = false; }).fail(function { $(".mw-nextlink").eq(1).html(oldnexthtml); infiniscroll.loading = false; });                               }                            }                        };                        $(".mw-nextlink").eq(0).after(' | &#9632;');                        $(".mw-nextlink").eq(1).click(function (e) { e.preventDefault; infiniscroll.loadLogs; });                       window.onscroll = function (ev) {                            if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {                                infiniscroll.loadLogs;                            }                        };                    }                };                infiniscroll.loadHistoryPage = function  {                    var start = function  {                        $.get(location.href).done(function (result) { $("#pagehistory, .mw-pager-body").eq(0).html($(result).find("#pagehistory, .mw-pager-body").eq(0).html); $("#mw-content-text").prepend(' Infinite scrolling enabled. Press &#9632; to disable. '); }).fail(function { start; });                   };                    start;                    infiniscroll.loadHistory = function  {                        if (!infiniscroll.loading) {                            infiniscroll.loading = true;                            var oldnexthtml = $(".mw-nextlink").eq(1).html;                            var oldnexttext = $(".mw-nextlink").eq(1).text;                            var nextlink = $(".mw-nextlink").eq(1).attr("href");                            if (nextlink) {                                $(".mw-nextlink").eq(1).html('Loading...');                                var oldselected = [0, 0];                                $("#pagehistory, .mw-pager-body").find("li").each(function (i) { if ($(this).find('input').eq(0).prop("checked")) { oldselected[0] = i;                                   } if ($(this).find('input').eq(1).prop("checked")) { oldselected[1] = i;                                   } });                               $.get(nextlink).done(function (result) { $(result).find("#pagehistory, .mw-pager-body").find("li").eq(0).find("input").eq(0).attr("style", null).prop("disabled", false); $("#pagehistory, .mw-pager-body").eq(0).append($(result).find("#pagehistory, .mw-pager-body").eq(0).html); $("#pagehistory, .mw-pager-body").find("li").each(function {                                        if ($(this).find("input").eq(0).attr("style") || $(this).find("input").eq(0).attr("id")) {                                            $(this).find("input").eq(0).attr("style", null);                                            $(this).find("input").eq(0).attr("id", null);                                            $(this).find("input").eq(0).prop("disabled", false);                                        }                                    }); $("#pagehistory, .mw-pager-body").find("li").eq(0).find("input").eq(0).attr("style", "visibility:hidden;"); $("#pagehistory, .mw-pager-body").find("li").eq(oldselected[1]).find("input").eq(1).click; $("#pagehistory, .mw-pager-body").find("li").eq(oldselected[0]).find("input").eq(0).click; if ($(result).find("a.mw-nextlink").eq(1).text) { $(".mw-nextlink").eq(1).html(oldnexthtml); $(".mw-nextlink").eq(1).attr("href", $(result).find(".mw-nextlink").eq(1).attr("href")); } else { document.getElementsByClassName("mw-nextlink")[1].outerHTML = oldnexttext; infiniscroll.loadHistory = function { return false; };                                   }                                    $('#pagehistory, .mw-pager-body').find('.mw-history-compareselectedversions').remove; infiniscroll.loading = false; }).fail(function { $(".mw-nextlink").eq(1).html(oldnexthtml); infiniscroll.loading = false; });                           }                        }                    };                    $(".mw-nextlink").eq(0).after(' | &#9632;');                    $(".mw-nextlink").eq(1).click(function (e) { e.preventDefault; infiniscroll.loadHistory; });                   window.onscroll = function (ev) {                        if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {                            infiniscroll.loadHistory;                        }                    };                };                $(document).ready(function  { if (!infiniscroll.urlparams.get("noinfiniscroll")) { if (mw.config.get("wgNamespaceNumber") == -1) { infiniscroll.loadSpecialPage; } else if (mw.config.get("wgAction") == "history") { infiniscroll.loadHistoryPage; }                   }                });            }        }    }); }