NIP-94 file headers #488
@ -86,29 +86,29 @@ export function NoteCreator() {
|
|||||||
);
|
);
|
||||||
return;
|
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) {
|
if (rx.header) {
|
||||||
const link = `nostr:${encodeTLV(rx.header.id, NostrPrefix.Event, undefined, rx.header.kind)}`;
|
const link = `nostr:${encodeTLV(rx.header.id, NostrPrefix.Event, undefined, rx.header.kind)}`;
|
||||||
dispatch(setNote(`${note ? `${note}\n` : ""}${link}`));
|
dispatch(setNote(`${note ? `${note}\n` : ""}${link}`));
|
||||||
dispatch(setOtherEvents([rx.header]))
|
dispatch(setOtherEvents([...otherEvents, rx.header]));
|
||||||
} else if (rx.url) {
|
} else if (rx.url) {
|
||||||
dispatch(setNote(`${note ? `${note}\n` : ""}${rx.url}`));
|
dispatch(setNote(`${note ? `${note}\n` : ""}${rx.url}`));
|
||||||
} else if (rx?.error) {
|
} else if (rx?.error) {
|
||||||
|
@ -3,6 +3,7 @@ import { EventKind } from "@snort/nostr";
|
|||||||
import { FileExtensionRegex, VoidCatHost } from "Const";
|
import { FileExtensionRegex, VoidCatHost } from "Const";
|
||||||
import { EventPublisher } from "Feed/EventPublisher";
|
import { EventPublisher } from "Feed/EventPublisher";
|
||||||
import { UploadResult } from "Upload";
|
import { UploadResult } from "Upload";
|
||||||
|
import { magnetURIDecode } from "Util";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Upload file to void.cat
|
* Upload file to void.cat
|
||||||
@ -45,12 +46,19 @@ export default async function VoidCat(
|
|||||||
|
|
||||||
if (publisher) {
|
if (publisher) {
|
||||||
const tags = [
|
const tags = [
|
||||||
["u", resultUrl],
|
["url", resultUrl],
|
||||||
["hash", rsp.file?.metadata?.digest ?? "", "sha256"],
|
["x", rsp.file?.metadata?.digest ?? ""],
|
||||||
["type", rsp.file?.metadata?.mimeType ?? "application/octet-stream"],
|
["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) {
|
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);
|
ret.header = await publisher.generic(filename, EventKind.FileHeader, tags);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user