From c08458a5cbff8a0a84506bae356573201142c17d Mon Sep 17 00:00:00 2001 From: Tim Van Baak Date: Thu, 6 Feb 2025 07:00:46 -0800 Subject: [PATCH] Update todo list --- README.md | 93 ++++++++++++++++++------------------------------------- 1 file changed, 30 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index 5038571..b51f082 100644 --- a/README.md +++ b/README.md @@ -4,65 +4,6 @@ Intake is an arbitrary feed aggregator that generalizes the concept of a feed. Rather than being restricted to parsing items out of an RSS feed, Intake provides a middle layer of executing arbitrary commands that conform to a JSON-based specification. An Intake source can parse an RSS feed, but it can also scrape a website without a feed, provide additional logic to filter or annotate feed items, or integrate with an API. -## Development - -Parity with existing Python version - -* [x] create sources -* [ ] rename sources -* fetch sources - * [x] create and delete items - * [x] update existing items - * [x] support item TTL and TTD - * [x] on_create triggers - * [ ] on_delete triggers - * [x] dry-run -* item actions - * [x] create - * [x] edit - * [ ] rename - * [x] delete - * [x] execute - * [x] require items to declare action support - * [x] state files - * [x] source environment - * [ ] working directory set -* [x] update web UI credentials -* [ ] automatic crontab integration -* [ ] feed supports item TTS -* [x] data directory from envvars -* [ ] source-level tt{s,d,l} -* [ ] source batching -* channels - * [x] create - * [x] edit - * [ ] rename - * [x] delete -* feeds - * [x] show items - * [x] deactivate items - * [x] mass deactivate - * [ ] punt - * [x] trigger actions - * [x] add ad-hoc items - * [x] show/hide deactivated items - * [ ] show/hide tts items - * [x] sort by time ?? created - * [ ] paging -* [ ] NixOS module -* [ ] NixOS module demo - -Additional features - -* [ ] metric reporting -* [ ] on action failure, create an error item with logs -* [x] first-party password handling instead of basic auth and htpasswd -* [ ] items gracefully add new fields and `action` keys -* [ ] arbitrary date punt -* [ ] HTTP edit item -* [ ] sort crontab entries -* [ ] TUI feed view - ## Overview In Intake, a _source_ represents a single content feed of discrete _items_, such as a blog and its posts or a website and its pages. @@ -145,12 +86,38 @@ The item does not need to declare support for `on_create`. This action is not accessible through the web interface, so if you need to retry the action, you should create another action with the same command as `on_create`. If an item's `on_create` fails, the item is still created, but without any changes made by action. -The special action `on_delete` is like `on_create`, except it runs right before an item is deleted. -It does not require explicit support and is not accessible in the web interface. -The output of `on_delete` is ignored; it is primarily for causing side effects like managing state. - ### Web interface The `intake serve` command runs an HTTP server that gives access to the feed. While the CLI can rely on normal filesystem access control to secure the database, this does not apply to HTTP. Instead, the web interface can be locked behind a password set via `intake passwd`. + +## Development + +Parity features + +* [ ] web feed supports item TTS +* [ ] item punt +* [ ] web feed paging +* [ ] web fetch +* [ ] set a working directory for item actions +* [ ] crontab integration +* [ ] source batching +* [ ] add item from web +* [ ] Nix build +* [ ] NixOS module +* [ ] NixOS vm demo +* [ ] Nix flake templates + +Future features + +* [ ] on_delete triggers +* [ ] manual item edits, CLI +* [ ] manual item edits, web +* [ ] source-level TTS +* [ ] metric reporting +* [ ] on action failure, create an error item with logs +* [ ] items gracefully add new fields and `action` keys +* [ ] arbitrary date punt +* [ ] sort crontab entries +* [ ] TUI feed view