jul11co-mangadl
Version:
Jul11co Web Manga Downloader
83 lines (64 loc) • 2.68 kB
JavaScript
var path = require('path');
var urlutil = require('url');
module.exports = {
name: 'Truyen18',
website: 'http://truyen18.org',
match: function(link, options) {
return /truyen18\.org/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, 'Truyen18');
saver.setMangaOutputDir(options.output_dir);
}
if ($('.entry').length) {
var chapter_url = page.url;
var chapter_title = page.title;
var images_list_html = $('#truyen18-eedit').html();
$('body').append('<div id="chapter-images"></div>');
$('#chapter-images').html(images_list_html);
var chapter_images = saver.getImages($, page, '#chapter-images');
if (options.verbose) console.log(chapter_images);
var chapter_url_obj = urlutil.parse(chapter_url);
// var output_dir_name = path.basename(chapter_url_obj.pathname);
var output_dir_name = path.basename(path.dirname(chapter_url_obj.pathname));
var output_dir = path.resolve((options.output_dir || '.'), output_dir_name);
if (options.verbose) {
console.log('Options output dir : ' + options.output_dir);
console.log('Page output dir : ' + page.output_dir);
console.log('Output dir name : ' + output_dir_name);
console.log('Output dir : ' + output_dir);
}
saver.downloadMangaChapter({
chapter_url: page.url,
chapter_title: chapter_title,
chapter_images: chapter_images,
output_dir: output_dir,
output_dir_name: output_dir_name
}, options, function(err) {
if (err) return callback(err);
callback();
});
} else if ($('table.listing').length) {
console.log('Chapter list');
if (options.auto_manga_dir) {
var manga_title = page.title.split('|')[0].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, 'table.listing');
if (options.verbose) console.log(links);
var chapter_links = links.filter(function(link) {
return (link.indexOf('/doctruyen/') >= 0);
});
if (options.verbose) console.log(chapter_links);
console.log(chapter_links.length + ' chapters');
saver.processPages(chapter_links, options, callback);
} else {
callback();
}
}
}