From 39fbe3b10f94b7542df01fb085e4f164aab15fca Mon Sep 17 00:00:00 2001 From: Kieran Date: Thu, 26 Jan 2023 13:55:30 +0000 Subject: [PATCH] feat: request metadata stripping from void.cat --- src/Const.ts | 5 +++++ src/Element/NoteCreator.tsx | 4 ++-- src/Feed/VoidUpload.ts | 6 ++++-- src/Pages/settings/Profile.tsx | 5 +++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Const.ts b/src/Const.ts index f18b5694a..ad23cc00c 100644 --- a/src/Const.ts +++ b/src/Const.ts @@ -5,6 +5,11 @@ import { RelaySettings } from "Nostr/Connection"; */ export const ApiHost = "https://api.snort.social"; +/** + * Void.cat file upload service url + */ +export const VoidCatHost = "https://void.cat"; + /** * Websocket re-connect timeout */ diff --git a/src/Element/NoteCreator.tsx b/src/Element/NoteCreator.tsx index 426bfce17..c9e4e3e1c 100644 --- a/src/Element/NoteCreator.tsx +++ b/src/Element/NoteCreator.tsx @@ -7,7 +7,7 @@ import "./NoteCreator.css"; import useEventPublisher from "Feed/EventPublisher"; import { openFile } from "Util"; import VoidUpload from "Feed/VoidUpload"; -import { FileExtensionRegex } from "Const"; +import { FileExtensionRegex, VoidCatHost } from "Const"; import Textarea from "Element/Textarea"; import Event, { default as NEvent } from "Nostr/Event"; @@ -46,7 +46,7 @@ export function NoteCreator(props: NoteCreatorProps) { let ext = file.name.match(FileExtensionRegex); // extension tricks note parser to embed the content - let url = rx.file.meta?.url ?? `https://void.cat/d/${rx.file.id}${ext ? `.${ext[1]}` : ""}`; + let url = rx.file.meta?.url ?? `${VoidCatHost}/d/${rx.file.id}${ext ? `.${ext[1]}` : ""}`; setNote(n => `${n}\n${url}`); } else if (rx?.errorMessage) { diff --git a/src/Feed/VoidUpload.ts b/src/Feed/VoidUpload.ts index 8bb2ae4be..53c4aeb0e 100644 --- a/src/Feed/VoidUpload.ts +++ b/src/Feed/VoidUpload.ts @@ -1,4 +1,5 @@ import * as secp from "@noble/secp256k1"; +import { VoidCatHost } from "Const"; /** * Upload file to void.cat @@ -8,7 +9,7 @@ export default async function VoidUpload(file: File | Blob, filename: string) { const buf = await file.arrayBuffer(); const digest = await crypto.subtle.digest("SHA-256", buf); - let req = await fetch(`https://void.cat/upload`, { + let req = await fetch(`${VoidCatHost}/upload`, { mode: "cors", method: "POST", body: buf, @@ -17,7 +18,8 @@ export default async function VoidUpload(file: File | Blob, filename: string) { "V-Content-Type": file.type, "V-Filename": filename, "V-Full-Digest": secp.utils.bytesToHex(new Uint8Array(digest)), - "V-Description": "Upload from https://snort.social" + "V-Description": "Upload from https://snort.social", + "V-Strip-Metadata": "true" } }); diff --git a/src/Pages/settings/Profile.tsx b/src/Pages/settings/Profile.tsx index 482340dac..f69695a30 100644 --- a/src/Pages/settings/Profile.tsx +++ b/src/Pages/settings/Profile.tsx @@ -15,6 +15,7 @@ import { hexToBech32, openFile } from "Util"; import Copy from "Element/Copy"; import { RootState } from "State/Store"; import { HexKey } from "Nostr"; +import { VoidCatHost } from "Const"; export default function ProfileSettings() { const navigate = useNavigate(); @@ -86,14 +87,14 @@ export default function ProfileSettings() { async function setNewAvatar() { const rsp = await uploadFile(); if (rsp) { - setPicture(rsp.meta?.url ?? `https://void.cat/d/${rsp.id}`); + setPicture(rsp.meta?.url ?? `${VoidCatHost}d/${rsp.id}`); } } async function setNewBanner() { const rsp = await uploadFile(); if (rsp) { - setBanner(rsp.meta?.url ?? `https://void.cat/d/${rsp.id}`); + setBanner(rsp.meta?.url ?? `${VoidCatHost}/d/${rsp.id}`); } }