Old: v1.7.7 - 2015-08-08 - fixed order of next page crash to allow image to load; added prismblush
New: v1.7.8 - 2015-08-17 - added kukudm, vortex-scans, japanzai, roseliascans, mangatopia, twistedhelscans (the site doesn't seem to be working ATM), sensescans, kireicake, substitutescans, mangaichiscans, shoujosense, friendshipscans; apply wait condition even when not autoloading
- @@ -1,7 +1,7 @@
- // ==UserScript==
- // @name Manga Loader
- // @namespace http://www.fuzetsu.com/MangaLoader
-// @version 1.7.7
- +// @version 1.7.8
- // @description Loads manga chapter into one page in a long strip format, supports switching chapters and works for a variety of sites, minimal script with no dependencies, easy to implement new sites, loads quickly and works on mobile devices through bookmarklet
- // @copyright 2014+, fuzetsu
- // @noframes
- @@ -55,10 +55,23 @@
- // @match http://manga.redhawkscans.com/reader/read/*
- // @match http://reader.s2smanga.com/read/*
- // @match http://casanovascans.com/read/*
- +// @match http://reader.vortex-scans.com/read/*
- +// @match http://reader.japanzai.com/read/*
- +// @match http://reader.roseliascans.com/read/*
- +// @match http://mangatopia.net/slide/read/*
- +// @match http://www.twistedhelscans.com/read/*
- +// @match http://reader.sensescans.com/reader/read/*
- +// @match http://reader.kireicake.com/reader/read/*
- +// @match http://substitutescans.com/reader/read/*
- +// @match http://mangaichiscans.mokkori.fr/fs/read/*
- +// @match http://reader.shoujosense.com/read/*
- +// @match http://www.friendshipscans.com/slide/read/*
- +
- // @match http://hentaifr.net/*
- // @match *://mangatraders.org/read-online/*/*
- // @match http://www.mangainn.me/manga/chapter/*
- // @match http://prismblush.com/comic/*
- +// @match http://www.kukudm.com/comiclist/*/*
- // ==/UserScript==
-
- // should be set to true externally if auto loading is wanted (e.g. bookmarklet)
- @@ -677,9 +690,13 @@
- invchap: true
- }, {
- name: 'foolslide',
- match: "^(http://manga.redhawkscans.com/reader/read/.+|http://reader.s2smanga.com/read/.+|http://casanovascans.com/read/.+)",
- img: 'img.open',
- next: 'img.open',
- + match: "^(http://manga.redhawkscans.com/reader/read/.+|http://reader.s2smanga.com/read/.+|http://casanovascans.com/read/.+|http://reader.vortex-scans.com/read/.+|http://reader.japanzai.com/read/.+|http://reader.roseliascans.com/read/.+|http://mangatopia.net/slide/read/.+|http://www.twistedhelscans.com/read/.+|http://reader.sensescans.com/reader/read/.+|http://reader.kireicake.com/reader/read/.+|http://substitutescans.com/reader/read/.+|http://mangaichiscans.mokkori.fr/fs/read/.+|http://reader.shoujosense.com/read/.+|http://www.friendshipscans.com/slide/read/.+)",
- + img: function() {
- + return W.pages[W.current_page].url;
- + },
- + next: function() {
- + return 'N/A';
- + },
- numpages: function() {
- return W.pages.length;
- },
- @@ -763,6 +780,25 @@
- match: "^http://prismblush.com/comic/.+",
- img: '#comic img',
- next: '#comic a'
- +}, {
- + name: 'kukudm',
- + match: "http://www.kukudm.com/comiclist/[0-9]+/[0-9]+/[0-9]+.htm",
- + img: function(ctx) {
- + var script = getEl('td > script[language=javascript]', ctx);
- + if(script) {
- + return 'http://n.kukudm.com/' + script.textContent.match(/newkuku[^']+/)[0];
- + }
- + },
- + next: function(ctx) {
- + var links = getEls('td > a', ctx);
- + return links[links.length - 1].getAttribute('href');
- + },
- + numpages: function(cur) {
- + return parseInt(document.body.textContent.match(/共([0-9]+)页/)[1]);
- + },
- + curpage: function() {
- + return parseInt(document.body.textContent.match(/第([0-9]+)页/)[1]);
- + }
- }];
-
- var log = function(msg, type) {
- @@ -1354,27 +1390,30 @@
-
- var success = implementations.some(function(imp) {
- var intervalId;
- + var waitAndLoad = function() {
- + if(typeof imp.wait === 'function') {
- + log('Waiting for load condition to be fulfilled');
- + intervalId = setInterval(function() {
- + if(imp.wait()) {
- + log('Condition fulfilled, loading');
- + clearInterval(intervalId);
- + loadManga(imp);
- + }
- + }, 200);
- + } else {
- + setTimeout(loadManga.bind(null, imp), imp.wait || 0);
- + }
- + };
- if (imp.match && (new RegExp(imp.match, 'i')).test(pageUrl)) {
- currentImpName = imp.name;
- if (autoload !== 'no' && (BM_MODE || mAutoload || autoload)) {
- log('autoloading...');
- if(typeof imp.wait === 'function') {
- log('Waiting for load condition to be fulfilled');
- intervalId = setInterval(function() {
- if(imp.wait()) {
- log('Condition fulfilled, loading');
- clearInterval(intervalId);
- loadManga(imp);
- }
- }, 200);
- } else {
- setTimeout(loadManga.bind(null, imp), imp.wait || 0);
- }
-
- + waitAndLoad();
- +
- return true;
- }
- // append button to dom that will trigger the page load
- btnLoad = createButton('Load Manga', function(evt) {
- loadManga(imp);
- + waitAndLoad();
- this.remove();
- }, btnLoadCss);
- document.body.appendChild(btnLoad);