Add commands for setting relay lists

This commit is contained in:
Jon Staab
2026-01-16 16:10:02 -08:00
parent e77c4d4b3d
commit 414854a392
+26
View File
@@ -11,6 +11,7 @@ import {
makeHttpAuth,
getListTags,
getRelayTags,
getRelayTagValues,
makeList,
makeRoomCreateEvent,
makeRoomDeleteEvent,
@@ -23,6 +24,7 @@ import {
createProfile,
editProfile,
RelayMode,
makeEvent,
MESSAGING_RELAYS,
BLOCKED_RELAYS,
FOLLOWS,
@@ -86,6 +88,16 @@ export const addRelay = async (url: string, mode: RelayMode) => {
return publishThunk({event, relays})
}
export const setRelays = async (tags: string[][]) => {
const router = Router.get()
const event = makeEvent(RELAYS, {tags})
const relays = router
.merge([router.Index(), router.FromRelays(getRelayTagValues(tags))])
.getUrls()
return publishThunk({event, relays})
}
// NIP 17
export const removeMessagingRelay = async (url: string) => {
@@ -108,6 +120,13 @@ export const addMessagingRelay = async (url: string) => {
return publishThunk({event, relays})
}
export const setMessagingRelays = async (urls: string[]) => {
const event = makeEvent(MESSAGING_RELAYS, {tags: urls.map(url => ["relay", url])})
const relays = Router.get().FromUser().getUrls()
return publishThunk({event, relays})
}
// NIP 51
export const removeBlockedRelay = async (url: string) => {
@@ -130,6 +149,13 @@ export const addBlockedRelay = async (url: string) => {
return publishThunk({event, relays})
}
export const setBlockedRelays = async (urls: string[]) => {
const event = makeEvent(BLOCKED_RELAYS, {tags: urls.map(url => ["relay", url])})
const relays = Router.get().FromUser().getUrls()
return publishThunk({event, relays})
}
// NIP 01
export const setProfile = (profile: Profile) => {