Directory: give feeds a category, from the feed itself #4

Closed
opened 2026-09-14 13:58:18 -07:00 by rays · 0 comments
Owner

ParsedFeed keeps per-episode categories (src/feed.rs:24) but nothing at the channel level. Read the first <itunes:category> off the channel, next to where from_rss already reads ch.itunes_ext() for explicit (src/feed.rs:441). Take only the iTunes one: it is Apple's fixed list, while a plain channel <category> is freeform and would fill the rail with one-off tags.

Add a category column through migrate()'s list, pass it through record_feed, and put it on FeedSummary.

Backfill: record_feed only runs on a 200, and 682 feeds carry a validator, so most would answer 304 and never pick up a category until the publisher changes something. Have the migration null etag and last_modified once (not last_checked, as clear_validators does, or every feed comes due at once) so each re-reads on its normal schedule. (src/feed.rs, src/db.rs, src/main.rs)

First of the Directory overhaul issues.

`ParsedFeed` keeps per-episode `categories` (`src/feed.rs:24`) but nothing at the channel level. Read the first `<itunes:category>` off the channel, next to where `from_rss` already reads `ch.itunes_ext()` for `explicit` (`src/feed.rs:441`). Take only the iTunes one: it is Apple's fixed list, while a plain channel `<category>` is freeform and would fill the rail with one-off tags. Add a `category` column through `migrate()`'s list, pass it through `record_feed`, and put it on `FeedSummary`. Backfill: `record_feed` only runs on a 200, and 682 feeds carry a validator, so most would answer 304 and never pick up a category until the publisher changes something. Have the migration null `etag` and `last_modified` once (not `last_checked`, as `clear_validators` does, or every feed comes due at once) so each re-reads on its normal schedule. (`src/feed.rs`, `src/db.rs`, `src/main.rs`) First of the Directory overhaul issues.
rays added a new dependency 2026-09-14 14:02:59 -07:00
rays closed this issue 2026-09-15 09:09:49 -07:00
rays added the enhancement label 2026-09-17 13:33:18 -07:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: rays/ipodderx-rs#4