jul11co-mangadl
Version:
Jul11co Web Manga Downloader
123 lines (100 loc) • 3.86 kB
JavaScript
var path = require('path');
var urlutil = require('url');
var utils = require('jul11co-wdt').Utils;
module.exports = {
name: 'ReadComicOnline.to',
website: 'http://readcomiconline.to',
match: function(link, options) {
return /readcomiconline\.to\/Comic\//g.test(link);
},
dispatch: function(saver, $, page, options, callback) {
// console.log('ReadComicOnline.to');
if ($('#formVerify').length) {
console.log('Captcha verify page.');
return setTimeout(callback, 5000);
}
// saver.saveHtmlFile($, page, options);
if ($('div#divImage').length) {
page.title = $('title').first().text();
if (page.title) {
page.title = page.title.replace(/(\r\n|\n|\r)/gm, '');
}
// var chapter_title = $('#navsubbar').text().trim().replace('information', '').trim();
var chapter_title = utils.replaceAll(page.title, '\n', ' ');
chapter_title = chapter_title.split('-')[0].trim();
console.log("Chapter title: " + chapter_title);
var chapter_script = $.html('script');
if (!chapter_script) {
console.log('No chapter script available');
return callback();
}
if (options.verbose) console.log(chapter_script);
var tmp_images = [];
var tmp_arr = chapter_script.match(/lstImages\.push(.*?)(?=[;]|$)/g);
if (tmp_arr) {
for (var i = 0; i < tmp_arr.length; i++) {
tmp_arr[i] = utils.replaceAll(tmp_arr[i], 'lstImages.push("', '');
tmp_arr[i] = utils.replaceAll(tmp_arr[i], '")', '');
tmp_images.push(tmp_arr[i]);
}
}
if (tmp_images.length == 0) {
return callback();
}
var image_file_names = [];
var chapter_images = [];
tmp_images.forEach(function(image_src) {
var image_url = image_src;
// console.log('Image URL: ' + image_url);
var image_url_obj = urlutil.parse(image_url);
var image_file_name = path.basename(image_url_obj.pathname);
image_file_name = saver.getUniqueFileName(image_file_names, image_file_name);
chapter_images.push({
src: image_url,
file: image_file_name
});
});
if (options.verbose) console.log(chapter_images);
saver.downloadMangaChapter({
chapter_url: page.url,
chapter_title: chapter_title,
chapter_images: chapter_images,
output_dir: page.output_dir
}, options, function(err) {
if (err) return callback(err);
callback();
});
} else if ($('div.episodeList').length || $('ul.list').length) {
console.log('Chapter list');
saver.setStateData('url', page.url);
if (options.auto_manga_dir) {
var manga_title = page.title.split('|')[0]
.replace('comic','').trim().split('\n')[0].trim();
console.log('Manga title: ' + manga_title);
manga_title = utils.replaceAll(manga_title, ':', ' -');
options.output_dir = path.join(options.output_dir, manga_title);
saver.setMangaOutputDir(options.output_dir);
}
var chapter_links = [];
if ($('div.episodeList').length) {
chapter_links = saver.getLinks($, page, 'table.listing');
page.chapter_links = chapter_links.map(function(chapter_link) {
return chapter_link + "&readType=1";
});
} else {
chapter_links = saver.getLinks($, page, 'ul.list');
page.chapter_links = chapter_links.map(function(chapter_link) {
return chapter_link + "&readType=1";
});
}
if (options.verbose) console.log(page.chapter_links);
page.chapter_links.reverse();
saver.processPages(page.chapter_links, options, function(err) {
if (err) return callback(err);
callback();
});
} else {
callback();
}
}
}