Added dynamic affiliate URLs and video player restrictions.

This commit is contained in:
2026-01-28 00:57:32 +01:00
parent 31c62e01f9
commit 0bf0b716b2
7 changed files with 54 additions and 23 deletions

View File

@@ -19,7 +19,7 @@ import { getAffiliateSceneUrl } from './affiliates.js';
const logger = initLogger();
const mj = new MerkleJson();
function curateScene(rawScene, assets) {
function curateScene(rawScene, assets, reqUser) {
if (!rawScene) {
return null;
}
@@ -107,8 +107,6 @@ function curateScene(rawScene, assets) {
poster: curateMedia(serie.serie_poster, { type: 'poster' }),
})),
poster: curateMedia(assets.poster, { type: 'poster' }),
trailer: curateMedia(assets.trailer, { type: 'trailer' }),
teaser: curateMedia(assets.teaser, { type: 'teaser' }),
photos: assets.photos?.map((photo) => curateMedia(photo, { type: 'photo' })) || [],
caps: assets.caps?.map((cap) => curateMedia(cap, { type: 'cap' })) || [],
stashes: assets.stashes?.map((stash) => curateStash(stash)) || [],
@@ -125,6 +123,13 @@ function curateScene(rawScene, assets) {
isNew: assets.lastBatchId === rawScene.created_batch_id,
};
const isVideoRestricted = config.media.videoRestrictions.includes(curatedScene.channel.slug) || config.media.videoRestrictions.includes(`_${curatedScene.network?.slug}`);
if ((!isVideoRestricted || reqUser.abilities?.trailerAccess)) {
curatedScene.trailer = curateMedia(assets.trailer, { type: 'trailer', isRestricted: isVideoRestricted });
curatedScene.teaser = curateMedia(assets.teaser, { type: 'teaser', isRestricted: isVideoRestricted });
}
curatedScene.watchUrl = getAffiliateSceneUrl(curatedScene);
return curatedScene;
@@ -344,7 +349,7 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
stashes: sceneStashes,
actorStashes: sceneActorStashes,
lastBatchId,
});
}, reqUser);
}).filter(Boolean);
}