splatoon3.ink/app/social/avatarVariants.mjs
Matt Isenhower c1664590b5
Some checks failed
Build frontend / build (22.x) (push) Has been cancelled
Deploy / deploy-frontend (push) Has been cancelled
Deploy / deploy-backend (push) Has been cancelled
Fix code styles / build (push) Has been cancelled
Tests / test (22.x) (push) Has been cancelled
Auto-update social media avatars
2026-02-20 08:56:19 -08:00

46 lines
976 B
JavaScript

const defaultVariant = {
key: 'default',
displayName: 'Splatoon3.ink',
avatar: 'default.png',
};
const variants = [
{
key: 'pride',
displayName: 'Splatoon3.ink',
avatar: 'pride.png',
start: { month: 6, day: 1 },
end: { month: 7, day: 1 },
},
{
key: 'halloween',
displayName: 'Splatoon3.eek \u{1F383}',
avatar: 'halloween.png',
start: { month: 10, day: 1 },
end: { month: 11, day: 1 },
},
];
function isDateInRange(date, start, end) {
let month = date.getMonth() + 1;
let day = date.getDate();
let value = month * 100 + day;
return value >= start.month * 100 + start.day
&& value <= end.month * 100 + end.day;
}
/**
* Get the avatar variant for the given date (or now).
* @param {Date} [date]
*/
export function getCurrentVariant(date = new Date()) {
for (let variant of variants) {
if (isDateInRange(date, variant.start, variant.end)) {
return variant;
}
}
return defaultVariant;
}