18H Hentai Manga Autoload

Autoload hentai manga and CG images on one page on 18h.mm-cg.com.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name           18H Hentai Manga Autoload
// @description    Autoload hentai manga and CG images on one page on 18h.mm-cg.com.
// @grant          unsafeWindow
// @include        http://*.servik.com/*
// @include        http://18h.mm-cg.com/*
// @version 0.0.1.20140809083006
// @namespace https://greasyfork.org/users/2233
// ==/UserScript==

var wnd = window
var doc = wnd.document
var loc = location
var href = loc.href

var load_imgs = function()
{
    doc.body.innerHTML = ''
    var d = doc.createDocumentFragment()
    for(var i=0, len=imgs.length; i<len; i++)
    {
        var img = new Image()
        img.id = i
        img.onerror = function() { this.onerror = null; this.style.display = 'none' }
        img.src = imgs[i]
        img.style.cssText = 'display: block; margin-left: auto; margin-right: auto'
        img.width = wnd.innerWidth * 0.70
        d.appendChild(doc.createTextNode('p. '+i))
        d.appendChild(doc.createElement('BR'))
        d.appendChild(img)
        d.appendChild(doc.createElement('BR'))
    }
    doc.body.appendChild(d)
}

if(/^http:\/\/18h\.mm-cg\.com\//.test(href))
{
    if(href.indexOf('.html')==-1)
    {
        try {
            doc.getElementById('fwin_dialog_submit').click()
            close_btns = doc.getElementsByClassName('mmad_drift_title')
            close_btns[1].click()
        } catch(e) {}

        // the key of the stored cookie
        var key = '18h'
        var sub = /.*\/(.*)/.exec(href)[1]
        if(sub) { key = key + '_' + sub }

        var lnks = doc.getElementsByTagName('A')
        for(var i=lnks.length-1; i>=0; i--)
        {
            lnks[i].target = '_blank'
            lnks[i].addEventListener('click', function(evt) {
                evt.preventDefault()
            }, false)
            lnks[i].addEventListener('mouseup', function(evt) {
                if(evt.ctrlKey)
                {
                    var t = this.text
                    if(t == '') { return }
                    var c = key + '=' + t + ' p.' + prompt('Title: ' + t + '\nEnter the page number: ', '0') + '; expires=Fri, 31 Dec 9999 23:59:59 GMT;'
                    if(/ p.[0-9]/.test(c))
                    {
                        doc.cookie = c
                        var e = this
                        var orig_color = e.style.color
                        e.style.color = '#ff9900'
                        setTimeout(function() {e.style.color = orig_color}, 2000)
                    }
                    return
                }
                wnd.open(this.href, '_blank') // (X) this.href + '#0'
                this.style.color = 'purple'
            }, false)
        }

        // press <cr> to focus the stored link and open it in a new tab
        addEventListener('keydown', function(evt) {
            if(evt.keyCode == 13)
            {
                evt.preventDefault()
                var a = doc.cookie.split('; ')
                var len = a.length
                var k, v, p
                for(var i=0; i<len; i++)
                {
                    k = /(.*?)=(.*)/.exec(a[i])[1]
                    v = /(.*?)=(.*)/.exec(a[i])[2]
                    if(k == key)
                    {
                        p = /(.*) p\.(\d+)/.exec(v)[2]
                        v = /(.*) p\.(\d+)/.exec(v)[1]
                        break
                    }
                    else { k = v = p = '' }
                }
                if(v)
                {
                    var a = []
                    var choice = 0
                    var len = lnks.length
                    for(var i=0; i<len; i++) { if(v == lnks[i].text) { a.push(i) } } // try to find the stored links from all links
                    len = a.length
                    if(len >= 2)
                    {
                        var s = ''
                        for(var i=0; i<len; i++) { s = s + '\n(' + i + ') ' + lnks[a[i]].href }
                        s = s + '\nEnter a number:'
                        choice = parseInt(prompt(s, '0'))
                    }
                    if(!isNaN(choice))
                    {
                        choice = a[choice]
                        lnks[choice].focus()
                        wnd.open(lnks[choice].href + '#' + p, '_blank')
                        lnks[choice].style.color = '#ff9900'
                        setTimeout(function() {lnks[choice].style.color = 'purple'}, 2000)
                    }
                }
            }
        }, false)
        throw 'exit'
    }
    if(href.indexOf('#')==-1) { loc.href = loc.href + '#' }
    var imgs = []
    var wnd = unsafeWindow
    if(typeof wnd.Large_cgurl != 'undefined') { imgs = wnd.Large_cgurl } else { alert('Cannot find the image links.'); throw 'exit' }
    imgs.shift()
    load_imgs()
}
else if(/^http:\/\/.*?\.servik\.com\//.test(href))
{
    if(href.indexOf('#')==-1) { loc.href = loc.href + '#' }
    var imgs = []
    href = href.replace(loc.hash, "")
    for(var i=1; i<=9; i++) { imgs[i] = href + '00' + i + '.jpg' }
    for(var i=10; i<=99; i++) { imgs[i] = href + '0' + i + '.jpg' }
    for(var i=100; i<=999; i++) { imgs[i] = href + '' + i + '.jpg' }
    imgs.shift()
    load_imgs()
}