Browse Source

fix likes

Signed-off-by: William Casarin <jb55@jb55.com>
profiles-everywhere
William Casarin 3 years ago
parent
commit
13cec8cffe
  1. 5
      damus/ContentView.swift
  2. 1
      damus/Models/DamusState.swift
  3. 16
      damus/Models/LikeCounter.swift
  4. 5
      damus/Models/ThreadModel.swift

5
damus/ContentView.swift

@ -377,7 +377,8 @@ struct ContentView: View {
} }
func handle_boost_event(_ ev: NostrEvent) { func handle_boost_event(_ ev: NostrEvent) {
damus!.boosts.add_event(ev)
//damus!.boosts.add_event(ev)
} }
func handle_like_event(_ ev: NostrEvent) { func handle_like_event(_ ev: NostrEvent) {
@ -388,7 +389,7 @@ struct ContentView: View {
// CHECK SIGS ON THESE // CHECK SIGS ON THESE
switch damus!.likes.add_event(ev) { switch damus!.likes.add_event(ev, target: e.ref_id) {
case .user_already_liked: case .user_already_liked:
break break
case .success(let n): case .success(let n):

1
damus/Models/DamusState.swift

@ -13,5 +13,4 @@ struct DamusState {
let likes: EventCounter let likes: EventCounter
let boosts: EventCounter let boosts: EventCounter
let image_cache: ImageCache let image_cache: ImageCache
} }

16
damus/Models/LikeCounter.swift

@ -23,31 +23,31 @@ class EventCounter {
self.our_pubkey = our_pubkey self.our_pubkey = our_pubkey
} }
func add_event(_ ev: NostrEvent) -> LikeResult { func add_event(_ ev: NostrEvent, target: String) -> LikeResult {
let pubkey = ev.pubkey let pubkey = ev.pubkey
if self.user_events[pubkey] == nil { if self.user_events[pubkey] == nil {
self.user_events[pubkey] = Set() self.user_events[pubkey] = Set()
} }
if user_events[pubkey]!.contains(ev.id) { if user_events[pubkey]!.contains(target) {
// don't double count // don't double count
return .user_already_liked return .user_already_liked
} }
user_events[pubkey]!.insert(ev.id) user_events[pubkey]!.insert(target)
if ev.pubkey == self.our_pubkey { if ev.pubkey == self.our_pubkey {
our_events[ev.id] = ev our_events[target] = ev
} }
if counts[ev.id] == nil { if counts[target] == nil {
counts[ev.id] = 1 counts[target] = 1
return .success(1) return .success(1)
} }
counts[ev.id]! += 1 counts[target]! += 1
return .success(counts[ev.id]!) return .success(counts[target]!)
} }
} }

5
damus/Models/ThreadModel.swift

@ -101,9 +101,8 @@ class ThreadModel: ObservableObject {
} }
func subscribe() { func subscribe() {
let kinds: [Int] = [1, 5, 6, 7] var ref_events = NostrFilter.filter_kinds([1,5,7])
var ref_events = NostrFilter.filter_kinds(kinds) var events_filter = NostrFilter.filter_kinds([1])
var events_filter = NostrFilter.filter_kinds(kinds)
//var likes_filter = NostrFilter.filter_kinds(7]) //var likes_filter = NostrFilter.filter_kinds(7])
// TODO: add referenced relays // TODO: add referenced relays

Loading…
Cancel
Save