diff --git a/.changeset/flat-buses-glow.md b/.changeset/flat-buses-glow.md new file mode 100644 index 000000000..4d727803e --- /dev/null +++ b/.changeset/flat-buses-glow.md @@ -0,0 +1,5 @@ +--- +"nostrudel": patch +--- + +Support embedding media from IPFS diff --git a/src/helpers/url.ts b/src/helpers/url.ts index dce2298d1..a04718d0b 100644 --- a/src/helpers/url.ts +++ b/src/helpers/url.ts @@ -9,15 +9,21 @@ export function isMediaURL(url: string | URL) { } export function isImageURL(url: string | URL) { const u = new URL(url); - return IMAGE_EXT.some((ext) => u.pathname.endsWith(ext)); + const ipfsFilename = u.searchParams.get("filename"); + + return IMAGE_EXT.some((ext) => u.pathname.endsWith(ext) || ipfsFilename?.endsWith(ext)); } export function isVideoURL(url: string | URL) { const u = new URL(url); - return VIDEO_EXT.some((ext) => u.pathname.endsWith(ext)); + const ipfsFilename = u.searchParams.get("filename"); + + return VIDEO_EXT.some((ext) => u.pathname.endsWith(ext) || ipfsFilename?.endsWith(ext)); } export function isAudioURL(url: string | URL) { const u = new URL(url); - return AUDIO_EXT.some((ext) => u.pathname.endsWith(ext)); + const ipfsFilename = u.searchParams.get("filename"); + + return AUDIO_EXT.some((ext) => u.pathname.endsWith(ext) || ipfsFilename?.endsWith(ext)); } export function replaceDomain(url: string | URL, replacementUrl: string | URL) {