commit 408da2c9d2648dea6fa844b5cc4b2cce0ff16c09
parent 85914b3cbe474c7a0d377dbdebc396161a7e11d2
Author: Thomas <31560900+0xtlt@users.noreply.github.com>
Date: Fri, 23 Dec 2022 18:25:39 +0100
Merge branch 'master' into master
Diffstat:
4 files changed, 79 insertions(+), 4 deletions(-)
diff --git a/damus/Nostr/Nostr.swift b/damus/Nostr/Nostr.swift
@@ -7,8 +7,82 @@
import Foundation
+struct Profile: Codable {
+ var value: [String: String]
+
+ init (name: String?, display_name: String?, about: String?, picture: String?, website: String?, lud06: String?, lud16: String?, nip05: String?) {
+ self.value = [:]
+ self.name = name
+ self.display_name = display_name
+ self.about = about
+ self.picture = picture
+ self.website = website
+ self.lud06 = lud06
+ self.lud16 = lud16
+ self.nip05 = nip05
+ }
+
+ var display_name: String? {
+ get { return value["display_name"]; }
+ set(s) { value["display_name"] = s }
+ }
+
+ var name: String? {
+ get { return value["name"]; }
+ set(s) { value["name"] = s }
+ }
+
+ var about: String? {
+ get { return value["about"]; }
+ set(s) { value["about"] = s }
+ }
+
+ var picture: String? {
+ get { return value["picture"]; }
+ set(s) { value["picture"] = s }
+ }
+
+ var website: String? {
+ get { return value["website"]; }
+ set(s) { value["website"] = s }
+ }
+
+ var lud06: String? {
+ get { return value["lud06"]; }
+ set(s) { value["lud06"] = s }
+ }
+
+ var lud16: String? {
+ get { return value["lud16"]; }
+ set(s) { value["lud16"] = s }
+ }
+
+ var nip05: String? {
+ get { return value["nip05"]; }
+ set(s) { value["nip05"] = s }
+ }
+
+ var lightning_uri: URL? {
+ return make_ln_url(self.lud06) ?? make_ln_url(self.lud16)
+ }
+
+ init(from decoder: Decoder) throws {
+ let container = try decoder.singleValueContainer()
+ self.value = try container.decode([String: String].self)
+ }
+
+ func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ try container.encode(value)
+ }
+
+ static func displayName(profile: Profile?, pubkey: String) -> String {
+ return profile?.name ?? abbrev_pubkey(pubkey)
+ }
+}
-struct Profile: Decodable, Equatable {
+/*
+struct Profile: Decodable {
let name: String?
let display_name: String?
let about: String?
@@ -26,6 +100,7 @@ struct Profile: Decodable, Equatable {
return profile?.name ?? abbrev_pubkey(pubkey)
}
}
+ */
func make_ln_url(_ str: String?) -> URL? {
return str.flatMap { URL(string: "lightning:" + $0) }
diff --git a/damus/Views/PostView.swift b/damus/Views/PostView.swift
@@ -77,7 +77,7 @@ struct PostView: View {
if post.isEmpty {
Text(POST_PLACEHOLDER)
.padding(.top, 8)
- .padding(.leading, 10)
+ .padding(.leading, 4)
.foregroundColor(Color(uiColor: .placeholderText))
.allowsHitTesting(false)
}
diff --git a/damus/Views/ProfilePicView.swift b/damus/Views/ProfilePicView.swift
@@ -101,7 +101,7 @@ struct ProfilePicView: View {
func make_preview_profiles(_ pubkey: String) -> Profiles {
let profiles = Profiles()
let picture = "http://cdn.jb55.com/img/red-me.jpg"
- let profile = Profile(name: "jb55", display_name: "William Casarin", about: "It's me", picture: picture, website: "https://jb55.com", nip05: "jb55@damus.io", lud06: nil, lud16: nil)
+ let profile = Profile(name: "jb55", display_name: "William Casarin", about: "It's me", picture: picture, website: "https://jb55.com", lud06: nil, lud16: nil, nip05: "jb55.com")
let ts_profile = TimestampedProfile(profile: profile, timestamp: 0)
profiles.add(id: pubkey, profile: ts_profile)
return profiles
diff --git a/damus/Views/ProfileView.swift b/damus/Views/ProfileView.swift
@@ -225,7 +225,7 @@ func test_damus_state() -> DamusState {
let pubkey = "3efdaebb1d8923ebd99c9e7ace3b4194ab45512e2be79c1b7d68d9243e0d2681"
let damus = DamusState(pool: RelayPool(), keypair: Keypair(pubkey: pubkey, privkey: "privkey"), likes: EventCounter(our_pubkey: pubkey), boosts: EventCounter(our_pubkey: pubkey), contacts: Contacts(), tips: TipCounter(our_pubkey: pubkey), profiles: Profiles(), dms: DirectMessagesModel())
- let prof = Profile(name: "damus", display_name: "Damus", about: "iOS app!", picture: "https://damus.io/img/logo.png", website: "https://damus.io", nip05: nil, lud06: nil, lud16: "jb55@sendsats.lol")
+ let prof = Profile(name: "damus", display_name: "Damus", about: "iOS app!", picture: "https://damus.io/img/logo.png", website: "https://damus.io", lud06: nil, lud16: "jb55@sendsats.lol", nip05: "damus.io")
let tsprof = TimestampedProfile(profile: prof, timestamp: 0)
damus.profiles.add(id: pubkey, profile: tsprof)
return damus