feat(website): add the EPG troubleshooting post, fix the mock identity check

New post at /blog/epg-wrong-program-fix/: a table separating the three
symptoms (an empty row, a channel showing another station's schedule, and
every programme shifted by a fixed amount), how the tvg-id → tvg-name → name
lookup chain produces the first two, the manual "Map EPG channel" flow, and
the display-only EPG time offset with the sign to use. Seven FAQ entries.

The three screenshots are mock-backed. The Xtream mock gains /demo/guide.xml,
an XMLTV guide for its marketing live channels whose ids deliberately match no
playlist tvg-id, which is what makes the manual mapping worth showing; the
capture imports it through the settings, accepting the private-network
confirmation a loopback source raises, then right-clicks a channel of the M3U
fixture and searches the dialog. The new actions live in
capture-navigation-epg-actions.ts, alongside the setup, portal and download
modules, and borrow one entry point from each of its two neighbours instead of
duplicating their navigation.

Also fixes assertMockServerIdentity: it checked both expected categories
against get_vod_categories, but "Urban Drama" is a series category, so the
reuse path rejected every already-running mock and a capture could only run
when the port happened to be free. Each category is now checked against its
own endpoint.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5 committed 2026-09-08 07:28:33 +02:00
1 parent 9f950a1530
commit 186497bf42
22 files changed
+472 -33

No files matched your search

+8
View File
@@ -57,6 +57,14 @@ const GUIDES = [
'blog/guides/screenshots/guide-remote-phone-dark.png',
],
},
{
slug: 'epg-wrong-program-fix',
screenshots: [
'blog/guides/screenshots/guide-epg-map-menu-dark.png',
'blog/guides/screenshots/guide-epg-map-dialog-dark.png',
'blog/guides/screenshots/guide-epg-offset-dark.png',
],
},
];
const readDist = (relativePath) => readFile(new URL(relativePath, distRoot), 'utf8');