feat: add Chaos Zero Nightmare, which the game8 parser already reads
No parser work at all — a GameId, a games entry, a SOURCES line, a fixture and a test. The page lists six current events and the parser publishes four; the two it skips print "Start Date: -", and no start means no event ID, so that is the skip-never-guess rule working rather than a silent drop. The cost is worth stating plainly: this is the ninth game8 source, and game8's edge answers the Actions runner with a 202 and a bot-management body, so the lane is built from a checked-in fixture in CI from day one and only a manual `bun run refresh` moves it. freshness() discloses that in the footer, which is what it is for. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ecbf9c0422
commit
6c7369db10
@@ -143,6 +143,17 @@ const SOURCES: SourceSpec[] = [
|
||||
url: "https://stellasora.miraheze.org/wiki/Main_Page",
|
||||
parserId: "stellasorawiki",
|
||||
},
|
||||
{
|
||||
id: "czn-game8-events",
|
||||
game: "czn",
|
||||
// The ninth game8 source, and the cost is worth stating plainly: game8's
|
||||
// edge answers the Actions runner with a 202 and a bot-management body
|
||||
// (AGENTS.md § Scraping conduct), so this lane is built from a checked-in
|
||||
// fixture in CI from day one and only a manual `bun run refresh` moves it.
|
||||
// `freshness()` discloses that in the footer, which is what it is for.
|
||||
url: "https://game8.co/games/Chaos-Zero-Nightmare/archives/559899",
|
||||
parserId: "game8",
|
||||
},
|
||||
];
|
||||
|
||||
function toAdapter(spec: SourceSpec): Adapter {
|
||||
|
||||
@@ -132,6 +132,9 @@ export const GAMES: Record<GameId, GameMeta> = {
|
||||
// starts, 12:59 and 19:59 ends), so there is no reset hour to read off it
|
||||
// either. See the fgo entry below for the same reasoning at more length.
|
||||
stellasora: { id: "stellasora", name: "Stella Sora", short: "Stella Sora", hue: "#2E9E9E", studio: "Yostar", dailyTasks: "Daily missions" },
|
||||
// No `resetOffsets`: the source is Game8, which states day-precision prose
|
||||
// and no clock at all — the same silence p5x has, and the same answer.
|
||||
czn: { id: "czn", name: "Chaos Zero Nightmare", short: "CZN", hue: "#B84A9C", studio: "Smilegate", dailyTasks: "Daily missions" },
|
||||
};
|
||||
|
||||
export const GAME_LIST: GameMeta[] = Object.values(GAMES);
|
||||
|
||||
@@ -16,6 +16,7 @@ export const GameId = z.enum([
|
||||
"holodori", // hololive Dreams
|
||||
"gfl2", // Girls' Frontline 2: Exilium
|
||||
"stellasora", // Stella Sora
|
||||
"czn", // Chaos Zero Nightmare
|
||||
]);
|
||||
export type GameId = z.infer<typeof GameId>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user