feat(playlists): add static playlist placeholder files for dev mode
Populate web/public/data/playlists/ with all 12 playlist slug JSON files and update index.json so the frontend fetch calls work during local development without requiring the index builder to have run. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
513ca42d7a
commit
46ff42ef84
14 changed files with 220 additions and 3 deletions
|
|
@ -1 +1 @@
|
|||
b1121ed6f8729796923df7ad95ee1bde41ed61f0
|
||||
513ca42d7a05138470e9ed7489a8661a3ccde3ca
|
||||
|
|
|
|||
10
web/public/data/playlists/best-comebacks.json
Normal file
10
web/public/data/playlists/best-comebacks.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "best-comebacks",
|
||||
"title": "Best Comebacks",
|
||||
"description": "Bots that were down but never out — dramatic turnarounds and improbable victories",
|
||||
"category": "comebacks",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/best-of-week.json
Normal file
10
web/public/data/playlists/best-of-week.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "best-of-week",
|
||||
"title": "Best of the Week",
|
||||
"description": "This week's top matches ranked by excitement: close finishes, upsets, marathon battles, and elite clashes",
|
||||
"category": "weekly",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/biggest-upsets.json
Normal file
10
web/public/data/playlists/biggest-upsets.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "biggest-upsets",
|
||||
"title": "Biggest Upsets",
|
||||
"description": "Lower-rated bots triumph against higher-rated opponents",
|
||||
"category": "upsets",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/closest-finishes.json
Normal file
10
web/public/data/playlists/closest-finishes.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "closest-finishes",
|
||||
"title": "Closest Finishes",
|
||||
"description": "Matches decided by the thinnest margins — nail-biters to the very end",
|
||||
"category": "close_games",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/domination.json
Normal file
10
web/public/data/playlists/domination.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "domination",
|
||||
"title": "Total Domination",
|
||||
"description": "One-sided victories where the winner crushed all opposition",
|
||||
"category": "domination",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/evolution-breakthroughs.json
Normal file
10
web/public/data/playlists/evolution-breakthroughs.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "evolution-breakthroughs",
|
||||
"title": "Evolution Breakthroughs",
|
||||
"description": "Evolved bots defeating top-rated opponents — AI strategy milestones",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/featured.json
Normal file
10
web/public/data/playlists/featured.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "featured",
|
||||
"title": "Featured Matches",
|
||||
"description": "Recent highlights from the ladder",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/highest-rated.json
Normal file
10
web/public/data/playlists/highest-rated.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "highest-rated",
|
||||
"title": "Clash of Titans",
|
||||
"description": "Matches between the highest-rated opponents on the ladder",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
|
|
@ -1,4 +1,101 @@
|
|||
{
|
||||
"updated_at": "2026-03-29T00:00:00.000Z",
|
||||
"playlists": []
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"playlists": [
|
||||
{
|
||||
"slug": "closest-finishes",
|
||||
"title": "Closest Finishes",
|
||||
"description": "Matches decided by the thinnest margins — nail-biters to the very end",
|
||||
"category": "close_games",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "biggest-upsets",
|
||||
"title": "Biggest Upsets",
|
||||
"description": "Lower-rated bots triumph against higher-rated opponents",
|
||||
"category": "upsets",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "best-comebacks",
|
||||
"title": "Best Comebacks",
|
||||
"description": "Bots that were down but never out — dramatic turnarounds and improbable victories",
|
||||
"category": "comebacks",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "marathon-matches",
|
||||
"title": "Marathon Matches",
|
||||
"description": "The longest, most grueling matches — endurance-tested battles",
|
||||
"category": "long_games",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "highest-rated",
|
||||
"title": "Clash of Titans",
|
||||
"description": "Matches between the highest-rated opponents on the ladder",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "evolution-breakthroughs",
|
||||
"title": "Evolution Breakthroughs",
|
||||
"description": "Evolved bots defeating top-rated opponents — AI strategy milestones",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "rivalry-classics",
|
||||
"title": "Rivalry Classics",
|
||||
"description": "The most closely contested matchups between frequent opponents",
|
||||
"category": "rivalry",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "domination",
|
||||
"title": "Total Domination",
|
||||
"description": "One-sided victories where the winner crushed all opposition",
|
||||
"category": "domination",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "new-bot-debuts",
|
||||
"title": "New Bot Debuts",
|
||||
"description": "First matches of newly registered bots — watch their opening games",
|
||||
"category": "tutorial",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "season-highlights",
|
||||
"title": "Season Highlights",
|
||||
"description": "Top matches from the current season ranked by excitement",
|
||||
"category": "season",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "featured",
|
||||
"title": "Featured Matches",
|
||||
"description": "Recent highlights from the ladder",
|
||||
"category": "featured",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
},
|
||||
{
|
||||
"slug": "best-of-week",
|
||||
"title": "Best of the Week",
|
||||
"description": "This week's top matches ranked by excitement: close finishes, upsets, marathon battles, and elite clashes",
|
||||
"category": "weekly",
|
||||
"match_count": 0,
|
||||
"updated_at": "2026-04-21T00:00:00.000Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
10
web/public/data/playlists/marathon-matches.json
Normal file
10
web/public/data/playlists/marathon-matches.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "marathon-matches",
|
||||
"title": "Marathon Matches",
|
||||
"description": "The longest, most grueling matches — endurance-tested battles",
|
||||
"category": "long_games",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/new-bot-debuts.json
Normal file
10
web/public/data/playlists/new-bot-debuts.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "new-bot-debuts",
|
||||
"title": "New Bot Debuts",
|
||||
"description": "First matches of newly registered bots — watch their opening games",
|
||||
"category": "tutorial",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/rivalry-classics.json
Normal file
10
web/public/data/playlists/rivalry-classics.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "rivalry-classics",
|
||||
"title": "Rivalry Classics",
|
||||
"description": "The most closely contested matchups between frequent opponents",
|
||||
"category": "rivalry",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
10
web/public/data/playlists/season-highlights.json
Normal file
10
web/public/data/playlists/season-highlights.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"slug": "season-highlights",
|
||||
"title": "Season Highlights",
|
||||
"description": "Top matches from the current season ranked by excitement",
|
||||
"category": "season",
|
||||
"match_count": 0,
|
||||
"created_at": "2026-04-21T00:00:00.000Z",
|
||||
"updated_at": "2026-04-21T00:00:00.000Z",
|
||||
"matches": []
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue