mirror of
https://github.com/coracle-social/coracle.git
synced 2024-09-19 11:43:35 +00:00
Add follows feed, limit how many relays we publish replies to.
This commit is contained in:
parent
8fd75bf26a
commit
927d04b74e
@ -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())
|
||||
}
|
||||
|
||||
|
||||
|
@ -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}) => {
|
||||
|
@ -40,7 +40,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="cursor-pointer">
|
||||
<a class="block px-4 py-2 hover:bg-accent transition-all" href="/notes/network">
|
||||
<a class="block px-4 py-2 hover:bg-accent transition-all" href="/notes/follows">
|
||||
<i class="fa-solid fa-tag mr-2" /> Notes
|
||||
</a>
|
||||
</li>
|
||||
|
@ -7,7 +7,7 @@
|
||||
export let setActiveTab
|
||||
</script>
|
||||
|
||||
<div class="border-b border-solid border-dark flex pt-2" in:fly={{y: 20}}>
|
||||
<div class="border-b border-solid border-dark flex pt-2 overflow-auto" in:fly={{y: 20}}>
|
||||
{#each tabs as tab}
|
||||
<button
|
||||
class="cursor-pointer hover:border-b border-solid border-medium px-8 py-4"
|
||||
|
@ -3,5 +3,5 @@
|
||||
import {navigate} from 'svelte-routing'
|
||||
import user from 'src/agent/user'
|
||||
|
||||
onMount(() => navigate(user.getProfile() ? '/notes/network' : '/login'))
|
||||
onMount(() => navigate(user.getProfile() ? '/notes/follows' : '/login'))
|
||||
</script>
|
||||
|
@ -4,6 +4,7 @@
|
||||
import Content from "src/partials/Content.svelte"
|
||||
import NewNoteButton from "src/partials/NewNoteButton.svelte"
|
||||
import Tabs from "src/partials/Tabs.svelte"
|
||||
import Follows from "src/views/notes/Follows.svelte"
|
||||
import Network from "src/views/notes/Network.svelte"
|
||||
import Popular from "src/views/notes/Popular.svelte"
|
||||
import user from 'src/agent/user'
|
||||
@ -21,8 +22,10 @@
|
||||
</Content>
|
||||
{/if}
|
||||
<div>
|
||||
<Tabs tabs={['network', 'popular']} {activeTab} {setActiveTab} />
|
||||
{#if activeTab === 'network'}
|
||||
<Tabs tabs={['follows', 'network', 'popular']} {activeTab} {setActiveTab} />
|
||||
{#if activeTab === 'follows'}
|
||||
<Follows />
|
||||
{:else if activeTab === 'network'}
|
||||
<Network />
|
||||
{:else}
|
||||
<Popular />
|
||||
|
@ -47,7 +47,7 @@
|
||||
sleep(3000),
|
||||
])
|
||||
|
||||
navigate('/notes/network')
|
||||
navigate('/notes/follows')
|
||||
} else {
|
||||
await sleep(1000)
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
}
|
||||
|
||||
const skip = () => {
|
||||
navigate('/notes/network')
|
||||
navigate('/notes/follows')
|
||||
}
|
||||
|
||||
searchSample()
|
||||
|
12
src/views/notes/Follows.svelte
Normal file
12
src/views/notes/Follows.svelte
Normal file
@ -0,0 +1,12 @@
|
||||
<script>
|
||||
import {shuffle} from 'src/util/misc'
|
||||
import Notes from "src/partials/Notes.svelte"
|
||||
import {getUserFollows} from 'src/agent/social'
|
||||
import {getAllPubkeyWriteRelays} from 'src/agent/relays'
|
||||
|
||||
const authors = shuffle(getUserFollows()).slice(0, 256)
|
||||
const relays = getAllPubkeyWriteRelays(authors)
|
||||
const filter = {kinds: [1, 7], authors}
|
||||
</script>
|
||||
|
||||
<Notes {relays} {filter} />
|
Loading…
Reference in New Issue
Block a user