Paid relay detection

This commit is contained in:
William Casarin
2023-02-10 08:27:28 -08:00
parent fe444228e6
commit 5f1545b86a
5 changed files with 44 additions and 10 deletions

View File

@@ -10,6 +10,11 @@ import Foundation
struct RelayFilter: Hashable {
let timeline: Timeline
let relay_id: String
init(timeline: Timeline, relay_id: String, on: Bool = false) {
self.timeline = timeline
self.relay_id = relay_id
}
}
class RelayFilters {
@@ -44,7 +49,7 @@ class RelayFilters {
init(our_pubkey: String) {
self.our_pubkey = our_pubkey
disabled = load_relay_filters(our_pubkey)
disabled = load_relay_filters(our_pubkey) ?? Set()
}
}
@@ -54,10 +59,19 @@ func save_relay_filters(_ pubkey: String, filters: Set<RelayFilter>) {
UserDefaults.standard.set(arr, forKey: key)
}
func load_relay_filters(_ pubkey: String) -> Set<RelayFilter> {
let key = pk_setting_key(pubkey, key: "relay_filters")
func relay_filter_setting_key(_ pubkey: String) -> String {
return pk_setting_key(pubkey, key: "relay_filters")
}
func clear_relay_filters(_ pubkey: String) {
let key = relay_filter_setting_key(pubkey)
UserDefaults.standard.removeObject(forKey: key)
}
func load_relay_filters(_ pubkey: String) -> Set<RelayFilter>? {
let key = relay_filter_setting_key(pubkey)
guard let filters = UserDefaults.standard.stringArray(forKey: key) else {
return Set()
return nil
}
return filters.reduce(into: Set()) { s, str in