Skip to content

Navigation Menu

Sign in
Sign up

feat: optionally prefer the feed's own title over readability's extracted title - #129

Merged
j6k4m8 merged 2 commits into
j6k4m8:master from
Smengerl:feature/rss-prefer-feed-title
Aug 11, 2026
Merged

feat: optionally prefer the feed's own title over readability's extracted title #129
j6k4m8 merged 2 commits into
j6k4m8:master from
Smengerl:feature/rss-prefer-feed-title

Conversation

@Smengerl

@Smengerl Smengerl commented Aug 3, 2026
edited
Loading

Copy link
Copy Markdown
Contributor

Summary

  • readability's doc.title() is unreliable on some sites (e.g. it returns just the site name for every article on some blogs). The RSS feed's own <title> is usually accurate.
  • New prefer_feed_title flag, off by default so existing behavior is unchanged; callers who hit this on a specific feed can opt in per source.

Test plan

  • pytest goosepaper/storyprovider/test_rss.py - 11 passed (9 existing + 2 new: flag on -> feed title wins; flag off/default -> readability title unchanged)
  • Full suite (pytest) - 80 passed

Merge overlap note

Verified by locally merging every pairwise combination of my currently open PRs against master. This one produces a mechanical (non-semantic) merge conflict with #121 only - both add new parameters to RSSFeedStoryProvider.__init__ at the same point. No overlap with any other currently open PR.

...cted title
readability's doc.title() is unreliable on some sites (e.g. it returns just
the site name for every article on some blogs). The RSS feed's own <title>
is usually accurate. Off by default to keep existing behavior unchanged;
callers who hit this on a specific feed can opt in per source.

Smengerl commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

Part of a merge-order check across all my open PRs (full breakdown on #124). This PR conflicts with #121 (both touch storyprovider/rss.py; #121 also separately conflicts with the config.py cluster — see #124). Suggested order: this PR first among the rss.py group → #134#135#128#127, with #121 merged last overall.

@j6k4m8 j6k4m8 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am somewhat ambivalent about these tests, they're meaningfully more sophisticated than the actual code they test and I worry they're not quite usefully testing the behavior we care about. I'm cool with leaving them in but I'm leaving this review note so that in the future if we encounter issues with them we can feel less bad about taking them back out :)

j6k4m8 merged commit 8a657b4 into j6k4m8:master Aug 11, 2026
4 checks passed
Smengerl deleted the feature/rss-prefer-feed-title branch August 14, 2026 21:54
Smengerl added a commit to Smengerl/goosepaper-logicpuzzles that referenced this pull request Aug 18, 2026
... constructor
j6k4m8#129 added RSSFeedStoryProvider(prefer_feed_title=...) and described it as
something callers could "opt in per source" - the same language used for
every other per-source RSS option, all of which are set via the config
file. But config.py's "rss" schema never listed prefer_feed_title as an
optional field, and util.py's construct_story_providers_from_source_configs
never passed it through even if it somehow got past validation.
Concretely: {"type": "rss", ..., "prefer_feed_title": true} in a config
file raises "Unknown field(s) in source #1: prefer_feed_title" - the
option is unreachable from the CLI/config path j6k4m8#129's own description
promised, only usable by constructing RSSFeedStoryProvider directly in
Python.
Wire it through the same way byline/body_source already are: add it to
the "rss" schema's optional fields, validate it as a bool, and add it to
util.py's allow-list.
Smengerl added a commit to Smengerl/goosepaper-logicpuzzles that referenced this pull request Aug 21, 2026
Marks the PRs actually merged upstream since the table was last
touched (j6k4m8#118-120, j6k4m8#122, j6k4m8#126, j6k4m8#129, j6k4m8#130, j6k4m8#134, j6k4m8#135, j6k4m8#137, j6k4m8#141),
notes j6k4m8#123 as closed in favor of feature/puzzle-explanations, and
adds the four rows that were missing entirely: j6k4m8#141
(fix/rss-absolute-url-wrapper-leak, merged), j6k4m8#142
(fix/rss-image-embedding, closed in favor of j6k4m8#145), j6k4m8#144
(fix/rss-prefer-feed-title-config-wiring, open), and j6k4m8#145
(feature/render-time-image-sizing, open).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@j6k4m8 j6k4m8 j6k4m8 approved these changes

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

AltStyle によって変換されたページ (->オリジナル) /