mirror of
git://jb55.com/damus
synced 2024-09-16 02:03:45 +00:00
relays: Publish kind 10_002
Closes: https://github.com/damus-io/damus/pull/1783 Reviewed-by: William Casarin <jb55@jb55.com> Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
parent
9e4f0122f5
commit
7a5aef94a8
@ -217,6 +217,20 @@ func add_relay(ev: NostrEvent, keypair: FullKeypair, current_relays: [RelayDescr
|
|||||||
return NostrEvent(content: content, keypair: keypair.to_keypair(), kind: 3, tags: ev.tags.strings())
|
return NostrEvent(content: content, keypair: keypair.to_keypair(), kind: 3, tags: ev.tags.strings())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func make_relay_metadata(relays: [RelayDescriptor], keypair: FullKeypair) -> NostrEvent? {
|
||||||
|
let tags = relays.compactMap { r -> [String]? in
|
||||||
|
var tag = ["r", r.url.id]
|
||||||
|
if (r.info.read ?? true) != (r.info.write ?? true) {
|
||||||
|
tag += r.info.read == true ? ["read"] : ["write"]
|
||||||
|
}
|
||||||
|
if ((r.info.read ?? true) || (r.info.write ?? true)) && r.variant == .regular {
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return NostrEvent(content: "", keypair: keypair.to_keypair(), kind: 10_002, tags: tags)
|
||||||
|
}
|
||||||
|
|
||||||
func ensure_relay_info(relays: [RelayDescriptor], content: String) -> [RelayURL: RelayInfo] {
|
func ensure_relay_info(relays: [RelayDescriptor], content: String) -> [RelayURL: RelayInfo] {
|
||||||
return decode_json_relays(content) ?? make_contact_relays(relays)
|
return decode_json_relays(content) ?? make_contact_relays(relays)
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,9 @@ struct AddRelayView: View {
|
|||||||
|
|
||||||
state.pool.send(.event(new_ev))
|
state.pool.send(.event(new_ev))
|
||||||
|
|
||||||
|
if let relay_metadata = make_relay_metadata(relays: state.pool.our_descriptors, keypair: keypair) {
|
||||||
|
state.postbox.send(relay_metadata)
|
||||||
|
}
|
||||||
new_relay = ""
|
new_relay = ""
|
||||||
|
|
||||||
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
|
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
|
||||||
|
@ -124,6 +124,10 @@ struct RecommendedRelayView: View {
|
|||||||
}
|
}
|
||||||
process_contact_event(state: damus, ev: ev_after_add)
|
process_contact_event(state: damus, ev: ev_after_add)
|
||||||
damus.postbox.send(ev_after_add)
|
damus.postbox.send(ev_after_add)
|
||||||
|
|
||||||
|
if let relay_metadata = make_relay_metadata(relays: damus.pool.our_descriptors, keypair: keypair) {
|
||||||
|
damus.postbox.send(relay_metadata)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,10 @@ struct RelayDetailView: View {
|
|||||||
|
|
||||||
process_contact_event(state: state, ev: new_ev)
|
process_contact_event(state: state, ev: new_ev)
|
||||||
state.postbox.send(new_ev)
|
state.postbox.send(new_ev)
|
||||||
|
|
||||||
|
if let relay_metadata = make_relay_metadata(relays: state.pool.our_descriptors, keypair: keypair) {
|
||||||
|
state.postbox.send(relay_metadata)
|
||||||
|
}
|
||||||
dismiss()
|
dismiss()
|
||||||
}) {
|
}) {
|
||||||
Text("Disconnect From Relay", comment: "Button to disconnect from the relay.")
|
Text("Disconnect From Relay", comment: "Button to disconnect from the relay.")
|
||||||
@ -78,6 +82,10 @@ struct RelayDetailView: View {
|
|||||||
}
|
}
|
||||||
process_contact_event(state: state, ev: ev_after_add)
|
process_contact_event(state: state, ev: ev_after_add)
|
||||||
state.postbox.send(ev_after_add)
|
state.postbox.send(ev_after_add)
|
||||||
|
|
||||||
|
if let relay_metadata = make_relay_metadata(relays: state.pool.our_descriptors, keypair: keypair) {
|
||||||
|
state.postbox.send(relay_metadata)
|
||||||
|
}
|
||||||
dismiss()
|
dismiss()
|
||||||
}) {
|
}) {
|
||||||
Text("Connect To Relay", comment: "Button to connect to the relay.")
|
Text("Connect To Relay", comment: "Button to connect to the relay.")
|
||||||
|
@ -102,6 +102,10 @@ struct RelayView: View {
|
|||||||
|
|
||||||
process_contact_event(state: state, ev: new_ev)
|
process_contact_event(state: state, ev: new_ev)
|
||||||
state.postbox.send(new_ev)
|
state.postbox.send(new_ev)
|
||||||
|
|
||||||
|
if let relay_metadata = make_relay_metadata(relays: state.pool.our_descriptors, keypair: keypair) {
|
||||||
|
state.postbox.send(relay_metadata)
|
||||||
|
}
|
||||||
}) {
|
}) {
|
||||||
if showText {
|
if showText {
|
||||||
Text(NSLocalizedString("Disconnect", comment: "Button to disconnect from a relay server."))
|
Text(NSLocalizedString("Disconnect", comment: "Button to disconnect from a relay server."))
|
||||||
|
Loading…
Reference in New Issue
Block a user