From 3dfdc5ac49fc523c87832b6690753a59e2f21aec Mon Sep 17 00:00:00 2001 From: "Robert C. Martin" Date: Tue, 5 Jul 2022 08:09:01 -0500 Subject: [PATCH] find-user-id uses profiles. --- spec/more_speech/nostr/events_spec.clj | 18 +++++++++++++----- src/more_speech/nostr/events.clj | 6 +++--- src/more_speech/nostr/protocol.clj | 9 ++++++--- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/spec/more_speech/nostr/events_spec.clj b/spec/more_speech/nostr/events_spec.clj index a36d18b..d1834e8 100644 --- a/spec/more_speech/nostr/events_spec.clj +++ b/spec/more_speech/nostr/events_spec.clj @@ -355,8 +355,8 @@ (it "emplaces @username in newly created message" (let [tags [] user-id 99 - nicknames {user-id "username"} - event-context (atom {:nicknames nicknames}) + profiles {user-id {:name "username"}} + event-context (atom {:profiles profiles}) _ (reset! ui-context {:event-context event-context}) content "hello @username."] (should= ["hello #[0]." [[:p (hexify user-id)]]] (emplace-references content tags)))) @@ -365,9 +365,9 @@ (let [tags (seq [[:e "blah"]]) user-id-1 99 user-id-2 88 - nicknames {user-id-1 "user-1" - user-id-2 "user-2"} - event-context (atom {:nicknames nicknames}) + profiles {user-id-1 {:name "user-1"} + user-id-2 {:name "user-2"}} + event-context (atom {:profiles profiles}) _ (reset! ui-context {:event-context event-context}) content "hello @user-1 and @user-2."] (should= ["hello #[1] and #[2]." [[:e "blah"] @@ -418,3 +418,11 @@ (should= {1 "bob"} (:nicknames event-state)) (should= {1 {:name "bob" :about "about" :picture "picture"}} (:profiles event-state))))) + +(describe "find-user-id" + (it "finds the id from a nickname" + (let [event-state {:profiles {1 {:name "bob"}} + :nicknames {1 "bob"}}] + (reset! ui-context {:event-context (atom event-state)}) + (should= 1 (find-user-id "bob")) + (should= nil (find-user-id "bill"))))) diff --git a/src/more_speech/nostr/events.clj b/src/more_speech/nostr/events.clj index 54eecbe..03b440a 100644 --- a/src/more_speech/nostr/events.clj +++ b/src/more_speech/nostr/events.clj @@ -399,12 +399,12 @@ )))) (defn find-user-id [user-name] - (let [nicknames (:nicknames @(:event-context @ui-context))] - (loop [pairs (vec nicknames)] + (let [profiles (:profiles @(:event-context @ui-context))] + (loop [pairs (vec profiles)] (if (empty? pairs) nil (let [pair (first pairs)] - (if (= user-name (second pair)) + (if (= user-name (:name (second pair))) (first pair) (recur (rest pairs)))))))) diff --git a/src/more_speech/nostr/protocol.clj b/src/more_speech/nostr/protocol.clj index 5ebb482..a7ca5cc 100644 --- a/src/more_speech/nostr/protocol.clj +++ b/src/more_speech/nostr/protocol.clj @@ -13,9 +13,12 @@ (java.time ZoneOffset))) (defn send-to [^WebSocket conn msg] - (let [msg (events/to-json msg)] - (println "sending:" msg) - (.sendText conn msg true))) + (try + (let [msg (events/to-json msg)] + (println "sending:" msg) + (.sendText conn msg true)) + (catch Exception e + (prn 'send-to (.getMessage e))))) (defn format-time [time] (let [time (* time 1000)