Release v1.1.0
News feed server, reusable parsing specs, caching, and multiple output formats.
Added
serve— local HTTP feed server (standard-library only) that turns any page URL into a feed on demand over GET (GET /feed?url=<page>&format=atom), plus/healthand/endpoints. Feed URLs can be pasted straight into any RSS reader.analyze— runs the dynamic heuristics once and distills them into a reusable YAML parsing spec; new--spec/-soption forextractruns fast, deterministic extraction from a pre-built spec.- Reusable parsing specs via
newsworker.spec(FeedSpec,SpecAnalyzer,SpecExtractor) using deterministic CSS/XPath selectors. - Caching layer (
newsworker.cache) with a spec cache and a content cache (configurable TTL). New--no-cache,--refresh,--config/-coptions forextract, and--cache-dir/--content-ttlforserve. - Settings support (
newsworker.settings) backed by a YAML config file at~/.newsworker/config.yaml. - High-level
newsworker.service.FeedServiceshared byextractand the server. - Multiple output formats:
extractsupportsjson/rss/atom/csv;scansupportsjson/rss/atom/csv/opml. New--format/-fand--output/-ooptions, plus a newnewsworker.formatsmodule.
Changed
- Rewrote
README.mdwith a modern structure and full CLI/caching documentation. extractnow builds and caches a parsing spec (plus page content) on first use for faster subsequent runs.scannow emits structured, format-aware output.- Added
cssselect,pyyaml,requests,urllib3dependencies (and declaredfeedparserexplicitly).
Fixed
- Naive datetimes are normalized to UTC when rendering RSS/Atom feeds.
Full changelog: https://github.com/ivbeg/newsworker/blob/master/CHANGELOG.md