Description
src/Infrastructure/Catalog/MediathekView/ is dead DR-001-era code: the MediathekView filmliste
parser from when Krautwatch was a standalone Mediathek browser. DR-010 replaced that direction — the
catalog is now built by the per-broadcaster crawler agents (ARD/KiKA, ZDF) hitting the broadcasters'
own APIs — and MediathekView is explicitly de-emphasised there.
Removing it is not just tidiness; it carries a security cost today:
FilmlisteParser.cs is the only consumer of SharpCompress (it needs XZ/LZMA2 to decompress
the filmliste), and SharpCompress 0.38.0 has a known moderate severity advisory —
NU1902 / GHSA-6c8g-7p36-r338. That warning currently fires on every build of
src/Infrastructure, which means it ships in every host.
Related loose ends from the same era:
AppSettings.CatalogProviderKey still defaults to "mediathekview".
InfrastructureServiceExtensions.AddMediathekViewCatalogProvider(...) still exists.
- The
ICatalogProvider port in Domain/Interfaces should be re-examined — DR-010 notes the
provider/port abstraction survives, but it is worth confirming whether ICatalogProvider is still
earning its place now that IBroadcasterCrawler is the real extension point, or whether it is
vestigial too.
Usage Example
After removal, a build of src/Infrastructure should be free of NU1902, and:
grep -ri mediathekview src/ # → no hits outside docs/architecture (DR-001 history)
AppSettings.CatalogProviderKey either goes away or stops defaulting to a provider that no longer
exists.
Alternative
Bump SharpCompress to a patched version and keep the dead subsystem. That silences the advisory but
keeps unused code, an unused dependency, and a misleading default setting in the model — trading a
one-line pin for permanent confusion about how the catalog is actually built.
Notes
Care needed on two points, so this is not a blind rm -rf:
- Check whether
ICatalogProvider / AddMediathekViewCatalogProvider is still referenced by any
host or test before deleting.
AppSettings.CatalogProviderKey is a persisted column — changing or dropping it needs an EF
migration, and existing rows hold "mediathekview".
Description
src/Infrastructure/Catalog/MediathekView/is dead DR-001-era code: the MediathekView filmlisteparser from when Krautwatch was a standalone Mediathek browser. DR-010 replaced that direction — the
catalog is now built by the per-broadcaster crawler agents (ARD/KiKA, ZDF) hitting the broadcasters'
own APIs — and MediathekView is explicitly de-emphasised there.
Removing it is not just tidiness; it carries a security cost today:
FilmlisteParser.csis the only consumer ofSharpCompress(it needs XZ/LZMA2 to decompressthe filmliste), and
SharpCompress 0.38.0has a known moderate severity advisory —NU1902/ GHSA-6c8g-7p36-r338. That warning currently fires on every build ofsrc/Infrastructure, which means it ships in every host.Related loose ends from the same era:
AppSettings.CatalogProviderKeystill defaults to"mediathekview".InfrastructureServiceExtensions.AddMediathekViewCatalogProvider(...)still exists.ICatalogProviderport inDomain/Interfacesshould be re-examined — DR-010 notes theprovider/port abstraction survives, but it is worth confirming whether
ICatalogProvideris stillearning its place now that
IBroadcasterCrawleris the real extension point, or whether it isvestigial too.
Usage Example
After removal, a build of
src/Infrastructureshould be free of NU1902, and:grep -ri mediathekview src/ # → no hits outside docs/architecture (DR-001 history)AppSettings.CatalogProviderKeyeither goes away or stops defaulting to a provider that no longerexists.
Alternative
Bump
SharpCompressto a patched version and keep the dead subsystem. That silences the advisory butkeeps unused code, an unused dependency, and a misleading default setting in the model — trading a
one-line pin for permanent confusion about how the catalog is actually built.
Notes
Care needed on two points, so this is not a blind
rm -rf:ICatalogProvider/AddMediathekViewCatalogProvideris still referenced by anyhost or test before deleting.
AppSettings.CatalogProviderKeyis a persisted column — changing or dropping it needs an EFmigration, and existing rows hold
"mediathekview".