UNPKG

jul11co-mangadl

Version:
123 lines (100 loc) 3.86 kB
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(); } } }