Improved affiliate logic.
This commit is contained in:
parent
5ac7cfbc9a
commit
6191e17c4e
|
|
@ -25,12 +25,16 @@ export function getAffiliateSceneUrl(scene) {
|
|||
return watchUrl;
|
||||
}
|
||||
|
||||
if (scene.affiliate.url?.includes('/track')
|
||||
const affiliateUrl = scene.affiliate.parameters.replace?.hostname === new URL(watchUrl).hostname
|
||||
? scene.affiliate.parameters.replace.url
|
||||
: scene.affiliate.url;
|
||||
|
||||
if (affiliateUrl?.includes('/track')
|
||||
&& scene.affiliate.parameters.scene !== false
|
||||
&& (!scene.channel.isIndependent || scene.channel.id === scene.affiliate.entityId)) { // standard NATS redirect
|
||||
const { pathname, search } = new URL(watchUrl);
|
||||
|
||||
return `${scene.affiliate.url}${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 (scene.affiliate.parameters.query) { // used by e.g. Bang
|
||||
|
|
@ -50,23 +54,28 @@ export function getAffiliateEntityUrl(entity) {
|
|||
return entity.url;
|
||||
}
|
||||
|
||||
const affiliateUrl = entity.affiliate.parameters.replace?.hostname === new URL(entity.url).hostname
|
||||
? entity.affiliate.parameters.replace.url
|
||||
: entity.affiliate.url;
|
||||
|
||||
if (entity.id === entity.affiliate.entityId) {
|
||||
return entity.affiliate.url;
|
||||
return affiliateUrl;
|
||||
}
|
||||
|
||||
if (entity.type === 'network' || entity.isIndependent) {
|
||||
return entity.url;
|
||||
}
|
||||
|
||||
if (new URL(entity.url).hostname !== new URL(entity.affiliate.url).hostname) {
|
||||
// channel has its own domain
|
||||
if (new URL(entity.url).pathname === '/') {
|
||||
return entity.url;
|
||||
}
|
||||
|
||||
if (entity.affiliate.url?.includes('/track')
|
||||
if (affiliateUrl?.includes('/track')
|
||||
&& entity.affiliate.parameters.channel !== false) {
|
||||
const { pathname, search } = new URL(entity.url);
|
||||
|
||||
return `${entity.affiliate.url}${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
|
||||
|
|
|
|||
Loading…
Reference in New Issue