Compare commits

...

5 Commits

Author SHA1 Message Date
nayan9617 dee017b12b merge upstream 2026-04-29 00:55:43 +00:00
nayan9617 72b55c6bd1 merge upstream 2026-04-24 13:13:02 +00:00
nayan9617 20018e1788 merge upstream 2026-04-17 20:30:31 +00:00
nayan9617 9af6797c0b updated changes based on review 2026-04-17 18:23:50 +05:30
nayan9617 df051d3c94 Use relay member lists directly 2026-04-17 18:22:13 +05:30
5 changed files with 46 additions and 12 deletions
+1
View File
@@ -115,6 +115,7 @@
{#if $members === undefined}
<div class="card2 bg-base-200 p-4">
<span class="text-error">Member list not available from this space</span>
<span class="text-error">Member list not available from this space</span>
</div>
{:else if $members.length === 0}
<div class="card2 bg-base-200 p-4">
+2 -5
View File
@@ -154,11 +154,7 @@
</div>
{#if $notificationSettings.push && !$shouldNotify}
<Icon icon={BellOff} size={3} class="opacity-50" />
{/if}
</strong>
<Icon icon={AltArrowDown} />
</div>
<span class="text-xs text-primary">{displayRelayUrl(url)}</span>
View Members ({$members.length})
</Button>
{#if showMenu}
<Popover hideOnClick onClose={toggleMenu}>
@@ -182,6 +178,7 @@
<Icon icon={UserRounded} />
{#if $members === undefined}
View Members
View Members
{:else}
View Members ({$members.length})
{/if}
+2 -2
View File
@@ -32,7 +32,6 @@ import {
ROOMS,
COMMENT,
APP_DATA,
POLL_RESPONSE,
isSignedEvent,
makeEvent,
normalizeRelayUrl,
@@ -55,6 +54,7 @@ import {
createProfile,
ManagementMethod,
} from "@welshman/util"
import {PollResponse} from "nostr-tools/kinds"
import {Pool, AuthStatus, SocketStatus} from "@welshman/net"
import {Router} from "@welshman/router"
import {
@@ -389,7 +389,7 @@ export type PollResponseParams = {
}
export const makePollResponse = ({event, selectedIds}: PollResponseParams) =>
makeEvent(POLL_RESPONSE, {
makeEvent(PollResponse, {
content: "",
tags: [["e", event.id], ...selectedIds.map(selectedId => ["response", selectedId])],
})
+2 -2
View File
@@ -92,7 +92,6 @@ import {
THREAD,
CLASSIFIED,
WRAP,
POLL,
PROFILE,
ZAP_GOAL,
ZAP_REQUEST,
@@ -150,6 +149,7 @@ import {
displayProfileByPubkey,
getProfile,
} from "@welshman/app"
import {Poll} from "nostr-tools/kinds"
import {checkRelayHasLivekit} from "$lib/livekit"
import {readFeed} from "@lib/feeds"
@@ -327,7 +327,7 @@ if (ENABLE_ZAPS) {
REACTION_KINDS.push(ZAP_RESPONSE)
}
export const CONTENT_KINDS = [ZAP_GOAL, EVENT_TIME, THREAD, CLASSIFIED, POLL]
export const CONTENT_KINDS = [ZAP_GOAL, EVENT_TIME, THREAD, CLASSIFIED, Poll]
export const DM_KINDS = [DIRECT_MESSAGE, DIRECT_MESSAGE_FILE]
+39 -3
View File
@@ -1,10 +1,11 @@
import {page} from "$app/stores"
import type {Unsubscriber} from "svelte/store"
import {last, call, assoc, chunk, WEEK, ago} from "@welshman/lib"
import {last, call, assoc, chunk, WEEK, ago, ifLet} from "@welshman/lib"
import {merged} from "@welshman/store"
import {
getListTags,
getRelayTagValues,
getTagValue,
WRAP,
ROOM_META,
ROOM_DELETE,
@@ -19,10 +20,10 @@ import {
RELAY_ADD_MEMBER,
RELAY_REMOVE_MEMBER,
MESSAGE,
POLL_RESPONSE,
isSignedEvent,
unionFilters,
} from "@welshman/util"
import {PollResponse} from "nostr-tools/kinds"
import type {Filter, List, PublishedList, TrustedEvent} from "@welshman/util"
import {request, requestOne, Difference, DifferenceEvent} from "@welshman/net"
import {
@@ -269,7 +270,29 @@ const syncUserData = () => {
const syncSpace = (url: string) => {
const since = ago(WEEK)
const seen = new Set<string>()
const controller = new AbortController()
const pullRoomContent = (room: string) => {
if (!seen.has(room)) {
seen.add(room)
pullAndListen({
url,
signal: controller.signal,
filters: [
{kinds: [ROOM_META, ROOM_ADMINS, ROOM_MEMBERS], "#d": [room]},
{kinds: [MESSAGE, ...CONTENT_KINDS], since, "#h": [room]},
makeCommentFilter(CONTENT_KINDS, {since, "#h": [room]}),
{
kinds: [ROOM_DELETE, ROOM_JOIN, ROOM_LEAVE],
"#h": [room],
},
{kinds: [PollResponse], since},
],
})
}
}
const relayKinds = [RELAY_MEMBERS]
const roomMetaKinds = [ROOM_META, ROOM_ADMINS, ROOM_MEMBERS, LIVEKIT_PARTICIPANTS]
const roomDeleteKinds = [ROOM_DELETE, ROOM_JOIN, ROOM_LEAVE]
@@ -280,10 +303,23 @@ const syncSpace = (url: string) => {
filters: [
{kinds: [...relayKinds, ...roomMetaKinds, ...roomDeleteKinds, ...CONTENT_KINDS, MESSAGE]},
makeCommentFilter(CONTENT_KINDS, {since}),
{kinds: [...REACTION_KINDS, POLL_RESPONSE], since},
{kinds: [...REACTION_KINDS, PollResponse], since},
],
onEvent: event => {
if (event.kind === ROOM_META) {
ifLet(getTagValue("d", event.tags), pullRoomContent)
}
},
})
listen({
url,
signal: controller.signal,
filters: [{kinds: REACTION_KINDS}, {kinds: [PollResponse]}],
})
return () => controller.abort()
return () => controller.abort()
}