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, makeHttpAuth,
getListTags, getListTags,
getRelayTags, getRelayTags,
getRelayTagValues,
makeList, makeList,
makeRoomCreateEvent, makeRoomCreateEvent,
makeRoomDeleteEvent, makeRoomDeleteEvent,
@@ -23,6 +24,7 @@ import {
createProfile, createProfile,
editProfile, editProfile,
RelayMode, RelayMode,
makeEvent,
MESSAGING_RELAYS, MESSAGING_RELAYS,
BLOCKED_RELAYS, BLOCKED_RELAYS,
FOLLOWS, FOLLOWS,
@@ -86,6 +88,16 @@ export const addRelay = async (url: string, mode: RelayMode) => {
return publishThunk({event, relays}) 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 // NIP 17
export const removeMessagingRelay = async (url: string) => { export const removeMessagingRelay = async (url: string) => {
@@ -108,6 +120,13 @@ export const addMessagingRelay = async (url: string) => {
return publishThunk({event, relays}) 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 // NIP 51
export const removeBlockedRelay = async (url: string) => { export const removeBlockedRelay = async (url: string) => {
@@ -130,6 +149,13 @@ export const addBlockedRelay = async (url: string) => {
return publishThunk({event, relays}) 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 // NIP 01
export const setProfile = (profile: Profile) => { export const setProfile = (profile: Profile) => {