# Feather: file-based RSS reader client ## Usage start with pictures/gif each time ### Navigating feeds Directories, sorting/searching by date/title (a.k.a. using a file manager) ### Reading an item opening an item ### Marking items as read Delete See read items in the trash can ### Updating with the server Call `feather sync` to synchronize all local data with the server (read items, new items from the server, etc.). `feather daemon` ### Configuration After changing the configuration, you can call `feather regenerate` to regenerate all local files with the new configuration (to reflect the changes in the HTML template, filenames, etc.). `feather clear-data` ### Theoretical use-cases #### Processing with scripts #### Syncthing ## Installation ### Docker `podman run -d -v ./config.toml:/feather/config.toml -v feather-data:/feather/data -v ./reader:/feather/reader --name feather feather daemon` ### Raw You need Python 3.12 or newer. Then pip it up. ## FAQ ### Why ### Name ### What should I eat tonight ## TODO - [ ] Write documentation - [x] Perform mark-as-read operation more often than sync (inotify, daemon, etc.) - [ ] inotify might still be nice for instant reactions - [x] Make HTML filename configurable - [x] Make HTML template configurable - [ ] Nested categories: ttrss-python? - [ ] Share the fun somewhere - [x] Edge cases: mark as read during sync (if marked as read on server or not) - [x] Proper filename escaping - [x] Command to force regenerate all HTML files (incl. recompute datetimes & paths) - [x] Handle item updates - [ ] Actually think about the issues created by the duplicate warning - [x] Set generated files creation/modification date instead of putting date in filename - [ ] Make a proper Python package - [ ] Attachments