diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/key_handling/users.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/key_handling/users.rs b/src/key_handling/users.rs index caa57e6..2c6a897 100644 --- a/src/key_handling/users.rs +++ b/src/key_handling/users.rs | |||
| @@ -220,9 +220,20 @@ impl UserManagement for UserManager { | |||
| 220 | let metadata = nostr::Metadata::from_json(new_metadata_event.content.clone()) | 220 | let metadata = nostr::Metadata::from_json(new_metadata_event.content.clone()) |
| 221 | .context("metadata cannot be found in kind 0 event content")?; | 221 | .context("metadata cannot be found in kind 0 event content")?; |
| 222 | user_ref.metadata = UserMetadata { | 222 | user_ref.metadata = UserMetadata { |
| 223 | name: metadata | 223 | name: if let Some(n) = metadata.name { |
| 224 | .name | 224 | n |
| 225 | .context("user metadata should always have name")?, | 225 | } else if let Some(n) = metadata.custom.get("displayName") { |
| 226 | // strip quote marks that custom.get() adds | ||
| 227 | let binding = n.to_string(); | ||
| 228 | let mut chars = binding.chars(); | ||
| 229 | chars.next(); | ||
| 230 | chars.next_back(); | ||
| 231 | chars.as_str().to_string() | ||
| 232 | } else if let Some(n) = metadata.display_name { | ||
| 233 | n | ||
| 234 | } else { | ||
| 235 | user_ref.metadata.name | ||
| 236 | }, | ||
| 226 | created_at: new_metadata_event.created_at.as_u64(), | 237 | created_at: new_metadata_event.created_at.as_u64(), |
| 227 | }; | 238 | }; |
| 228 | } | 239 | } |