ui: add quoted reposts view to threads
This adds quote reposts as an additional detail view on threads. It will list quoted reposts that have the `q` tag. Not all clients have updated to this yet (like primal), but hopefully they will soon. Changelog-Added: Show list of quoted reposts in threads Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
|
||||
class EventsModel: ObservableObject {
|
||||
let state: DamusState
|
||||
let target: NoteId
|
||||
|
||||
@@ -56,6 +56,7 @@ class ThreadModel: ObservableObject {
|
||||
|
||||
func subscribe() {
|
||||
var meta_events = NostrFilter()
|
||||
var quote_events = NostrFilter()
|
||||
var event_filter = NostrFilter()
|
||||
var ref_events = NostrFilter()
|
||||
|
||||
@@ -74,11 +75,14 @@ class ThreadModel: ObservableObject {
|
||||
kinds.append(.like)
|
||||
}
|
||||
meta_events.kinds = kinds
|
||||
|
||||
meta_events.limit = 1000
|
||||
|
||||
|
||||
quote_events.kinds = [.text]
|
||||
quote_events.quotes = [event.id]
|
||||
quote_events.limit = 1000
|
||||
|
||||
let base_filters = [event_filter, ref_events]
|
||||
let meta_filters = [meta_events]
|
||||
let meta_filters = [meta_events, quote_events]
|
||||
|
||||
print("subscribing to thread \(event.id) with sub_id \(base_subid)")
|
||||
damus_state.pool.subscribe(sub_id: base_subid, filters: base_filters, handler: handle_event)
|
||||
@@ -90,7 +94,7 @@ class ThreadModel: ObservableObject {
|
||||
return
|
||||
}
|
||||
|
||||
let the_ev = damus_state.events.upsert(ev)
|
||||
damus_state.events.upsert(ev)
|
||||
damus_state.replies.count_replies(ev, keypair: keypair)
|
||||
damus_state.events.add_replies(ev: ev, keypair: keypair)
|
||||
|
||||
@@ -111,7 +115,13 @@ class ThreadModel: ObservableObject {
|
||||
|
||||
}
|
||||
} else if ev.is_textlike {
|
||||
self.add_event(ev, keypair: damus_state.keypair)
|
||||
// handle thread quote reposts, we just count them instead of
|
||||
// adding them to the thread
|
||||
if let target = ev.is_quote_repost, target == self.event.id {
|
||||
//let _ = self.damus_state.quote_reposts.add_event(ev, target: target)
|
||||
} else {
|
||||
self.add_event(ev, keypair: damus_state.keypair)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user