Malnova: v1.8.3 - 2015/09/25 - moved all settings into settings menu, no more greasymonkey menu; you can now choose exactly how many pages to load at a time
Nova: v1.8.4 - 2015/09/28 - added mangachapter.me, kawaii.ca/reader, http://manga.famatg.com, http://www.demonicscans.com/FoOlSlide/directory, http://kobato.hologfx.com/reader, http://reader.cafeconirst.com, http://reader.evilflowers.com, http://manga.inpowerz.com, http://necron99scans.com/reader, http://onetimescans.com/foolslide/directory, http://reader.psscans.info
- @@ -1,7 +1,7 @@
- // ==UserScript==
- // @name Manga Loader
- // @namespace http://www.fuzetsu.com/MangaLoader
-// @version 1.8.3
- +// @version 1.8.4
- // @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
- @@ -46,6 +46,9 @@
- // @match http://www.mangainn.me/manga/chapter/*
- // @match http://*.kukudm.com/comiclist/*/*
- // @match http://www.mangamap.com/*/*
- +// @match http://www.mangachapter.me/*/*/*.html
- +// @match http://kawaii.ca/reader/*
- +// @match http://lonemanga.com/manga/*/*
- // -- FOOLSLIDE START
- // @match http://manga.redhawkscans.com/reader/read/*
- // @match http://reader.s2smanga.com/read/*
- @@ -61,6 +64,15 @@
- // @match http://mangaichiscans.mokkori.fr/fs/read/*
- // @match http://reader.shoujosense.com/read/*
- // @match http://www.friendshipscans.com/slide/read/*
- +// @match http://manga.famatg.com/read/*
- +// @match http://www.demonicscans.com/FoOlSlide/read/*
- +// @match http://reader.psscans.info/read/*
- +// @match http://onetimescans.com/foolslide/read/*
- +// @match http://necron99scans.com/reader/read/*
- +// @match http://manga.inpowerz.com/read/*
- +// @match http://reader.evilflowers.com/read/*
- +// @match http://reader.cafeconirst.com/read/*
- +// @match http://kobato.hologfx.com/reader/read/*
- // -- FOOLSLIDE END
- // ==/UserScript==
-
- @@ -88,7 +100,7 @@
- , curpage: '#page_select' // css selector to get the current page. usually the same as numPages if it's a select element
- , nextchap: '#next_chap' // css selector to get the link to the next chapter
- , prevchap: '#prev_chap' // same as above except for previous
- , wait: 3000 // how many ms to wait before auto loading (to wait for elements to load)
- + , wait: 3000 // how many ms to wait before auto loading (to wait for elements to load), or a css selector to keep trying until it returns an elem
- , pages: function(next_url, current_page_number, callback, extract_function) {
- // gets called requesting a certain page number (current_page_number)
- // to continue loading execute callback with img to append as first parameter and next url as second parameter
- @@ -286,7 +298,7 @@
- xhr.send();
- }
- }, {
- name: 'senmanga',
- + name: 'senmanga-raw',
- match: "^http://raw\\.senmanga\\.com/[^/]*/[^/]*/[0-9]*",
- img: function() {
- return W.new_image;
- @@ -556,7 +568,7 @@
- invchap: true
- }, {
- name: 'foolslide',
- 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/.+)",
- + 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/.+|http://manga.famatg.com/read/.+|http://www.demonicscans.com/FoOlSlide/read/.+|http://necron99scans.com/reader/read/.+|http://www.demonicscans.com/FoOlSlide/read/.+|http://reader.psscans.info/read/.+|http://onetimescans.com/foolslide/read/.+|http://necron99scans.com/reader/read/.+|http://manga.inpowerz.com/read/.+|http://reader.evilflowers.com/read/.+|http://reader.cafeconirst.com/read/.+|http://kobato.hologfx.com/reader/read/.+)",
- img: function() {
- return W.pages[W.current_page].url;
- },
- @@ -652,6 +664,45 @@
- curpage: function() {
- return parseInt(document.body.textContent.match(/第([0-9]+)页/)[1]);
- }
- +}, {
- + name: 'mangachapter',
- + match: "http://www\\.mangachapter\\.me/[^/]+/[^/]+/[^/]+.html",
- + img: '#mangaImg, #viewer > table > tbody > tr > td:nth-child(1) > a:nth-child(2) > img',
- + next: '.page-select + a.button-page',
- + numpages: '.page-select select',
- + curpage: '.page-select select',
- + invchap: true,
- + nextchap: '#top_chapter_list',
- + prevchap: '#top_chapter_list',
- + wait: '#top_chapter_list'
- +}, {
- + name: 'kawaii',
- + match: "http://kawaii.ca/reader/.+",
- + img: '.picture',
- + next: 'select[name=page] + a',
- + numpages: 'select[name=page]',
- + curpage: 'select[name=page]',
- + nextchap: function(prev) {
- + var next = extractInfo('select[name=chapter]', {type:'value', val: (prev ? -1 : 1)});
- + if(next) return location.href.replace(/\/reader\/([^/]+)(\/.+)?$/, '/reader/$1/' + next);
- + },
- + prevchap: function() {
- + return this.nextchap(true);
- + }
- +}, {
- + name: 'lonemanga',
- + match: "http://lonemanga.com/manga/[^/]+/[^/]+",
- + img: '#imageWrapper img',
- + next: '#imageWrapper a',
- + numpages: '.viewerPage',
- + curpage: '.viewerPage',
- + nextchap: function(prev) {
- + var next = extractInfo('.viewerChapter', {type:'value', val: (prev ? 1 : -1)});
- + if(next) return location.href.replace(/\/manga\/([^/]+)\/.+$/, '/manga/$1/' + next);
- + },
- + prevchap: function() {
- + return this.nextchap(true);
- + }
- }];
-
- var log = function(msg, type) {
- @@ -1236,6 +1287,15 @@
- log('Condition fulfilled, loading');
- clearInterval(intervalId);
- loadManga(imp);
- + }
- + }, 200);
- + } else if(typeof imp.wait === 'string') {
- + log('Waiting for load condition to be fulfilled');
- + intervalId = setInterval(function() {
- + if (getEl(imp.wait)) {
- + log('Condition fulfilled, loading');
- + clearInterval(intervalId);
- + loadManga(imp);
- }
- }, 200);
- } else {