Download Latest Version v4.3.0 source code.zip (244.6 kB) Google Add to Preferred Sources
Home / v4.1.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-02 2.4 kB
v4.1.0 -- Full article content, multi-message posts, URL-based item lookup source code.tar.gz 2026-07-02 222.5 kB
v4.1.0 -- Full article content, multi-message posts, URL-based item lookup source code.zip 2026-07-02 237.3 kB
Totals: 3 Items   462.1 kB 0

v4.1.0 — Full article content, multi-message posts, and URL-based item lookup

✨ Features

Post full article bodies, not just summaries. The content field now works in a feed's fields list — Atom <content>, RSS <content:encoded>, and JSON Feed content_html all render like any other text field (e.g. fields = ##title,link,content, or >content to blockquote it).

max_paragraphs (per-feed) — trim a long body field to just its first N blank-line-separated paragraphs. Handy for feeds whose lead paragraph is a summary followed by a long thread (e.g. keep only the "today in one sentence" intro).

Long posts are split across multiple messages automatically. Discord caps a message at 2000 characters; posts longer than that are now broken into several messages on paragraph/line/word boundaries, with small subtext markers (… continuing in next message / … continued from previous message) so readers can tell. A new max_messages setting (per-feed or channelname.max_messages) caps how many messages one item may produce; 0 (default) is unlimited, and a positive value marks the last message … post truncated.

Find a stored item by its URL. feed_items now records each item's link(s) in a new urls column, derived from the feed's configured link/url/<…> fields. This makes it easy to locate and delete a row to force re-processing — especially for feeds whose dedupe id is opaque (e.g. reddit's t3_…), where the id alone is unsearchable. Feeds with two links (Hacker News, Lobsters) store both.

⚡ Performance

Faster startup cleanup. The 10-year retention sweep no longer scans the entire feed_items table; it now compares against a precomputed ISO-8601 cutoff so SQLite can use the published index.

🔧 Upgrade notes

  • Automatic DB migration on first startup: adds the urls column and its index (instant, metadata-only — no table rewrite even on large databases). No manual steps.
  • Helper scripts (show_sample_entry.py, show_all_entries.py) now render content-style list fields so you can preview them.

Changelog (v4.0.1...v4.1.0):

  • feat: post full article content with paragraph and message limits
  • feat: store item url(s) in feed_items for easier row lookup
  • perf: make 10-year cleanup use the published index
  • chore: bump version to 4.1.0
Source: README.md, updated 2026-07-02