Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,18 @@ debug = false
- `/debug/vars` - Runtime metrics (if `debug_endpoints = true`)
- `/robots.txt` - Search engine blocking (if `no_index = true`)

### Web UI Navigation

- `html/index.html` loads `podsync.opml` and fetches each unique RSS feed once per page load
- Latest Episodes is the default landing page; `#shows` opens a responsive artwork grid
- Show cards use channel-level iTunes artwork or RSS image metadata, with a placeholder for missing or broken images
- Shows are sorted by their newest available episode, followed by title when dates match
- Compact metadata uses `2h ago · 42 new`: time is the newest episode's publication date, and count is the number of available RSS items, not playback history
- Clicking a show opens `#show={encoded_feed_url}` and calls the same `displayEpisodesInUI` renderer as Latest Episodes
- Native hash links support browser Back, direct show links, and reverse-proxy path prefixes without extra server routes
- Empty feeds and unavailable feeds remain visible in Shows; feed failures do not prevent other shows from loading
- The UI follows the browser's light or dark appearance

## Storage Behavior

### Local Storage
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,15 @@ This fork adds the following features while maintaining compatibility with upstr

- Configurable `filename_template` for downloaded media and RSS enclosure paths
- Optional one-time filename migration CLI (`--migrate-filenames`, `--migrate-filenames-dry-run`)
- Responsive web UI with Latest Episodes and Shows navigation

### Web UI

Enable `web_ui = true` in `[server]` when using local storage. Latest Episodes remains the landing page.
The Shows tab displays artwork, names, and compact metadata such as `2h ago · 42 new` for feeds included
in `podsync.opml`. The time comes from the newest episode's publication date, and the count is the number
of episodes currently available in that RSS feed. Playback history is not tracked.

Click a show's artwork to browse only its episodes, using the same episode cards, playback, and download
controls as Latest Episodes. Shows are sorted by their newest episode, and browser Back and bookmarked
show links work with the existing web UI, including under a reverse-proxy path prefix.
Loading
Loading