Greasy Fork is available in English.

setnmh

try to take over the world!

// ==UserScript==
// @name         setnmh
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://www.setnmh.com/series-*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    function waitUntil(success) {
        return new Promise(resolve => {
            var resolved = false;
            var timer = setInterval(() => {
                if (resolved) {
                    return;
                }

                var r = success();
                if (r) {
                    resolve(r);
                    resolved = true;
                    clearInterval(timer);
                }
            }, 1000);
        });
    }

    var last;

    window.addEventListener('message', event => {
        if (window.parent != window) {
            window.parent.postMessage(event.data, '*');
        } else {
            if (!last) {
                var divs = document.querySelectorAll('div.ptview');
                last = divs.item(divs.length - 1);
            }
            if (event.data.outerHTML){
                var n = last.parentNode.insertBefore(document.createElement('div'), last.nextSibling);
                n.outerHTML = event.data.outerHTML;
                last = undefined;
            }
            if (event.data.loading){
                var n = last.parentNode.insertBefore(document.createElement('a'), last.nextSibling);
                n.style.display = 'block';
                n.style.textAlign = 'center';
                n.href = event.data.loading;
                n.innerText = event.data.loading;
                last = n;
            }
        }
    });

    waitUntil(() => document.querySelector('div.ptview>img'))
        .then(img=>{
        if (window.parent != window) {
            window.parent.postMessage({outerHTML:img.parentNode.outerHTML}, '*');
        }
    })
        .then(() => waitUntil(() => document.querySelector('div.setnmh-pagedos>div.setnmh-nextpage:last-child>a')))
        .then(a => a.getAttribute('href') && a)
        .then(a => {
        var iframe = document.createElement('iframe');
        iframe.style.position = 'absolute';
        iframe.style.width = '0px';
        iframe.style.height = '0px';
        document.body.appendChild(iframe);
        iframe.src = a.href;

        console.log('Loading ' + a.href);
        window.parent.postMessage({loading:a.href},'*');
    });
})();