jul11co-mangadl
Version:
Jul11co Web Manga Downloader
128 lines (106 loc) • 4.25 kB
JavaScript
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();
}
}
}