Compare commits

..

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian 64bf3b65ac 0.25.3 2024-06-14 01:09:25 +02:00
DebaucheryLibrarian 0f6bbaf536 Fixed page breaking if no valid campaigns are found. 2024-06-14 01:09:23 +02:00
3 changed files with 21 additions and 21 deletions

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{
"name": "traxxx-web",
"version": "0.25.2",
"version": "0.25.3",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"version": "0.25.2",
"version": "0.25.3",
"dependencies": {
"@brillout/json-serializer": "^0.5.8",
"@dicebear/collection": "^7.0.5",

View File

@ -77,5 +77,5 @@
"postcss-custom-media": "^10.0.2",
"postcss-nesting": "^12.0.2"
},
"version": "0.25.2"
"version": "0.25.3"
}

View File

@ -57,25 +57,25 @@ export async function getRandomCampaign(options = {}, context = {}) {
return true;
});
const campaignsByEntityId = validCampaigns.reduce((acc, campaign) => {
const entityId = campaign.entity.parent?.id || campaign.entity.id;
if (!acc[entityId]) {
acc[entityId] = [];
}
acc[entityId].push(campaign);
return acc;
}, {});
// randomize entities first to ensure fair exposure for entities with fewer banners
const entityIds = Object.keys(campaignsByEntityId);
const randomEntityCampaigns = campaignsByEntityId[entityIds[crypto.randomInt(entityIds.length)]];
const primaryCampaigns = randomEntityCampaigns.filter((campaign) => campaign.entity.id === options.entityIds?.[0]);
if (validCampaigns.length > 0) {
const campaignsByEntityId = validCampaigns.reduce((acc, campaign) => {
const entityId = campaign.entity.parent?.id || campaign.entity.id;
if (!acc[entityId]) {
acc[entityId] = [];
}
acc[entityId].push(campaign);
return acc;
}, {});
// randomize entities first to ensure fair exposure for entities with fewer banners
const entityIds = Object.keys(campaignsByEntityId);
const randomEntityCampaigns = campaignsByEntityId[entityIds[crypto.randomInt(entityIds.length)]];
const primaryCampaigns = randomEntityCampaigns.filter((campaign) => campaign.entity.id === options.entityIds?.[0]);
const randomCampaign = (primaryCampaigns.length > 0 ? primaryCampaigns[crypto.randomInt(primaryCampaigns.length)] : null)
|| (randomEntityCampaigns.length > 0 ? randomEntityCampaigns[crypto.randomInt(randomEntityCampaigns.length)] : null)
|| validCampaigns[crypto.randomInt(validCampaigns.length)];