'use strict'; const { createHostHttp } = require('../plugins/broker'); const { mangaPillInfo, discoverMangaPillCatalog, discoverMangaPillChapter } = require('../adapters/mangapill'); const { runArchive } = require('../jobs/weebcentral-archive'); const { controlledHttp } = require('./common'); const createHttp = options => createHostHttp('mangapill.com', options); module.exports = { id: 'mangapill', label: 'MangaPill', match: mangaPillInfo, async discover(item, options) { const http = createHttp({ minMs: options.settings.minMs, maxMs: options.settings.maxMs, maxRetries: 2, onEvent: options.onEvent }); return discoverMangaPillCatalog(item.url, controlledHttp(http, options.shouldStop)); }, run(item, options) { return runArchive({ source: 'mangapill', sourceLabel: 'MangaPill', sourceId: mangaPillInfo(item.url)?.id, discoverCatalog: discoverMangaPillCatalog, discoverChapter: discoverMangaPillChapter, createHttp, seriesUrl: item.url, libraryRoot: options.libraryRoot, metadataSearch: item.metadataSearch || item.title, minMs: options.settings.minMs, maxMs: options.settings.maxMs, chapterMinMs: options.settings.chapterMinMs, chapterMaxMs: options.settings.chapterMaxMs, shouldStop: options.shouldStop, scope: item.scope, existingPolicy: item.existingPolicy, libraryMangaId: item.libraryMangaId, onPublished: options.onPublished, onCatalog: options.onCatalog, }); }, };