UNPKG

jul11co-mangadl

Version:
128 lines (106 loc) 4.25 kB
var path = require('path'); var utils = require('jul11co-wdt').Utils; module.exports = { name: 'MarvelVN', website: 'http://marvel.vn', match: function(link, options) { return /marvel\.vn/g.test(link); }, dispatch: function(saver, $, page, options, callback) { if (options.group_by_site && !options.orig_output_dir) { options.orig_output_dir = options.output_dir; options.output_dir = path.join(options.output_dir, 'MarvelVN'); saver.setMangaOutputDir(options.output_dir); } var nextChapter = function(err) { if (!options.chapter_links) options.chapter_links = []; if (!options.visited_chapter_links) options.visited_chapter_links = []; var next_chapter_link = ''; for (var i = 0; i < options.chapter_links.length; i++) { var chapter_link = options.chapter_links[i]; if (options.visited_chapter_links.indexOf(chapter_link) == -1) { var state = saver.getStateData(chapter_link); if (!state || !state.done) { next_chapter_link = chapter_link; break; } } } if (next_chapter_link && next_chapter_link !== '') { if (options.verbose) console.log('Next chapter:', next_chapter_link); saver.processPage(next_chapter_link, options, callback); } else { callback(err); } } if ($('.detail-comic').length) { var chapter_link = page.url; var chapter_title = $('h1.headline').eq(0).text(); var chapter_images = saver.getImages($, page, '.detail-comic'); // $('div.magnify .large').each(function() { // var background_image = $(this).css('background'); // if (background_image && background_image != '' && background_image.indexOf('url(') >= 0) { // var image_src = utils.extractSubstring(background_image, 'url(',')'); // // console.log(image_src); // if (image_src && image_src != '') { // chapter_images.push({ // src: image_src // }); // } // } // }); if (options.verbose) console.log(chapter_images); if ($('.select-chapter-box select.select-chapter').length) { $('.select-chapter-box select.select-chapter option').each(function() { var chapter_link = $(this).attr('value') || $(this).val(); if (!options.chapter_links) { options.chapter_links = []; } if (options.chapter_links.indexOf(chapter_link) == -1) { options.chapter_links.push(chapter_link); } }); } if (!options.visited_chapter_links) { options.visited_chapter_links = []; } options.visited_chapter_links.push(chapter_link); page.output_dir = page.output_dir.replace('.html', ''); 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 nextChapter(err); nextChapter(); }); } else if (page.url.indexOf('/series/') >= 0) { console.log('Chapter list'); // if (options.group_by_site) { // options.output_dir = path.join(options.output_dir, 'MarvelVN'); // saver.setMangaOutputDir(options.output_dir); // } if (options.auto_manga_dir) { var manga_title = $('h1.headline').text().trim(); console.log('Manga title: ' + manga_title); options.output_dir = path.join(options.output_dir, manga_title); saver.setMangaOutputDir(options.output_dir); } saver.setStateData('url', page.url); var links = saver.getLinks($, page, '#wrapper'); if (options.verbose) console.log(links); options.chapter_links = links.filter(function(link) { return (link.indexOf('/doc-truyen/') >= 0); }); if (options.verbose) console.log(options.chapter_links); console.log(options.chapter_links.length + ' chapters'); saver.processPages(options.chapter_links, options, function(err) { if (err) return callback(err); callback(); }); } else { callback(); } } }