# Changelog of RSS to JSON API: RSS & Atom Feed Reader, Finds a Site's Feed (`fecklesspleb/rss-feed-reader`) Actor

- **URL**: https://apify.com/fecklesspleb/rss-feed-reader/changelog.md
- **Full Actor documentation**: https://apify.com/fecklesspleb/rss-feed-reader.md

## Changelog

### Unreleased: default mode for an empty input (GAP8)

- An empty input (`{}`) no longer fails with HTTP 400 or a missing-field error. `feedUrls` is no longer required and now has a schema `default` (and prefill) of `["https://www.nasa.gov/feed/"]`. When `feedUrls` is empty or is exactly that sample, the run is in default mode: it reads the NASA feed, returns at most 10 items (a smaller `maxItemsPerFeed` wins), logs `Default mode: ...`, adds `defaultMode` and `defaultFeed` to `RUN_SUMMARY` and prefixes the status message with `Default mode (sample feed): `.
- Input schema: the prefill changed from Hacker News and The Verge to the NASA sample feed, so the Store test runs default mode. Runs that list any other feeds behave exactly as before.
- Lint only: removed unused imports in `common.py` (pyflakes clean). No behaviour change.

### Unreleased: robots.txt on every redirect, unreadable robots.txt skips the host

- Redirects are now followed one hop at a time, and robots.txt is checked for every hop. A feed or page that redirects to a disallowed path, or to another host whose robots.txt disallows it, is reported as `skipped` in `RUN_SUMMARY` and not fetched. Up to 5 redirects are followed.
- If a host's robots.txt can't be read (a server error after one retry, a network failure, or a 200 that is an HTML page or not `text/plain`), the whole host is skipped for the run with a warning, and the feed is `skipped` with the reason. Before, such a host was read as if it had no rules. A missing robots.txt (any 4xx) still means no rules.

### Unreleased: undated items

- With `postedWithinDays` set, items without a publish date are counted in `RUN_SUMMARY` (`undatedKept`) and logged. Set `keepUndatedItems` to `false` to drop them.

### Unreleased: JSON Feed

- JSON Feed 1.0 and 1.1 feeds are read, and `/feed.json` is one of the paths tried when a page has no feed link.
