feat: add Atom feeds and JSON/CSV import/export

Phase 5 — Feeds & Import/Export:
- Atom feeds: global (/feed.xml), per-user (/u/{name}/feed.xml),
  per-tag (/tags/{name}/feed.xml). Uses gorilla/feeds.
- JSON export: all user's faves with tags, pretty-printed
- CSV export: standard format with header row
- JSON import: validates and creates faves with tags
- CSV import: flexible column mapping from header row
- Import/export pages with format documentation
- Feed items include enclosure for images, author info
- Limited-visibility profiles excluded from feeds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2026-03-29 16:11:44 +02:00
commit 4e9db3f995
7 changed files with 463 additions and 0 deletions

1
go.mod
View file

@ -4,6 +4,7 @@ go 1.26.1
require (
github.com/google/uuid v1.6.0
github.com/gorilla/feeds v1.2.0
golang.org/x/crypto v0.49.0
modernc.org/sqlite v1.48.0
)