Infinite Scroll

Infinite scrolling for March 2019 layout redesign.

As of 2019-04-08. See the latest version.

// ==UserScript==
// @name         Infinite Scroll
// @author       Hauffen
// @description  Infinite scrolling for March 2019 layout redesign.
// @version      1.65
// @include      /https?:\/\/(e-|ex)hentai\.org\/.*/
// @require      https://code.jquery.com/jquery-3.3.1.min.js
// @namespace    https://greasyfork.org/users/285675
// ==/UserScript==

(function() {
    var url = document.URL;
    var page = 0;
    var query, nextUrl;

    function newUrl() {
        if (url.split('?').length > 1) {
            if (!$.isNumeric(url.split('?')[1].substr(5,1))) {
                query = url.split('?')[1];
            } else {
                page = url.split('?')[1].substr(5,1);
            }
            nextUrl = (query != null) ? "https://" + window.location.hostname + "/?page=" + (page + 1) + "&" + query : "https://" + window.location.hostname + "/?page=" + (page + 1);

            if (page > 0 && $.isNumeric(url.split('?')[1].substr(5,1))) {
                query = url.split('?')[1].split('&')[1];
                nextUrl = (query != null) ? "https://" + window.location.hostname + "/?page=" + (page + 1) + "&" + query : "https://" + window.location.hostname + "/?page=" + (page + 1);
            }
        } else {
            nextUrl = "https://" + window.location.hostname + "/?page=" + (page + 1);
        }
    };

    newUrl();

    $(window).on('scroll', function() {
        if (url.split('/')[3] === "g" || url.split('/')[3] === "s") {
            return;
        }

        if ($(window).scrollTop() + $(window).height() >= $(document).height() && nextUrl != null) {
            var offset = "&from=" + document.getElementsByClassName('itg')[0].lastChild.getElementsByTagName("a")[0].href.split("/")[4];
            var $content = $('<div>');
            $content.load(`${nextUrl + offset}`, function() {
                var divs = null;

                if (window.location.hostname.substr(1,1) !== "x") {
                    if (document.getElementsByTagName("select")[0].selectedIndex == 3) {
                        divs = this.getElementsByClassName('itg')[0].childrenn;
                    } else {
                        divs = this.getElementsByClassName('itg')[0].children;
                    }
                } else {
                    if (document.getElementsByTagName("select")[0].selectedIndex == 4) {
                        divs = this.getElementsByClassName('itg')[0].children;
                    } else {
                        divs = this.getElementsByClassName('itg')[0].children[0].children;
                    }
                }

                if (document.getElementsByTagName("select")[0].selectedIndex !== 3 || document.getElementsByTagName("select")[0].selectedIndex !== 4) {
                    divs[0].parentNode.removeChild(divs[0]);
                }

                while (divs.length > 0) {
                    $('.itg').append(divs[0]);
                };
            });

            page++;
            newUrl();
        }
    });

})();