From 3735ddcf39fb56905c8c4044b445538554527662 Mon Sep 17 00:00:00 2001 From: Kieran Date: Wed, 12 Apr 2023 10:47:13 +0100 Subject: [PATCH] Merge NIP-81 tags --- packages/app/src/Element/NoteCreator.tsx | 46 ++++++++++++------------ packages/app/src/Upload/VoidCat.ts | 16 ++++++--- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/packages/app/src/Element/NoteCreator.tsx b/packages/app/src/Element/NoteCreator.tsx index 695920ef..0c4b1753 100644 --- a/packages/app/src/Element/NoteCreator.tsx +++ b/packages/app/src/Element/NoteCreator.tsx @@ -86,29 +86,29 @@ export function NoteCreator() { ); return; } - - if (sensitive) { - extraTags ??= []; - extraTags.push(["content-warning", sensitive]); - } - const kind = pollOptions ? EventKind.Polls : EventKind.TextNote; - if (pollOptions) { - extraTags ??= []; - extraTags.push(...pollOptions.map((a, i) => ["poll_option", i.toString(), a])); - } - const hk = (eb: EventBuilder) => { - extraTags?.forEach(t => eb.tag(t)); - eb.kind(kind); - return eb; - }; - const ev = replyTo ? await publisher.reply(replyTo, note, hk) : await publisher.note(note, hk); - publisher.broadcast(ev); - dispatch(reset()); - for (const oe of otherEvents) { - publisher.broadcast(oe); - } - dispatch(reset()); } + + if (sensitive) { + extraTags ??= []; + extraTags.push(["content-warning", sensitive]); + } + const kind = pollOptions ? EventKind.Polls : EventKind.TextNote; + if (pollOptions) { + extraTags ??= []; + extraTags.push(...pollOptions.map((a, i) => ["poll_option", i.toString(), a])); + } + const hk = (eb: EventBuilder) => { + extraTags?.forEach(t => eb.tag(t)); + eb.kind(kind); + return eb; + }; + const ev = replyTo ? await publisher.reply(replyTo, note, hk) : await publisher.note(note, hk); + publisher.broadcast(ev); + dispatch(reset()); + for (const oe of otherEvents) { + publisher.broadcast(oe); + } + dispatch(reset()); } } @@ -133,7 +133,7 @@ export function NoteCreator() { if (rx.header) { const link = `nostr:${encodeTLV(rx.header.id, NostrPrefix.Event, undefined, rx.header.kind)}`; dispatch(setNote(`${note ? `${note}\n` : ""}${link}`)); - dispatch(setOtherEvents([rx.header])) + dispatch(setOtherEvents([...otherEvents, rx.header])); } else if (rx.url) { dispatch(setNote(`${note ? `${note}\n` : ""}${rx.url}`)); } else if (rx?.error) { diff --git a/packages/app/src/Upload/VoidCat.ts b/packages/app/src/Upload/VoidCat.ts index a53f9d4d..4444aee1 100644 --- a/packages/app/src/Upload/VoidCat.ts +++ b/packages/app/src/Upload/VoidCat.ts @@ -3,6 +3,7 @@ import { EventKind } from "@snort/nostr"; import { FileExtensionRegex, VoidCatHost } from "Const"; import { EventPublisher } from "Feed/EventPublisher"; import { UploadResult } from "Upload"; +import { magnetURIDecode } from "Util"; /** * Upload file to void.cat @@ -45,12 +46,19 @@ export default async function VoidCat( if (publisher) { const tags = [ - ["u", resultUrl], - ["hash", rsp.file?.metadata?.digest ?? "", "sha256"], - ["type", rsp.file?.metadata?.mimeType ?? "application/octet-stream"], + ["url", resultUrl], + ["x", rsp.file?.metadata?.digest ?? ""], + ["m", rsp.file?.metadata?.mimeType ?? "application/octet-stream"], ]; + if (rsp.file?.metadata?.size) { + tags.push(["size", rsp.file.metadata.size.toString()]); + } if (rsp.file?.metadata?.magnetLink) { - tags.push(["u", rsp.file.metadata.magnetLink]); + tags.push(["magnet", rsp.file.metadata.magnetLink]); + const parsedMagnet = magnetURIDecode(rsp.file.metadata.magnetLink); + if (parsedMagnet?.infoHash) { + tags.push(["i", parsedMagnet?.infoHash]); + } } ret.header = await publisher.generic(filename, EventKind.FileHeader, tags); }