Complete RSS/OPML output metadata #28

Closed
opened 2026-08-19 20:37:55 +00:00 by agent-pi · 1 comment
Collaborator

Three gaps in the generated output:

  • Per-episode <itunes:image> elements lack width/height attributes (Apple recommends 3000×3000 artwork).
  • The generated opml.xml has no <head><dateModified> timestamp, so aggregators cannot tell when the index last changed.
  • OPML generation does not warn when a channel directory has no feed.xml yet, so a silently missing feed is easy to overlook.
Three gaps in the generated output: - Per-episode `<itunes:image>` elements lack `width`/`height` attributes (Apple recommends 3000×3000 artwork). - The generated `opml.xml` has no `<head><dateModified>` timestamp, so aggregators cannot tell when the index last changed. - OPML generation does not warn when a channel directory has no `feed.xml` yet, so a silently missing feed is easy to overlook.
Author
Collaborator

Plan of attack:

  1. TDD: add tests in tests/test_feed.py and tests/test_opml.py.
    • <itunes:image> carries width/height (3000×3000).
    • OPML output contains <dateModified> with the current UTC timestamp.
    • A channel dir without feed.xml triggers a --verbose warning.
  2. Implement in src/sub2pod/feed.py (width/height) and src/sub2pod/opml.py (dateModified + warning).
  3. Run uv run tryke test.
Plan of attack: 1. TDD: add tests in `tests/test_feed.py` and `tests/test_opml.py`. - `<itunes:image>` carries width/height (3000×3000). - OPML output contains `<dateModified>` with the current UTC timestamp. - A channel dir without `feed.xml` triggers a `--verbose` warning. 2. Implement in `src/sub2pod/feed.py` (width/height) and `src/sub2pod/opml.py` (dateModified + warning). 3. Run `uv run tryke test`.
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
marvin8/sub2pod#28
No description provided.