Fixed query-based affiliate URL getting skipped.

This commit is contained in:
2026-01-31 00:39:33 +01:00
parent 490be8800a
commit b9afa61e01

View File

@@ -42,6 +42,15 @@ export function getAffiliateSceneUrl(scene) {
}); });
} }
if (scene.affiliate.parameters.query) { // used by e.g. Bang
const newParams = new URLSearchParams({
...Object.fromEntries(new URL(watchUrl).searchParams),
...Object.fromEntries(new URLSearchParams(scene.affiliate.parameters.query)),
});
return `${watchUrl}?${newParams.toString()}`;
}
const affiliateUrl = scene.affiliate.parameters.replaceScene?.hostname === new URL(watchUrl).hostname const affiliateUrl = scene.affiliate.parameters.replaceScene?.hostname === new URL(watchUrl).hostname
? scene.affiliate.parameters.replaceScene.url ? scene.affiliate.parameters.replaceScene.url
: scene.affiliate.url; : scene.affiliate.url;
@@ -69,15 +78,6 @@ export function getAffiliateSceneUrl(scene) {
return affiliateUrlComponents.href; return affiliateUrlComponents.href;
} }
if (scene.affiliate.parameters.query) { // used by e.g. Bang
const newParams = new URLSearchParams({
...Object.fromEntries(new URL(watchUrl).searchParams),
...Object.fromEntries(new URLSearchParams(scene.affiliate.parameters.query)),
});
return `${watchUrl}?${newParams.toString()}`;
}
return watchUrl; return watchUrl;
} }
@@ -100,8 +100,17 @@ export function getAffiliateEntityUrl(entity) {
return entityUrl; return entityUrl;
} }
if (entity.affiliate.parameters?.query) { // used by e.g. Bang
const newParams = new URLSearchParams({
...Object.fromEntries(new URL(entityUrl).searchParams),
...Object.fromEntries(new URLSearchParams(entity.affiliate.parameters.query)),
});
return `${entityUrl}?${newParams.toString()}`;
}
const affiliateUrl = entity.affiliate.parameters.replaceEntity?.hostname === new URL(entityUrl).hostname const affiliateUrl = entity.affiliate.parameters.replaceEntity?.hostname === new URL(entityUrl).hostname
? entity.affiliate.parameters.replaceentityUrl ? entity.affiliate.parameters.replaceEntity.url
: entity.affiliate.url; : entity.affiliate.url;
if (entity.id === entity.affiliate.entityId || entityUrl === entity.parent?.url) { if (entity.id === entity.affiliate.entityId || entityUrl === entity.parent?.url) {
@@ -134,14 +143,5 @@ export function getAffiliateEntityUrl(entity) {
return `${affiliateUrl}${pathname.replace(/^\/trial/, '')}${search}`; // replace needed for Jules Jordan, verify behavior on other sites return `${affiliateUrl}${pathname.replace(/^\/trial/, '')}${search}`; // replace needed for Jules Jordan, verify behavior on other sites
} }
if (entity.affiliate.parameters.query) { // used by e.g. Bang
const newParams = new URLSearchParams({
...Object.fromEntries(new URL(entityUrl).searchParams),
...Object.fromEntries(new URLSearchParams(entity.affiliate.parameters.query)),
});
return `${entityUrl}?${newParams.toString()}`;
}
return entityUrl; return entityUrl;
} }