UNPKG

myreadingmanga-unofficial

Version:

MyReadingManga WebCrawler. Find By Languages, Genres and Tags.

38 lines (34 loc) 1.4 kB
const state = require('./state.js') const axios = require('axios') const JSSoup = require('jssoup').default const imageDownloader = require('image-downloader') const fs = require('fs'); async function robot(manga) { const content = state.load() await getPages(manga, content) async function getPages(manga, content) { const { data } = await axios.get(manga.url) const soup = new JSSoup(data) soup.prettify() const prePages = soup.findAll('img') const pages = prePages .filter(prePage => !prePage.attrs.src.endsWith("gif")) .filter(prePage => !prePage.attrs.src.includes("wp-content")) pages.map(page => console.log(page.attrs.src)) downloadAll(pages, manga.title) } async function downloadAll(pages, title) { pages.map(async page => { const pos = page.attrs.src.lastIndexOf('/')+1 const fileName = page.attrs.src.substr(pos) const url = page.attrs.src await downloadAndSave(title, fileName, url) }) } async function downloadAndSave(title, fileName, url) { if(!fs.existsSync('./content')) fs.mkdirSync('./content') if(!fs.existsSync(`./content/${title}`)) fs.mkdirSync(`./content/${title}`) return imageDownloader.image({ url, dest: `./content/${title}/${fileName}` }) } } module.exports = robot