NIP-94 file headers #488

Merged
v0l merged 7 commits from nip94 into main 2023-04-17 10:57:13 +00:00
2 changed files with 35 additions and 27 deletions
Showing only changes of commit 3735ddcf39 - Show all commits

View File

@ -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) {

View File

@ -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);
}