From 927d04b74ef34effa41ba95ba9e1cbfc2af0c4d2 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Mon, 20 Feb 2023 09:08:37 -0600 Subject: [PATCH] Add follows feed, limit how many relays we publish replies to. --- src/agent/relays.ts | 11 ++++++----- src/app/index.ts | 2 +- src/partials/SideNav.svelte | 2 +- src/partials/Tabs.svelte | 2 +- src/routes/NotFound.svelte | 2 +- src/routes/Notes.svelte | 7 +++++-- src/views/ConnectUser.svelte | 4 ++-- src/views/notes/Follows.svelte | 12 ++++++++++++ 8 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 src/views/notes/Follows.svelte diff --git a/src/agent/relays.ts b/src/agent/relays.ts index b831bc8f..43e1c536 100644 --- a/src/agent/relays.ts +++ b/src/agent/relays.ts @@ -107,15 +107,16 @@ export const getRelayForEventHint = event => export const getRelayForPersonHint = (pubkey, event) => first(getPubkeyWriteRelays(pubkey)) || getRelayForEventHint(event) -// If we're replying or reacting to an event, we want the author to know, -// as well as anyone else who is tagged in the original event or the reply. -// Get everyone's read relays. We also want to advertise our content to -// our followers, so write to our write relays as well. +// If we're replying or reacting to an event, we want the author to know, as well as +// anyone else who is tagged in the original event or the reply. Get everyone's read +// relays. Limit how many per pubkey we publish to though. We also want to advertise +// our content to our followers, so write to our write relays as well. export const getEventPublishRelays = event => { const tags = Tags.from(event) const pubkeys = tags.type("p").values().all().concat(event.pubkey) + const relayChunks = pubkeys.map(pubkey => getPubkeyReadRelays(pubkey).slice(0, 3)) - return getAllPubkeyReadRelays(pubkeys).concat(getUserWriteRelays()) + return aggregateScores(relayChunks).concat(getUserWriteRelays()) } diff --git a/src/app/index.ts b/src/app/index.ts index 8960c3cf..caa6a23f 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -37,7 +37,7 @@ export const login = ({privkey, pubkey}: {privkey?: string, pubkey?: string}) => export const signup = privkey => { keys.setPrivateKey(privkey) - navigate('/notes/network') + navigate('/notes/follows') } export const renderNote = (note, {showEntire = false}) => { diff --git a/src/partials/SideNav.svelte b/src/partials/SideNav.svelte index 5e502cc2..fb0ef7a0 100644 --- a/src/partials/SideNav.svelte +++ b/src/partials/SideNav.svelte @@ -40,7 +40,7 @@
  • - + Notes
  • diff --git a/src/partials/Tabs.svelte b/src/partials/Tabs.svelte index b6006e28..d69961e8 100644 --- a/src/partials/Tabs.svelte +++ b/src/partials/Tabs.svelte @@ -7,7 +7,7 @@ export let setActiveTab -
    +
    {#each tabs as tab}