Five Dollar Friday: +20% purchased-grade credits on any $5+ package bought on a Friday (Central), live wave on the landing strip and Overview card, Telegram every ten packs + Friday kickoff + midnight wrap-up, Thursday notice + email, Five Fridays badge, promo posts + swipe, chatbot; first Friday 2026-09-25

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-09-20 13:59:15 -05:00
parent de5bdfefaf
commit 68b08ab8cc
11 changed files with 3405 additions and 3207 deletions
+18 -1
View File
@@ -73,7 +73,8 @@
{ key: 'payouts', label: 'Spark', sub: 'payouts on', img: '/badges/badge-spark.jpg', ribbonY: 0.728 },
{ key: 'firstBuyer', label: 'Surge', sub: 'first qualifying buyer', img: '/badges/badge-surge.jpg?v=2', ribbonY: 0.76 },
{ key: 'level2', label: 'Circuit', sub: '2 qualifying buyers', img: '/badges/badge-circuit.jpg?v=2', ribbonY: 0.72 },
{ key: 'level3', label: 'Nexus', sub: 'fully qualified', img: '/badges/badge-nexus.jpg?v=2', ribbonY: 0.73 }
{ key: 'level3', label: 'Nexus', sub: 'fully qualified', img: '/badges/badge-nexus.jpg?v=2', ribbonY: 0.73 },
{ key: 'fridays', label: 'Five Fridays', sub: 'five Five Dollar Fridays in a row', img: '/badges/badge-fridays.jpg', ribbonY: 0.719 }
];
let lastMilestones = [];
function renderBadges(d) {
@@ -1404,6 +1405,22 @@
}));
} catch (e) {}
}
// Five Dollar Friday card on the Overview: the live wave on Fridays, the date the rest of the week
async function loadFridayCard() {
const card = $('fdfCard'); if (!card) return;
try {
const f = await (await fetch('/api/friday')).json(); if (!f.on) { card.hidden = true; return; }
card.hidden = false;
if (f.live && f.today) card.innerHTML = '<div class="card-head"><h3>\u{1F4B5} It\u2019s Five Dollar Friday</h3><span class="sub">+' + f.pct + '% credits on any pack today</span></div>'
+ '<p><b>' + f.today.packs + '</b> pack' + (f.today.packs === 1 ? '' : 's') + ' so far today from <b>' + f.today.buyers + '</b> buyer' + (f.today.buyers === 1 ? '' : 's') + ', <b>' + f.today.polPaid.toFixed(2) + ' POL</b> paid to members in the same transactions. Every $5+ package bought before midnight Central earns +' + f.pct + '% bonus credits the moment it settles. Your pack pays your sponsor line instantly; your line\u2019s packs pay you.</p>'
+ '<button class="btn" type="button" id="fdfBuy">Buy my Friday pack</button> <a class="btn sec" href="/ledger" target="_blank" rel="noopener">Watch the wave</a>';
else card.innerHTML = '<div class="card-head"><h3>\u{1F4B5} Five Dollar Friday</h3><span class="sub">every Friday</span></div>'
+ '<p>Every Friday (Central time), any ad package from $5 up earns <b>+' + f.pct + '% bonus credits</b>, added the moment it settles. The whole network buys on the same day, so every line gets paid at once. Next one: <b>' + (f.nextLabel || 'soon') + '</b>.</p>'
+ '<button class="btn sec" type="button" id="fdfBuy">See the packages</button>';
const b = $('fdfBuy'); if (b) b.addEventListener('click', () => { const m = document.querySelector('.bo-menu [data-pane="buy"]'); if (m) m.click(); });
} catch (e) {}
}
loadFridayCard(); setInterval(loadFridayCard, 120000);
// launch-day surprise (Marty, 2026-09-20): PolHunter appears at siteConfig.launchAt, not a minute before.
// The card and the menu entry flip on their own if the dashboard is already open.
let phShown = false;