Add note provenance filter support to SubscriptionManager

Closes: https://github.com/damus-io/damus/issues/3222
Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
Daniel D’Aquino
2025-09-10 17:06:45 -07:00
parent ecbfb3714b
commit 1caad24364
6 changed files with 62 additions and 12 deletions

View File

@@ -137,7 +137,13 @@ extension NostrNetworkManager {
case .event(let noteKey):
let lender = NdbNoteLender(ndb: self.ndb, noteKey: noteKey)
try Task.checkCancellation()
continuation.yield(.event(lender: lender))
guard let desiredRelays else {
continuation.yield(.event(lender: lender)) // If no desired relays are specified, return all notes we see.
break
}
if try ndb.was(noteKey: noteKey, seenOnAnyOf: desiredRelays) {
continuation.yield(.event(lender: lender)) // If desired relays were specified and this note was seen there, return it.
}
}
}
}

View File

@@ -141,7 +141,7 @@ class RelayPool {
case .string(let str) = msg
else { return }
let _ = self.ndb.process_event(str)
let _ = self.ndb.process_event(str, originRelayURL: relay_id)
self.message_received_function?((str, desc))
})
let relay = Relay(descriptor: desc, connection: conn)