Video once-per-day dedup + featured gold border & spacing
- Video watch-to-earn: a member can no longer re-earn from the same video the same day. New video_seen table (dual-mode); serveVideo excludes today's already-watched videos; videowatch double-checks before crediting. - Featured card: equal top/bottom margin (no longer touches the stat cards) and a gold border on the card + the rotating link. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -142,6 +142,14 @@ async function bootstrap() {
|
||||
// per-account chat settings: availability toggle (default on) + muted-member list (JSON emails)
|
||||
await alterSafe('ALTER TABLE accounts ADD COLUMN chat_available TINYINT NOT NULL DEFAULT 1');
|
||||
await alterSafe('ALTER TABLE accounts ADD COLUMN chat_mutes VARCHAR(4000) NULL');
|
||||
await q(`CREATE TABLE IF NOT EXISTS video_seen (
|
||||
email VARCHAR(190) NOT NULL,
|
||||
campaign_id INT NOT NULL,
|
||||
day CHAR(10) NOT NULL,
|
||||
ts BIGINT NOT NULL,
|
||||
UNIQUE KEY uq_vseen (email, campaign_id, day),
|
||||
INDEX (email, day)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
|
||||
await q(`CREATE TABLE IF NOT EXISTS ad_reports (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
campaign_id INT NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user