feat(sources): Star Rail's Nameless Honor pass windows from Fandom

New `fandomtable` parser (src/ingest/parsers/fandomTable.ts) reads Fandom's
dated pass-history table by its Name/Start/End headings and emits runs not
yet ended by ctx.now, at day precision. Titles come from a per-source
PASS_SOURCES table so the next pass pages are one entry each.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Opus 5.5 committed 2026-10-16 06:17:00 +02:00
1 parent 40d0dbef5a
commit 0a4be4e339
10 files changed
+444 -14

No files matched your search

@@ -0,0 +1,23 @@
[
{
"id": "hsr:nameless-honor:2026-09-28",
"game": "hsr",
"title": "Nameless Honor",
"type": "other",
"summary": null,
"startsAt": "2026-09-28T00:00:00.000Z",
"startPrecision": "day",
"endsAt": "2026-11-09T00:00:00.000Z",
"endPrecision": "day",
"regionScoped": false,
"regionEnds": null,
"sourceUrl": "https://honkai-star-rail.fandom.com/wiki/Nameless_Honor/2026-09-28",
"sourceId": "hsr-fandom-nameless-honor",
"status": "published",
"confidence": 0.85,
"extractionMethod": "parser",
"version": 1,
"firstSeenAt": "2026-10-16T00:00:00.000Z",
"updatedAt": "2026-10-16T00:00:00.000Z"
}
]
@@ -0,0 +1 @@
{"parse":{"title":"Nameless Honor","pageid":9602,"text":"<div class=\"mw-content-ltr mw-parser-output\" lang=\"en\" dir=\"ltr\"><p class=\"mw-empty-elt\">\n</p><aside role=\"region\" class=\"portable-infobox pi-background pi-border-color pi-theme-image-darkbg pi-layout-default\">\n<h2 class=\"pi-item pi-item-spacing pi-title pi-secondary-background\" data-source=\"title\"><span class=\"nomobile\"></span> Nameless Honor</h2>\n\n<figure class=\"pi-item pi-image\" data-source=\"image\">\n\t<a href=\"https://static.wikia.nocookie.net/houkai-star-rail/images/6/63/Icon_Nameless_Honor.png/revision/latest?cb=20230613223209\" class=\"image image-thumbnail\" title=\"Icon Nameless Honor\">\n\t\t<img src=\"https://static.wikia.nocookie.net/houkai-star-rail/images/6/63/Icon_Nameless_Honor.png/revision/latest?cb=20230613223209\" srcset=\"https://static.wikia.nocookie.net/houkai-star-rail/images/6/63/Icon_Nameless_Honor.png/revision/latest?cb=20230613223209 1x, https://static.wikia.nocookie.net/houkai-star-rail/images/6/63/Icon_Nameless_Honor.png/revision/latest?cb=20230613223209 2x\" class=\"pi-image-thumbnail\" data-relevant=\"1\" alt=\"Icon Nameless Honor\" width=\"64\" height=\"64\" data-image-key=\"Icon_Nameless_Honor.png\" data-image-name=\"Icon Nameless Honor.png\" />\n\t\t\n\t</a>\n\t\n</figure>\n\n<div class=\"pi-item pi-data pi-item-spacing pi-border-color\" data-source=\"type\">\n\t\n\t\t<h3 class=\"pi-data-label pi-secondary-font\">Type</h3>\n\t\n\t<div class=\"pi-data-value pi-font\"><a href=\"/wiki/Game_Systems\" title=\"Game Systems\">Game Systems</a><br /><a href=\"/wiki/Monetization\" title=\"Monetization\">Monetization</a><br /><a href=\"/wiki/Recurring_Events\" class=\"mw-redirect\" title=\"Recurring Events\">Recurring Events</a></div>\n</div>\n</aside>\n\n<b>Nameless Honor</b> is a recurring Battle Pass event in <i><a href=\"/wiki/Honkai:_Star_Rail\" title=\"Honkai: Star Rail\">Honkai: Star Rail</a></i>. It is unlocked after the completion of <a href=\"/wiki/Trailblaze_Mission\" title=\"Trailblaze Mission\">Trailblaze Mission</a> <i><a href=\"/wiki/Long_Wait_for_the_Blade%27s_Edge\" title=\"Long Wait for the Blade&#39;s Edge\">Long Wait for the Blade's Edge</a></i>. Once unlocked, players can complete various weekly and \"This Period\" missions in order to gain <span class=\"item\"><span class=\"item-image\"><span class=\"hidden\" style=\"height:20px;width:20px\"><span typeof=\"mw:File\"><a href=\"/wiki/The_Nameless_EXP\" title=\"The Nameless EXP\"><img alt=\"The Nameless EXP\" src=\"data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"20\" class=\"mw-file-element lazyload\" data-image-name=\"Item The Nameless EXP.png\" data-image-key=\"Item_The_Nameless_EXP.png\" data-relevant=\"1\" data-src=\"https://static.wikia.nocookie.net/houkai-star-rail/images/9/9e/Item_The_Nameless_EXP.png/revision/latest/scale-to-width-down/20?cb=20230506194155\" /></a></span></span><span class=\"mobile-only\"><span typeof=\"mw:File\"><a href=\"/wiki/The_Nameless_EXP\" title=\"The Nameless EXP\"><img alt=\"The Nameless EXP\" src=\"data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D\" decoding=\"async\" loading=\"lazy\" width=\"30\" height=\"30\" class=\"mw-file-element lazyload\" data-image-name=\"Item The Nameless EXP.png\" data-image-key=\"Item_The_Nameless_EXP.png\" data-relevant=\"1\" data-src=\"https://static.wikia.nocookie.net/houkai-star-rail/images/9/9e/Item_The_Nameless_EXP.png/revision/latest/scale-to-width-down/30?cb=20230506194155\" /></a></span></span></span><span class=\"item-text\"> <a href=\"/wiki/The_Nameless_EXP\" title=\"The Nameless EXP\">The Nameless EXP</a></span></span>.\n<p class=\"mw-empty-elt\"></p><p>Each level requires <span class=\"item\"><span class=\"item-image\"><span class=\"hidden\" style=\"height:20px;width:20px\"><span typeof=\"mw:File\"><a href=\"/wiki/The_Nameless_EXP\" title=\"The Nameless EXP\"><img alt=\"The Nameless EXP\" src=\"data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"20\" class=\"mw-file-element lazyload\" data-image-name=\"Item The Nameless EXP.png\" data-image-key=\"Item_The_Nameless_EXP.png\" data-relevant=\"1\" data-src=\"https://static.wikia.nocookie.net/houkai-star-rail/images/9/9e/Item_The_Nameless_EXP.png/revision/latest/scale-to-width-down/20?cb=20230506194155\" /></a></span></span><span class=\"mobile-only\"><span typeof=\"mw:File\"><a href=\"/wiki/The_Nameless_EXP\" title=\"The Nameless EXP\"><img alt=\"The Nameless EXP\" src=\"data:image/gif;base64,R0lGODlhAQABAIABAAAAAP///yH5BAEAAAEALAAAAAABAAEAQAICTAEAOw%3D%3D\" decoding=\"async\" loading=\"lazy\" width=\"30\" height=\"30\" class=\"mw-file-element lazyload\" data-image-name=\"Item The Nameless EXP.png\" data-image-key=\"Item_The_Nameless_EXP.png\" data-relevant=\"1\" data-src=\"https://stLine truncated