Add podcast playback, Fountain.fm cards, V4V streaming, fix notifications

Podcast feature:
- Podcast discovery via Podcast Index API (trending + search)
- Persistent player bar with play/pause, seek, speed (1x/1.5x/2x), volume
- Audio persists across view navigation, resumes from saved position
- Fountain.fm URL detection in feed with rich playable cards
- "Play in Wrystr" button on inline audio blocks
- V4V streaming sats via NWC (LNURL-pay, 5min accumulation, split payments)
- Share what you're listening to (publish note with confirm)
- Space key toggles play/pause globally

Notification fixes:
- Per-notification read tracking (click to mark read) instead of mark-all-on-open
- Read notifications persist at 50% opacity, unread get accent border
- Always fetches last 7 days, keeps 15 most recent
- Filter out own replies from notifications
- Sidebar badge shows only unread count
This commit is contained in:
Jure
2026-03-21 12:53:05 +01:00
parent 1dafb3b456
commit 04180cf186
20 changed files with 1474 additions and 29 deletions
+33
View File
@@ -0,0 +1,33 @@
export interface PodcastShow {
feedUrl: string;
title: string;
author: string;
artworkUrl: string;
description: string;
podcastIndexId?: number;
}
export interface V4VRecipient {
name?: string;
type: string;
address: string;
split: number;
customKey?: string;
customValue?: string;
}
export interface PodcastEpisode {
guid: string;
title: string;
enclosureUrl: string;
pubDate: number;
duration: number;
description: string;
artworkUrl?: string;
showTitle: string;
showArtworkUrl: string;
podcastIndexId?: number;
value?: V4VRecipient[];
}
export type PlaybackState = "idle" | "loading" | "playing" | "paused";