From 45ed3be747b2f938692adb64f6df2c6a7ffa728b Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Mon, 6 Oct 2025 05:40:09 +0200 Subject: [PATCH] Fixed affiliate banner ratio on tags page. Added affiliate banners to actor page. --- pages/actors/@actorId/+onBeforeRender.js | 27 +++++++++++++++++++----- pages/tags/@tagId/+onBeforeRender.js | 4 ++-- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pages/actors/@actorId/+onBeforeRender.js b/pages/actors/@actorId/+onBeforeRender.js index 0816018..94227ed 100644 --- a/pages/actors/@actorId/+onBeforeRender.js +++ b/pages/actors/@actorId/+onBeforeRender.js @@ -6,6 +6,7 @@ import { fetchMovies } from '#/src/movies.js'; import { curateScenesQuery } from '#/src/web/scenes.js'; import { curateMoviesQuery } from '#/src/web/movies.js'; import { fetchCountries } from '#/src/countries.js'; +import { getRandomCampaigns, getCampaignIndex } from '#/src/campaigns.js'; async function fetchReleases(pageContext) { if (pageContext.routeParams.domain === 'movies') { @@ -40,16 +41,27 @@ export async function onBeforeRender(pageContext) { throw redirect(`/login?r=${encodeURIComponent(pageContext.urlOriginal)}`); } - const [[actor], actorReleases, countries] = await Promise.all([ - fetchActorsById([Number(pageContext.routeParams.actorId)], {}, pageContext.user), - fetchReleases(pageContext), - isEditing && fetchCountries(), - ]); + const [actor] = await fetchActorsById([Number(pageContext.routeParams.actorId)], {}, pageContext.user); if (!actor) { throw render(404, `Cannot find actor '${pageContext.routeParams.actorId}'.`); } + const [actorReleases, campaigns, countries] = await Promise.all([ + fetchReleases(pageContext), + getRandomCampaigns([ + // don't show meta campaign, too intrusive under actor bio + { minRatio: 3 }, + pageContext.routeParams.domain === 'scenes' + ? { minRatio: 0.75, maxRatio: 1.25 } + : null, + ].filter(Boolean), { tagFilter: pageContext.tagFilter }), + isEditing && fetchCountries(), + ]); + + const campaignIndex = getCampaignIndex(actorReleases.limit); + const [paginationCampaign, sceneCampaign] = campaigns; + return { pageContext: { title: isEditing @@ -60,6 +72,11 @@ export async function onBeforeRender(pageContext) { countries, ...actorReleases, }, + campaigns: { + index: campaignIndex, + scenes: actorReleases.limit > 5 && sceneCampaign, + pagination: paginationCampaign, + }, }, }; } diff --git a/pages/tags/@tagId/+onBeforeRender.js b/pages/tags/@tagId/+onBeforeRender.js index b793329..96a8fa8 100644 --- a/pages/tags/@tagId/+onBeforeRender.js +++ b/pages/tags/@tagId/+onBeforeRender.js @@ -43,8 +43,8 @@ export async function onBeforeRender(pageContext) { fetchTagsById([tagSlug], {}, pageContext.user), fetchReleases(pageContext), getRandomCampaigns([ - { tagSlugs: [tagSlug], minRatio: 1.5 }, - { tagSlugs: [tagSlug], minRatio: 1.5 }, + { tagSlugs: [tagSlug], minRatio: 3 }, + { tagSlugs: [tagSlug], minRatio: 3 }, pageContext.routeParams.domain === 'scenes' ? { tagSlugs: [tagSlug], minRatio: 0.75, maxRatio: 1.25 } : null,