Commit Graph

13 Commits

Author SHA1 Message Date
Ricardo
ab6f81bf72 feat: Phase 1 - Enhanced feed discovery with validation
- Add validator.js: validateFeedUrl with comments feed detection
- Add discovery.js: discoverAndValidateFeeds with type labels
- Add opml.js: OPML 2.0 export of all subscriptions
- Update reader.js: searchFeeds uses validation, subscribe validates
- Update feeds.js: updateFeedStatus for health tracking
- Update search.njk: Show feed types, validation status, error messages
- Add CSS for badges, notices, and invalid feed styling
- Register OPML export route at /reader/opml

Phase 1 of blogroll implementation plan.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 01:39:58 +01:00
Ricardo
6caf37a003 feat: add startup cleanup for old read items
Runs cleanupAllReadItems on server startup to clean up accumulated
read items from all channels, keeping only the 30 most recent per
channel per user.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 00:52:29 +01:00
Ricardo
722a884ca3 fix: allow action buttons to wrap on mobile
Add flex-wrap to .item-actions so all buttons remain visible on
narrow screens. Previously the mark-as-read button was cut off.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 00:09:48 +01:00
Ricardo
61819f1aeb feat: cleanup old read items (keep last 30 per channel)
Prevents database accumulation by automatically deleting older read
items when marking items as read. Keeps the 30 most recent read items
per channel per user to allow revisiting recently read content.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:59:46 +01:00
Ricardo
59cbe7c238 feat: add bookmark to timeline, mark-read to item view
- Add bookmark button to item-card.njk (timeline view)
- Add mark-read button to item.njk (full item view)
- Add JavaScript handler for mark-read on item page
- Pass channel info to item template for mark-read API call

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:56:03 +01:00
Ricardo
6b19ac4cc7 fix: correct API URL for individual mark-read
The JavaScript was POSTing to /microsub/reader but the Microsub API
is at /microsub. Fixed by computing parent path from baseUrl.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:34:09 +01:00
Ricardo
c830ad5df6 feat: add show/hide read items and fix individual mark-read
- Add countReadItems function to storage/items.js
- Update getTimelineItems to filter out read items by default
- Add showRead query param support to channel controller
- Update channel.njk with show/hide read toggle buttons
- Add "All caught up!" state when all items are read
- Add JavaScript handler for individual mark-read buttons
- Mark-read now hides the item with smooth animation
- Add locale strings: showRead, hideRead, allRead

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:24:33 +01:00
Ricardo
8d373dca5f fix: add markAllRead function and route
Restore the "Mark all as read" button functionality in channel view.
The button form posts to /api/mark-read but the route and controller
function were missing from the standalone repo.

- Add markAllRead function to reader controller
- Add /api/mark-read route to index.js
- Import markItemsRead from storage/items.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:08:49 +01:00
Ricardo
99cb4de4e8 feat: add syndication target selection to compose form
- Fetch syndication targets from Micropub config
- Display checkboxes for each target in compose form
- Include mp-syndicate-to in Micropub request
- Include optional content/comments for likes and reposts
2026-02-06 20:44:53 +01:00
Ricardo
fabadd8585 feat: allow comments on likes, reposts, and bookmarks
- Show textarea for all compose actions, not just replies
- Add bookmark button to item actions
- Comments will be included in syndication
2026-02-06 20:41:16 +01:00
Ricardo
4819c229cd feat: restore full microsub implementation with reader UI
Restores complete implementation from feat/endpoint-microsub branch:
- Reader UI with views (reader.njk, channel.njk, feeds.njk, etc.)
- Feed polling, parsing, and normalization
- WebSub subscriber
- SSE realtime updates
- Redis caching
- Search indexing
- Media proxy
- Webmention processing
2026-02-06 20:20:25 +01:00
Ricardo
66dd5b5c91 chore: bump version to 1.0.12 2026-02-06 16:41:09 +01:00
Ricardo
30f9939b3a feat: initial commit - Microsub endpoint for Indiekit
Fork of @indiekit/endpoint-microsub with customizations.
Enables subscribing to feeds and reading content using the Microsub protocol.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 16:32:55 +01:00