Fix follows and relays getting out of sync on profile pages
Fixes: #216 Changelog-Fixed: Fixed follows and relays getting out of sync on profile pages
This commit is contained in:
@@ -61,7 +61,7 @@ class ProfileModel: ObservableObject, Equatable {
|
|||||||
profile_filter.authors = [pubkey]
|
profile_filter.authors = [pubkey]
|
||||||
|
|
||||||
text_filter.authors = [pubkey]
|
text_filter.authors = [pubkey]
|
||||||
text_filter.limit = 1000
|
text_filter.limit = 500
|
||||||
|
|
||||||
print("subscribing to profile \(pubkey) with sub_id \(sub_id)")
|
print("subscribing to profile \(pubkey) with sub_id \(sub_id)")
|
||||||
print_filters(relay_id: "profile", filters: [[text_filter], [profile_filter]])
|
print_filters(relay_id: "profile", filters: [[text_filter], [profile_filter]])
|
||||||
@@ -70,12 +70,18 @@ class ProfileModel: ObservableObject, Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func handle_profile_contact_event(_ ev: NostrEvent) {
|
func handle_profile_contact_event(_ ev: NostrEvent) {
|
||||||
|
process_contact_event(pool: damus.pool, contacts: damus.contacts, pubkey: damus.pubkey, ev: ev)
|
||||||
|
|
||||||
|
// only use new stuff
|
||||||
|
if let current_ev = self.contacts {
|
||||||
|
guard ev.created_at > current_ev.created_at else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.contacts = ev
|
self.contacts = ev
|
||||||
self.following = count_pubkeys(ev.tags)
|
self.following = count_pubkeys(ev.tags)
|
||||||
self.relays = decode_json_relays(ev.content)
|
self.relays = decode_json_relays(ev.content)
|
||||||
if damus.contacts.is_friend(ev.pubkey) {
|
|
||||||
self.damus.contacts.add_friend_contact(ev)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func add_event(_ ev: NostrEvent) {
|
func add_event(_ ev: NostrEvent) {
|
||||||
@@ -90,6 +96,8 @@ class ProfileModel: ObservableObject, Equatable {
|
|||||||
let _ = insert_uniq_sorted_event(events: &self.events, new_ev: ev, cmp: { $0.created_at > $1.created_at})
|
let _ = insert_uniq_sorted_event(events: &self.events, new_ev: ev, cmp: { $0.created_at > $1.created_at})
|
||||||
} else if ev.known_kind == .contacts {
|
} else if ev.known_kind == .contacts {
|
||||||
handle_profile_contact_event(ev)
|
handle_profile_contact_event(ev)
|
||||||
|
} else if ev.known_kind == .metadata {
|
||||||
|
process_metadata_event(profiles: damus.profiles, ev: ev)
|
||||||
}
|
}
|
||||||
seen_event.insert(ev.id)
|
seen_event.insert(ev.id)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user