mirror of
https://github.com/hoornet/vega.git
synced 2026-05-13 22:38:36 -07:00
Fix podcast player stability, V4V payments, and Lightning address
- Add audio.load() reset to prevent cascading failures between episodes - Add onPlaying event handler for reliable post-buffer playback in WebKitGTK - Add 15s loading timeout with user-friendly error for broken audio URLs - Fix V4V LNURL-pay: use Tauri HTTP plugin instead of CORS-blocked browser fetch - Fix Podcast Index API: use Tauri HTTP plugin for V4V enrichment - Fall back to Podcast Index enclosure URL when Fountain.fm CDN is broken - Update Lightning address to jure@getalby.com (Alby cloud migration) - Add broad HTTPS scope for LNURL-pay across Lightning providers
This commit is contained in:
@@ -69,7 +69,12 @@ export async function resolveFountainEpisode(url: string): Promise<PodcastEpisod
|
||||
};
|
||||
|
||||
// Try to enrich with V4V data from Podcast Index (non-blocking)
|
||||
const enriched = await enrichWithV4V(episode);
|
||||
let enriched = episode;
|
||||
try {
|
||||
enriched = await enrichWithV4V(episode);
|
||||
} catch {
|
||||
// V4V enrichment failed — use episode as-is
|
||||
}
|
||||
|
||||
cache[url] = enriched;
|
||||
saveCache(cache);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { fetch } from "@tauri-apps/plugin-http";
|
||||
import type { PodcastEpisode, V4VRecipient } from "../../types/podcast";
|
||||
|
||||
const API_KEY = "VKWWTGY25NVCKYJWHSNY";
|
||||
@@ -89,7 +90,14 @@ export async function enrichWithV4V(episode: PodcastEpisode): Promise<PodcastEpi
|
||||
const value = extractV4V(valueSource.value as Record<string, unknown> | undefined);
|
||||
if (value.length === 0) return episode;
|
||||
|
||||
return { ...episode, value };
|
||||
// If Fountain's audio URL is on their broken CDN, use Podcast Index's real enclosure URL
|
||||
let { enclosureUrl } = episode;
|
||||
if (match && enclosureUrl.includes("feeds.fountain.fm")) {
|
||||
const piUrl = match.enclosureUrl as string | undefined;
|
||||
if (piUrl) enclosureUrl = piUrl;
|
||||
}
|
||||
|
||||
return { ...episode, value, enclosureUrl };
|
||||
} catch {
|
||||
return episode;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { fetch } from "@tauri-apps/plugin-http";
|
||||
import type { PodcastEpisode, V4VRecipient } from "../../types/podcast";
|
||||
import { payInvoiceViaNWC } from "../lightning/nwc";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user