feat: add Stella Sora, from the wiki's front page rather than its banner list

This wiki publishes the same schedule twice and the fuller surface is the worse
one. /wiki/Banner_List has 55 clean rows with full wall clocks and states no
timezone anywhere on the page; the front page's Current Banners module emits
the same instants as real <time datetime="...-07:00"> elements. The two agree
exactly, which is strong evidence the list is UTC and is still only evidence —
so we read the surface that says what it means and pay four live banners
instead of a full history for it. If an editor ever states the zone on
Banner_List, that page becomes the better source immediately.

Two ways this could have failed silently. The template writes its BEM
underscores as &#95;&#95;, so a selector written against the class name a
browser shows matches nothing at all; and banner names are red links to
?action=edit&redlink=1, which Miraheze's robots.txt disallows, so a href
carrying a query is refused and the page URL stands in.

No resetOffsets, and here the source did state an offset: -07:00, which is US
Pacific and therefore shifts twice a year. That is the Fate/Grand Order gap
arriving through a page that looks like it answered the question.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
Lucas Winther
2026-08-19 03:50:20 +02:00
co-authored by Claude Opus 5
parent 4dff14087f
commit ecbf9c0422
14 changed files with 1286 additions and 13 deletions
+9
View File
@@ -123,6 +123,15 @@ export const GAMES: Record<GameId, GameMeta> = {
// is a patch window, not a reset hour. So this game takes the regional
// default until something states its server clock outright.
gfl2: { id: "gfl2", name: "Girls' Frontline 2: Exilium", short: "GFL2", hue: "#A9C23F", studio: "Sunborn", dailyTasks: "Daily missions" },
// No `resetOffsets`, and this is the Fate/Grand Order gap rather than the
// Blue Archive one: the source states an offset on every boundary, and the
// offset it states is `-07:00` in August. That is US Pacific in summer, which
// means it is `-08:00` in winter — one fixed number is wrong for half the year
// in either direction, and `resetOffsets` holds one fixed number. The page
// also never lands its boundaries on a single local hour (20:00 and 21:00
// 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" },
};
export const GAME_LIST: GameMeta[] = Object.values(GAMES);
+1
View File
@@ -15,6 +15,7 @@ export const GameId = z.enum([
"fgo", // Fate/Grand Order
"holodori", // hololive Dreams
"gfl2", // Girls' Frontline 2: Exilium
"stellasora", // Stella Sora
]);
export type GameId = z.infer<typeof GameId>;