18H Hentai Manga Autoload

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

目前為 2014-08-02 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 18H Hentai Manga Autoload
  3. // @description Autoload hentai manga and CG images on one page on 18h.mm-cg.com
  4. // @include http://*.servik.com/*
  5. // @include http://18h.mm-cg.com/*
  6. // @version 0.0.1.20140802221238
  7. // @namespace https://greasyfork.org/users/2233
  8. // ==/UserScript==
  9.  
  10. var wnd = window
  11. var doc = wnd.document
  12. var loc = location
  13. var href = loc.href
  14.  
  15. var load_imgs = function()
  16. {
  17. doc.body.innerHTML = ''
  18. var d = doc.createDocumentFragment()
  19. for(var i=0, len=imgs.length; i<len; i++)
  20. {
  21. var img = new Image()
  22. img.id = i
  23. img.onerror = function(){ this.onerror = null; this.style.display = 'none' }
  24. img.src = imgs[i]
  25. img.style.cssText = 'display: block; margin-left: auto; margin-right: auto'
  26. img.width = wnd.innerWidth * 0.70
  27. d.appendChild(doc.createTextNode('p. '+i))
  28. d.appendChild(doc.createElement('BR'))
  29. d.appendChild(img)
  30. d.appendChild(doc.createElement('BR'))
  31. }
  32. doc.body.appendChild(d)
  33. }
  34.  
  35. if(/^http:\/\/18h\.mm-cg\.com\//.test(href))
  36. {
  37. if(href.indexOf('.html')==-1)
  38. {
  39. try {
  40. doc.getElementById('fwin_dialog_submit').click()
  41. close_btns = doc.getElementsByClassName('mmad_drift_title')
  42. close_btns[1].click()
  43. } catch(e) {}
  44.  
  45. // the key of the stored cookie
  46. var key = '18h'
  47. var sub = /.*\/(.*)/.exec(href)[1]
  48. if(sub) { key = key + '_' + sub }
  49.  
  50. var lnks = doc.getElementsByTagName('A')
  51. for(var i=lnks.length-1; i>=0; i--)
  52. {
  53. lnks[i].target = '_blank'
  54. lnks[i].addEventListener('click', function(evt){
  55. evt.preventDefault()
  56. }, false)
  57. lnks[i].addEventListener('mouseup', function(evt){
  58. if(evt.ctrlKey)
  59. {
  60. var t = this.text
  61. if(t == '') { return }
  62. var c = key + '=' + t + ' p.' + prompt('Title: ' + t + '\nEnter the page number: ', '0') + '; expires=Fri, 31 Dec 9999 23:59:59 GMT;'
  63. if(/ p.[0-9]/.test(c))
  64. {
  65. doc.cookie = c
  66. var e = this
  67. var orig_color = e.style.color
  68. e.style.color = '#ff9900'
  69. setTimeout(function(){e.style.color = orig_color}, 2000)
  70. }
  71. return
  72. }
  73. wnd.open(this.href, '_blank') // (X) this.href + '#0'
  74. this.style.color = 'purple'
  75. }, false)
  76. }
  77.  
  78. // press <cr> to focus the stored link and open it in a new tab
  79. addEventListener('keydown', function(evt){
  80. if(evt.keyCode == 13)
  81. {
  82. evt.preventDefault()
  83. var a = doc.cookie.split('; ')
  84. var len = a.length
  85. var k, v, p
  86. for(var i=0; i<len; i++)
  87. {
  88. k = /(.*?)=(.*)/.exec(a[i])[1]
  89. v = /(.*?)=(.*)/.exec(a[i])[2]
  90. if(k == key)
  91. {
  92. p = /(.*) p\.(\d+)/.exec(v)[2]
  93. v = /(.*) p\.(\d+)/.exec(v)[1]
  94. break
  95. }
  96. else { k = v = p = '' }
  97. }
  98. if(v)
  99. {
  100. var a = []
  101. var choice = 0
  102. var len = lnks.length
  103. for(var i=0; i<len; i++) { if(v == lnks[i].text) { a.push(i) } } // try to find the stored links from all links
  104. len = a.length
  105. if(len >= 2)
  106. {
  107. var s = ''
  108. for(var i=0; i<len; i++) { s = s + '\n(' + i + ') ' + lnks[a[i]].href }
  109. s = s + '\nEnter a number:'
  110. choice = parseInt(prompt(s, '0'))
  111. }
  112. if(!isNaN(choice))
  113. {
  114. choice = a[choice]
  115. lnks[choice].focus()
  116. wnd.open(lnks[choice].href + '#' + p, '_blank')
  117. lnks[choice].style.color = '#ff9900'
  118. setTimeout(function(){lnks[choice].style.color = 'purple'}, 2000)
  119. }
  120. }
  121. }
  122. }, false)
  123. throw 'exit'
  124. }
  125. if(href.indexOf('#')==-1) { loc.href = loc.href + '#' }
  126. var imgs = []
  127. var wnd = unsafeWindow
  128. if(typeof wnd.Large_cgurl != 'undefined') { imgs = wnd.Large_cgurl } else { alert("Cannot find the image links."); throw 'exit' }
  129. imgs.shift()
  130. load_imgs()
  131. }
  132. else if(/^http:\/\/.*?\.servik\.com\//.test(href))
  133. {
  134. if(href.indexOf('#')==-1) { loc.href = loc.href + '#' }
  135. var imgs = []
  136. href = href.replace(loc.hash,"")
  137. for(var i=1; i<=9; i++) { imgs[i] = href + '00' + i + '.jpg' }
  138. for(var i=10; i<=99; i++) { imgs[i] = href + '0' + i + '.jpg' }
  139. for(var i=100; i<=999; i++) { imgs[i] = href + '' + i + '.jpg' }
  140. imgs.shift()
  141. load_imgs()
  142. }