webui: store RSS feeds/rules/indexers in the webui DB

Move RSS persistence out of the daemon blob store and into the webui's
own SQLite DB (feeds, rules, indexers tables; articles + affectedFeeds
held as JSON columns). Remove the now-unused daemon blob store
(set/get_webui_blob, blob_lock, data_dir).

With this, all webui-owned state — accounts, taxonomy, RSS — lives in
the webui DB; the daemon only keeps naut's own data (per-torrent labels
still flow through set_labels for Lua).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ookami125 2026-06-23 22:11:17 -04:00
parent 9474e6f31a
commit 91d4b99aee
4 changed files with 178 additions and 96 deletions

View file

@ -52,4 +52,14 @@ bool webui_store_load_categories(webui_store *s, json_t *out);
bool webui_store_save_tags(webui_store *s, json_t *tags);
bool webui_store_load_tags(webui_store *s, json_t *out);
/* --- RSS: feeds, auto-download rules, Torznab indexers (owned here) -------- *
* save_* replace the whole list atomically; load_* append to the array `out`,
* rebuilding the exact JSON shapes the web layer/UI use. */
bool webui_store_save_feeds(webui_store *s, json_t *feeds);
bool webui_store_load_feeds(webui_store *s, json_t *out);
bool webui_store_save_rules(webui_store *s, json_t *rules);
bool webui_store_load_rules(webui_store *s, json_t *out);
bool webui_store_save_indexers(webui_store *s, json_t *indexers);
bool webui_store_load_indexers(webui_store *s, json_t *out);
#endif /* NAUT_WEBUI_STORE_H */