import Axios from 'axios' import { JSDOM } from 'jsdom' import { Book, Chapter, Novel } from '../baseParser' async function parseChapter(chapter: Chapter, progressTick: () => void) { var res = await Axios.get(chapter.url!) const dom = new JSDOM(res.data) const textDivs = dom.window.document.getElementsByClassName('mantine-Text-root') // let content = '
' let content = '' for (var textDiv of textDivs) { if (textDiv.id !== 'chapterText') continue content += `

${textDiv.innerHTML}

` } // content += '
' chapter.content = content progressTick() } export default async ( novel: Novel, booksChoosed: Book[], progressTick: () => void ): Promise => { var promises: Promise[] = [] var i = 0 for (var bookChoosed of booksChoosed) { if (!bookChoosed.chapters) continue for (var chapter of bookChoosed.chapters) { if (!chapter.url) continue promises.push(parseChapter(chapter, progressTick)) } } await Promise.all(promises) return booksChoosed }