forked from coracle/flotilla
Move some stuff to welshman, broadcast profile updates
This commit is contained in:
@@ -12,10 +12,6 @@ import {
|
|||||||
FOLLOWS,
|
FOLLOWS,
|
||||||
REACTION,
|
REACTION,
|
||||||
AUTH_JOIN,
|
AUTH_JOIN,
|
||||||
GROUP_JOIN,
|
|
||||||
GROUP_LEAVE,
|
|
||||||
GROUP_CREATE,
|
|
||||||
GROUP_EDIT_META,
|
|
||||||
GROUPS,
|
GROUPS,
|
||||||
COMMENT,
|
COMMENT,
|
||||||
isSignedEvent,
|
isSignedEvent,
|
||||||
@@ -55,7 +51,6 @@ import {
|
|||||||
getThunkError,
|
getThunkError,
|
||||||
} from "@welshman/app"
|
} from "@welshman/app"
|
||||||
import {
|
import {
|
||||||
tagRoom,
|
|
||||||
PROTECTED,
|
PROTECTED,
|
||||||
userMembership,
|
userMembership,
|
||||||
INDEXER_RELAYS,
|
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
|
// List updates
|
||||||
|
|
||||||
export const addSpaceMembership = async (url: string) => {
|
export const addSpaceMembership = async (url: string) => {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
isPublishedProfile,
|
isPublishedProfile,
|
||||||
uniqTags,
|
uniqTags,
|
||||||
} from "@welshman/util"
|
} from "@welshman/util"
|
||||||
import {Router} from "@welshman/router"
|
import {Router, addMaximalFallbacks} from "@welshman/router"
|
||||||
import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
|
import {pubkey, profilesByPubkey, publishThunk} from "@welshman/app"
|
||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
|
import ProfileEditForm from "@app/components/ProfileEditForm.svelte"
|
||||||
@@ -28,7 +28,11 @@
|
|||||||
const relays = [...getMembershipUrls($userMembership)]
|
const relays = [...getMembershipUrls($userMembership)]
|
||||||
|
|
||||||
if (shouldBroadcast) {
|
if (shouldBroadcast) {
|
||||||
relays.push(...Router.get().FromUser().getUrls())
|
const router = Router.get()
|
||||||
|
|
||||||
|
relays.push(
|
||||||
|
...router.merge([router.FromUser(), router.Index()]).policy(addMaximalFallbacks).getUrls(),
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
template.tags = uniqTags([...template.tags, PROTECTED])
|
template.tags = uniqTags([...template.tags, PROTECTED])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import {goto} from "$app/navigation"
|
import {goto} from "$app/navigation"
|
||||||
import {randomId} from "@welshman/lib"
|
import {randomId} from "@welshman/lib"
|
||||||
import {displayRelayUrl} from "@welshman/util"
|
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 {preventDefault} from "@lib/html"
|
||||||
import Field from "@lib/components/Field.svelte"
|
import Field from "@lib/components/Field.svelte"
|
||||||
import Spinner from "@lib/components/Spinner.svelte"
|
import Spinner from "@lib/components/Spinner.svelte"
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
import ModalHeader from "@lib/components/ModalHeader.svelte"
|
||||||
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
import ModalFooter from "@lib/components/ModalFooter.svelte"
|
||||||
import {hasNip29, loadChannel} from "@app/state"
|
import {hasNip29, loadChannel} from "@app/state"
|
||||||
import {createRoom, editRoom, joinRoom} from "@app/commands"
|
|
||||||
import {makeSpacePath} from "@app/routes"
|
import {makeSpacePath} from "@app/routes"
|
||||||
import {pushToast} from "@app/toast"
|
import {pushToast} from "@app/toast"
|
||||||
|
|
||||||
|
|||||||
@@ -171,8 +171,6 @@ export const entityLink = (entity: string) => `https://coracle.social/${entity}`
|
|||||||
export const pubkeyLink = (pubkey: string, relays = Router.get().FromPubkeys([pubkey]).getUrls()) =>
|
export const pubkeyLink = (pubkey: string, relays = Router.get().FromPubkeys([pubkey]).getUrls()) =>
|
||||||
entityLink(nip19.nprofileEncode({pubkey, relays}))
|
entityLink(nip19.nprofileEncode({pubkey, relays}))
|
||||||
|
|
||||||
export const tagRoom = (room: string, url: string) => [ROOM, room]
|
|
||||||
|
|
||||||
export const getDefaultPubkeys = () => {
|
export const getDefaultPubkeys = () => {
|
||||||
const appPubkeys = DEFAULT_PUBKEYS.split(",")
|
const appPubkeys = DEFAULT_PUBKEYS.split(",")
|
||||||
const userPubkeys = shuffle(getPubkeyTagValues(getListTags(get(userFollows))))
|
const userPubkeys = shuffle(getPubkeyTagValues(getListTags(get(userFollows))))
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
GROUP_ADD_USER,
|
GROUP_ADD_USER,
|
||||||
GROUP_REMOVE_USER,
|
GROUP_REMOVE_USER,
|
||||||
} from "@welshman/util"
|
} 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 {slide, fade, fly} from "@lib/transition"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
@@ -32,20 +32,13 @@
|
|||||||
userRoomsByUrl,
|
userRoomsByUrl,
|
||||||
userSettingValues,
|
userSettingValues,
|
||||||
decodeRelay,
|
decodeRelay,
|
||||||
tagRoom,
|
|
||||||
getEventsForUrl,
|
getEventsForUrl,
|
||||||
deriveUserMembershipStatus,
|
deriveUserMembershipStatus,
|
||||||
deriveChannel,
|
deriveChannel,
|
||||||
MembershipStatus,
|
MembershipStatus,
|
||||||
} from "@app/state"
|
} from "@app/state"
|
||||||
import {setChecked, checked} from "@app/notifications"
|
import {setChecked, checked} from "@app/notifications"
|
||||||
import {
|
import {addRoomMembership, removeRoomMembership, prependParent} from "@app/commands"
|
||||||
joinRoom,
|
|
||||||
leaveRoom,
|
|
||||||
addRoomMembership,
|
|
||||||
removeRoomMembership,
|
|
||||||
prependParent,
|
|
||||||
} from "@app/commands"
|
|
||||||
import {PROTECTED} from "@app/state"
|
import {PROTECTED} from "@app/state"
|
||||||
import {makeFeed} from "@app/requests"
|
import {makeFeed} from "@app/requests"
|
||||||
import {popKey} from "@app/implicit"
|
import {popKey} from "@app/implicit"
|
||||||
@@ -108,7 +101,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const onSubmit = ({content, tags}: EventContent) => {
|
const onSubmit = ({content, tags}: EventContent) => {
|
||||||
tags.push(tagRoom(room, url))
|
tags.push(["h", room])
|
||||||
tags.push(PROTECTED)
|
tags.push(PROTECTED)
|
||||||
|
|
||||||
let template = {content, tags}
|
let template = {content, tags}
|
||||||
|
|||||||
Reference in New Issue
Block a user