27 lines
1.2 KiB
JavaScript
27 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const { SlowHttp } = require('../lib/http');
|
|
const { mangaDexInfo, discoverMangaDexCatalog } = require('../adapters/mangadex');
|
|
const { runMangaDexArchive } = require('../jobs/mangadex-archive');
|
|
const { controlledHttp } = require('./common');
|
|
|
|
module.exports = {
|
|
id: 'mangadex', label: 'MangaDex', match: mangaDexInfo,
|
|
async discover(item, options) {
|
|
const http = new SlowHttp({ minMs: options.settings.minMs, maxMs: options.settings.maxMs,
|
|
maxRetries: 2, userAgent: 'MangaCircus-Scraper/1.0 (personal archival; sequential MangaDex requests)',
|
|
onEvent: options.onEvent });
|
|
return discoverMangaDexCatalog(item.url, controlledHttp(http, options.shouldStop));
|
|
},
|
|
run(item, options) {
|
|
return runMangaDexArchive({
|
|
seriesUrl: item.url, title: item.title, 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,
|
|
});
|
|
},
|
|
};
|