From 50329b9e4e20204f12db5fefcaa66bceaf3cc792 Mon Sep 17 00:00:00 2001 From: zmeyer44 Date: Wed, 18 Oct 2023 14:14:17 -0400 Subject: [PATCH] maybe working? --- .../[npub]/_components/Subscriptions.tsx | 23 ++++ app/(app)/(profile)/[npub]/page.tsx | 8 +- app/(app)/list/[naddr]/page.tsx | 3 +- bun.lockb | Bin 332809 -> 333166 bytes components/KindCard/3745.tsx | 119 ++++++++++++++++-- components/KindCard/components/Container.tsx | 4 +- components/Modals/ShortTextNote.tsx | 2 +- containers/Subscriptions/index.tsx | 61 +++++++++ lib/actions/create.ts | 19 ++- lib/actions/ephemeral.ts | 2 +- lib/nostr/index.ts | 9 +- package.json | 1 + 12 files changed, 225 insertions(+), 26 deletions(-) create mode 100644 app/(app)/(profile)/[npub]/_components/Subscriptions.tsx create mode 100644 containers/Subscriptions/index.tsx diff --git a/app/(app)/(profile)/[npub]/_components/Subscriptions.tsx b/app/(app)/(profile)/[npub]/_components/Subscriptions.tsx new file mode 100644 index 0000000..f47af5b --- /dev/null +++ b/app/(app)/(profile)/[npub]/_components/Subscriptions.tsx @@ -0,0 +1,23 @@ +import Subscriptions from "@/containers/Subscriptions"; +import Spinner from "@/components/spinner"; +import Link from "next/link"; +import { NDKEvent } from "@nostr-dev-kit/ndk"; +import { ReactElement } from "react"; +export default function ProfileSubscriptions({ pubkey }: { pubkey: string }) { + return ( +
+ ( +
+ +

+ Fetching Subscriptions... +

+
+ )} + /> +
+ ); +} diff --git a/app/(app)/(profile)/[npub]/page.tsx b/app/(app)/(profile)/[npub]/page.tsx index f1288fc..2ac0670 100644 --- a/app/(app)/(profile)/[npub]/page.tsx +++ b/app/(app)/(profile)/[npub]/page.tsx @@ -8,6 +8,7 @@ import Tabs from "@/components/Tabs"; import useProfile from "@/lib/hooks/useProfile"; import { getTwoLetters, truncateText } from "@/lib/utils"; import ProfileFeed from "./_components/Feed"; +import Subscriptions from "./_components/Subscriptions"; import { nip19 } from "nostr-tools"; export default function ProfilePage({ @@ -114,7 +115,7 @@ export default function ProfilePage({
-
+
{demo.map((e) => ( ))} @@ -126,10 +127,6 @@ export default function ProfilePage({ name: "feed", label: "Feed", }, - { - name: "media", - label: "Media", - }, { name: "subscriptions", label: "Subscriptions", @@ -140,6 +137,7 @@ export default function ProfilePage({ />
{activeTab === "feed" ? : ""} + {activeTab === "subscriptions" ? : ""}
); diff --git a/app/(app)/list/[naddr]/page.tsx b/app/(app)/list/[naddr]/page.tsx index 43d6259..9c7d99b 100644 --- a/app/(app)/list/[naddr]/page.tsx +++ b/app/(app)/list/[naddr]/page.tsx @@ -46,7 +46,8 @@ export default function ListPage({ ); } const noteIds = getTagsValues("e", event.tags).filter(Boolean); - console.log("notes", event.tags); + console.log("notes", noteIds); + console.log("tags", event.tags); return (
diff --git a/bun.lockb b/bun.lockb index bf5558d7a104ab73e9406bb0aa71ddde3c2220bc..0ba45c634a23a73cd7287d52369cb809a7d797de 100755 GIT binary patch delta 60872 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 XMC#Y8&wp5iQohpENWHJuRK4|oYUtb+ delta 60543 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 + const { ndk } = useNDK(); + useEffect(() => { + if (ndk && !fetchingEvent && !decryptedEvent) { + void handleFetchEvent(); + } + }, [ndk]); + + async function handleFetchEvent() { + setFetchingEvent(true); + try { + const directMessageEvent = await ndk!.fetchEvent({ + kinds: [4], + authors: [pubkey], + ["#e"]: [id], + }); + if (directMessageEvent) { + await directMessageEvent.decrypt( + new NDKUser({ hexpubkey: pubkey }), + ndk?.signer, + ); + const passphrase = directMessageEvent.content; + if (!passphrase) { + setError("Unable to parse event"); + return; + } + const decrypedData = await decryptMessage(content, passphrase); + console.log("Decrypted", decrypedData); + const hiddenEvent = EventSchema.safeParse( + JSON.parse(decrypedData ?? ""), + ); + if (hiddenEvent.success) { + setDecryptedEvent(hiddenEvent.data); + } else { + setError("Unable to parse event"); + } + } + } catch (err) { + setError("Unable to parse event"); + } finally { + setFetchingEvent(false); + } + } + if (decryptedEvent) { + return ; + } return ( - - The start of the Nostr revolution - - - This is the summary of this artilce. Let's hope that it is a good - article and that it will end up being worth reading. I don't want to - waste my time on some random other stuff. - +
+
+ + The start of the Nostr revolution + + + Here is some secret text. If you are reading this, that means you've + tried some sneaky css tricks to reveal what was hidden 🫣. + Unfourtunatly, CSS won't be able to help you here. In fact, I can't + even reveal this if I wanted to. Only the correct private key can + reveal it. + +
+
+ {fetchingEvent ? ( +
+ +
+ ) : ( + +
+
+
+
+ + Content locked + +

Subscribe to reveal

+
+
+ +
+
+ + )} +
+
); } diff --git a/components/KindCard/components/Container.tsx b/components/KindCard/components/Container.tsx index 7d9ad1b..713896a 100644 --- a/components/KindCard/components/Container.tsx +++ b/components/KindCard/components/Container.tsx @@ -60,10 +60,12 @@ export default function Container({ {children}
- {!!contentTags?.length && ( + {!!contentTags?.length ? (
+ ) : ( +
)}
diff --git a/components/Modals/ShortTextNote.tsx b/components/Modals/ShortTextNote.tsx index 04e75ad..d225588 100644 --- a/components/Modals/ShortTextNote.tsx +++ b/components/Modals/ShortTextNote.tsx @@ -77,7 +77,7 @@ export default function ShortTextNoteModal() { }); } } - + console.log("about to create private event with ", listSigner); const result = await createEventHandler( ndk, { diff --git a/containers/Subscriptions/index.tsx b/containers/Subscriptions/index.tsx new file mode 100644 index 0000000..555ea88 --- /dev/null +++ b/containers/Subscriptions/index.tsx @@ -0,0 +1,61 @@ +"use client"; +import KindCard from "@/components/KindCard"; +import { cn } from "@/lib/utils"; +import Link from "next/link"; +import Spinner from "@/components/spinner"; +import { Event } from "nostr-tools"; +import useEvents from "@/lib/hooks/useEvents"; +import NDK, { NDKEvent, type NDKFilter } from "@nostr-dev-kit/ndk"; +import ListCard from "@/components/ListCard"; + +type SubscriptionsProps = { + pubkey: string; + link?: boolean; + className?: string; + loader?: () => JSX.Element; + empty?: () => JSX.Element; +}; + +export default function Subscriptions({ + pubkey, + link = false, + className, + loader: Loader, + empty: Empty, +}: SubscriptionsProps) { + const { events, isLoading } = useEvents({ + filter: { + kinds: [30001], + ["#p"]: [pubkey], + }, + }); + if (isLoading) { + if (Loader) { + return ; + } + return ; + } + if (Empty && events.length === 0) { + return ; + } + if (link) { + return ( + <> + {events.map((e) => { + return ( + + ; + + ); + })} + + ); + } + return ( + <> + {events.map((e) => { + return ; + })} + + ); +} diff --git a/lib/actions/create.ts b/lib/actions/create.ts index 4e0bcfd..83f6dec 100644 --- a/lib/actions/create.ts +++ b/lib/actions/create.ts @@ -58,7 +58,7 @@ export async function createEventHandler( } const eventToPublish = new NDKEvent(ndk, { ...event, - tags: [...event.tags, ["client", "ordstr"]], + tags: [...event.tags, ["client", "flockstr"]], pubkey, created_at: unixTimeNowInSeconds(), } as NostrEvent); @@ -68,20 +68,27 @@ export async function createEventHandler( let publishedEvent: NDKEvent | null = null; // Check if is private event if (isPrivate) { + console.log("isPrivate"); const rawEventString = JSON.stringify(eventToPublish.rawEvent()); + console.log("rawEventString", rawEventString); const passphrase = generateRandomString(); + console.log("passphrase", passphrase); const encryptedRawEventString = await encryptMessage( rawEventString, passphrase, ); + console.log("encryptedRawEventString", encryptedRawEventString); + console.log("delegateSigner", delegateSigner); const signer = delegateSigner ?? ndk.signer!; const user = await signer.user(); + console.log("signer user", user); + const newEvent = new NDKEvent(ndk, { content: encryptedRawEventString, kind: 3745, tags: [ ["kind", event.kind.toString()], - ["client", "ordstr"], + ["client", "flockstr"], ], pubkey: user.pubkey, } as NostrEvent); @@ -98,7 +105,7 @@ export async function createEventHandler( tags: [ ["p", subscriber], ["e", newEvent.id], - ["client", "ordstr"], + ["client", "flockstr"], ], pubkey: user.pubkey, } as NostrEvent); @@ -141,7 +148,7 @@ export async function createEncryptedEventOnPrivateList( } const eventToPublish = new NDKEvent(ndk, { ...event, - tags: [...event.tags, ["client", "ordstr"]], + tags: [...event.tags, ["client", "flockstr"]], pubkey, created_at: unixTimeNowInSeconds(), } as NostrEvent); @@ -160,7 +167,7 @@ export async function createEncryptedEventOnPrivateList( kind: 3745, tags: [ ["kind", event.kind.toString()], - ["client", "ordstr"], + ["client", "flockstr"], ], pubkey: user.pubkey, } as NostrEvent); @@ -186,7 +193,7 @@ export async function createEncryptedEventOnPrivateList( tags: [ ["p", subscriber], ["e", newEvent.id], - ["client", "ordstr"], + ["client", "flockstr"], ], pubkey: user.hexpubkey, } as NostrEvent); diff --git a/lib/actions/ephemeral.ts b/lib/actions/ephemeral.ts index e3797a1..70d8719 100644 --- a/lib/actions/ephemeral.ts +++ b/lib/actions/ephemeral.ts @@ -103,7 +103,7 @@ async function generateTags(mainSigner: NDKSigner, opts: ISaveOpts = {}) { const mainUser = await mainSigner.user(); const tags = [ ["p", mainUser.hexpubkey], - ["client", "ordstr"], + ["client", "flockstr"], ]; if (opts.associatedEvent) { diff --git a/lib/nostr/index.ts b/lib/nostr/index.ts index 451dccf..e94792a 100644 --- a/lib/nostr/index.ts +++ b/lib/nostr/index.ts @@ -119,6 +119,7 @@ export function encryptMessage(message: string, password: string) { } // Function to decrypt a hashed message using a passphrase export function decryptMessage(encryptedMessage: string, password: string) { + console.log("Attemping decrypto", encryptedMessage, "with", password); try { const buffer = create32ByteBuffer(password); // Extract IV from the received message @@ -130,11 +131,15 @@ export function decryptMessage(encryptedMessage: string, password: string) { const iv = Buffer.from(ivBase64, "base64"); const encryptedText = Buffer.from(encryptedMessage, "base64"); - + console.log("at bugger"); const decipher = crypto.createDecipheriv("aes-256-cbc", buffer, iv); + console.log("at decipher"); const decrypted = decipher.update(encryptedText); - return Buffer.concat([decrypted, decipher.final()]).toString(); + + const toReturn = Buffer.concat([decrypted, decipher.final()]).toString(); + console.log("toReturn", toReturn); + return toReturn; } catch (e) { console.error(e); } diff --git a/package.json b/package.json index 5165ca3..9564a95 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "cmdk": "^0.2.0", + "crypto": "^1.0.1", "crypto-js": "^4.1.1", "dayjs": "^1.11.10", "focus-trap-react": "^10.2.3",