Add first-party MangaPill source and distinct volume releases

This commit is contained in:
Codex committed 2026-10-14 09:05:34 +02:00
1 parent a8df57f165
commit a08e847932
20 files changed
+364 -34

No files matched your search

+12 -3
View File
@@ -22,6 +22,10 @@ function publicAddress(address) {
}
function validateWeebRequest(value, options = {}) {
return validateHostRequest(value, 'weebcentral.com', options);
}
function validateHostRequest(value, sourceHost, options = {}) {
const url = new URL(value);
const host = url.hostname.toLowerCase();
if (url.protocol !== 'https:' || url.username || url.password || url.port
@@ -29,8 +33,8 @@ function validateWeebRequest(value, options = {}) {
|| host.endsWith('.local') || !host.includes('.')) {
throw new Error('Source request URL is not public HTTPS');
}
if (options.accept === 'text/html' && host !== 'weebcentral.com') {
throw new Error('WeebCentral catalog request left its source host');
if (options.accept === 'text/html' && host !== sourceHost) {
throw new Error('Source catalog request left its source host');
}
return url;
}
@@ -88,4 +92,9 @@ function createWeebHttp(options = {}) {
return new SlowHttp({ ...options, transport: pinnedFetch, validateUrl: validateWeebRequest });
}
module.exports = { publicAddress, validateWeebRequest, pinnedLookup, pinnedFetch, createWeebHttp };
function createHostHttp(sourceHost, options = {}) {
return new SlowHttp({ ...options, transport: pinnedFetch,
validateUrl: (value, requestOptions) => validateHostRequest(value, sourceHost, requestOptions) });
}
module.exports = { publicAddress, validateWeebRequest, validateHostRequest, pinnedLookup, pinnedFetch, createWeebHttp, createHostHttp };