Move some stuff to welshman, broadcast profile updates

This commit is contained in:
Jon Staab
2025-06-13 15:17:20 -07:00
parent 528917b90e
commit dac9ef8e4e
5 changed files with 10 additions and 49 deletions

View File

@@ -12,10 +12,6 @@ import {
FOLLOWS,
REACTION,
AUTH_JOIN,
GROUP_JOIN,
GROUP_LEAVE,
GROUP_CREATE,
GROUP_EDIT_META,
GROUPS,
COMMENT,
isSignedEvent,
@@ -55,7 +51,6 @@ import {
getThunkError,
} from "@welshman/app"
import {
tagRoom,
PROTECTED,
userMembership,
INDEXER_RELAYS,
@@ -126,34 +121,6 @@ export const broadcastUserData = async (relays: string[]) => {
}
}
// NIP 29 stuff
export const createRoom = (url: string, room: string) => {
const event = makeEvent(GROUP_CREATE, {tags: [tagRoom(room, url)]})
return publishThunk({event, relays: [url]})
}
export const editRoom = (url: string, room: string, meta: Record<string, string>) => {
const event = makeEvent(GROUP_EDIT_META, {
tags: [tagRoom(room, url), ...Object.entries(meta)],
})
return publishThunk({event, relays: [url]})
}
export const joinRoom = (url: string, room: string) => {
const event = makeEvent(GROUP_JOIN, {tags: [tagRoom(room, url)]})
return publishThunk({event, relays: [url]})
}
export const leaveRoom = (url: string, room: string) => {
const event = makeEvent(GROUP_LEAVE, {tags: [tagRoom(room, url)]})
return publishThunk({event, relays: [url]})
}
// List updates
export const addSpaceMembership = async (url: string) => {

View File

@@ -9,7 +9,7 @@
isPublishedProfile,
uniqTags,
} from "@welshman/util"
import {Router} from "@welshman/router"
import {Router, addMaximalFallbacks} from "@welshman/router"
import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
import Button from "@lib/components/Button.svelte"
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
@@ -28,7 +28,11 @@
const relays = [...getMembershipUrls($userMembership)]
if (shouldBroadcast) {
relays.push(...Router.get().FromUser().getUrls())
const router = Router.get()
relays.push(
...router.merge([router.FromUser(), router.Index()]).policy(addMaximalFallbacks).getUrls(),
)
} else {
template.tags = uniqTags([...template.tags, PROTECTED])
}

View File

@@ -2,7 +2,7 @@
import {goto} from "$app/navigation"
import {randomId} from "@welshman/lib"
import {displayRelayUrl} from "@welshman/util"
import {deriveRelay, getThunkError} from "@welshman/app"
import {deriveRelay, getThunkError, createRoom, editRoom, joinRoom} from "@welshman/app"
import {preventDefault} from "@lib/html"
import Field from "@lib/components/Field.svelte"
import Spinner from "@lib/components/Spinner.svelte"
@@ -11,7 +11,6 @@
import ModalHeader from "@lib/components/ModalHeader.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import {hasNip29, loadChannel} from "@app/state"
import {createRoom, editRoom, joinRoom} from "@app/commands"
import {makeSpacePath} from "@app/routes"
import {pushToast} from "@app/toast"

View File

@@ -171,8 +171,6 @@ export const entityLink = (entity: string) => `https://coracle.social/${entity}`
export const pubkeyLink = (pubkey: string, relays = Router.get().FromPubkeys([pubkey]).getUrls()) =>
entityLink(nip19.nprofileEncode({pubkey, relays}))
export const tagRoom = (room: string, url: string) => [ROOM, room]
export const getDefaultPubkeys = () => {
const appPubkeys = DEFAULT_PUBKEYS.split(",")
const userPubkeys = shuffle(getPubkeyTagValues(getListTags(get(userFollows))))

View File

@@ -15,7 +15,7 @@
GROUP_ADD_USER,
GROUP_REMOVE_USER,
} from "@welshman/util"
import {pubkey, publishThunk, getThunkError} from "@welshman/app"
import {pubkey, publishThunk, getThunkError, joinRoom, leaveRoom} from "@welshman/app"
import {slide, fade, fly} from "@lib/transition"
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
@@ -32,20 +32,13 @@
userRoomsByUrl,
userSettingValues,
decodeRelay,
tagRoom,
getEventsForUrl,
deriveUserMembershipStatus,
deriveChannel,
MembershipStatus,
} from "@app/state"
import {setChecked, checked} from "@app/notifications"
import {
joinRoom,
leaveRoom,
addRoomMembership,
removeRoomMembership,
prependParent,
} from "@app/commands"
import {addRoomMembership, removeRoomMembership, prependParent} from "@app/commands"
import {PROTECTED} from "@app/state"
import {makeFeed} from "@app/requests"
import {popKey} from "@app/implicit"
@@ -108,7 +101,7 @@
}
const onSubmit = ({content, tags}: EventContent) => {
tags.push(tagRoom(room, url))
tags.push(["h", room])
tags.push(PROTECTED)
let template = {content, tags}