Add first-party MangaPill source and distinct volume releases
This commit is contained in:
1 parent
a8df57f165
commit
a08e847932
20 files changed
+364
-34
No files matched your search
@@ -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 };
|
||||
Reference in new issue
Block a user