mirror of
https://github.com/unclebob/more-speech.git
synced 2024-09-30 10:30:56 +00:00
Fix some odds and ends with relays and the user window. Works much better now.
This commit is contained in:
parent
9174855366
commit
90663dca44
@ -30,7 +30,7 @@
|
|||||||
"wss://relay.thes.ai" {:read :read-all :write true}
|
"wss://relay.thes.ai" {:read :read-all :write true}
|
||||||
"wss://nostr-dev.wellorder.net" {:read :read-trusted, :write true}
|
"wss://nostr-dev.wellorder.net" {:read :read-trusted, :write true}
|
||||||
"wss://nostr-pub.wellorder.net" {:read :read-trusted, :write true}
|
"wss://nostr-pub.wellorder.net" {:read :read-trusted, :write true}
|
||||||
"wss://relay.damus.io" {:read :read-trusted :write true}
|
"wss://relay.damus.io" {:read :read-web-of-trust :write true}
|
||||||
"wss://relay.nostr.info" {:read :read-all :write true}
|
"wss://relay.nostr.info" {:read :read-all :write true}
|
||||||
"wss://relay.snort.social" {:read :read-trusted :write true}
|
"wss://relay.snort.social" {:read :read-trusted :write true}
|
||||||
"wss://nostr.mikedilger.com" {:read :read-all :write true}
|
"wss://nostr.mikedilger.com" {:read :read-all :write true}
|
||||||
@ -61,7 +61,7 @@
|
|||||||
(def user-name-chars #"[\w\-]+")
|
(def user-name-chars #"[\w\-]+")
|
||||||
(def reference-pattern #"\#\[\d+\]")
|
(def reference-pattern #"\#\[\d+\]")
|
||||||
|
|
||||||
(def proof-of-work-default 16)
|
(def proof-of-work-default 12)
|
||||||
(def max-nodes-per-tab 1000)
|
(def max-nodes-per-tab 1000)
|
||||||
(def prune-tabs-frequency-in-minutes 60)
|
(def prune-tabs-frequency-in-minutes 60)
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
(ns more-speech.nostr.protocol
|
(ns more-speech.nostr.protocol
|
||||||
(:require [more-speech.logger.default :refer [log-pr]]
|
(:require [more-speech.config :as config]
|
||||||
[more-speech.relay :as relay]
|
[more-speech.logger.default :refer [log-pr]]
|
||||||
[more-speech.websocket-relay :as ws-relay]
|
|
||||||
[more-speech.mem :refer :all]
|
[more-speech.mem :refer :all]
|
||||||
[more-speech.nostr.events :as events]
|
|
||||||
[more-speech.nostr.event-handlers :as handlers]
|
|
||||||
[more-speech.mem :refer :all]
|
[more-speech.mem :refer :all]
|
||||||
[more-speech.config :as config]
|
|
||||||
[more-speech.nostr.contact-list :as contact-list]
|
[more-speech.nostr.contact-list :as contact-list]
|
||||||
[more-speech.nostr.util :as util])
|
[more-speech.nostr.event-handlers :as handlers]
|
||||||
|
[more-speech.nostr.events :as events]
|
||||||
|
[more-speech.nostr.util :as util]
|
||||||
|
[more-speech.relay :as relay]
|
||||||
|
[more-speech.websocket-relay :as ws-relay])
|
||||||
(:import (java.util Date)
|
(:import (java.util Date)
|
||||||
(java.text SimpleDateFormat)
|
(java.text SimpleDateFormat)
|
||||||
(java.util Timer TimerTask)))
|
(java.util Timer TimerTask)))
|
||||||
@ -151,6 +151,7 @@
|
|||||||
|
|
||||||
(defn handle-close [relay]
|
(defn handle-close [relay]
|
||||||
(let [url (::ws-relay/url relay)]
|
(let [url (::ws-relay/url relay)]
|
||||||
|
(swap! relays assoc-in [url :connection] nil)
|
||||||
(log-pr 1 url 'is-closed)))
|
(log-pr 1 url 'is-closed)))
|
||||||
|
|
||||||
(defn make-relay [url]
|
(defn make-relay [url]
|
||||||
@ -238,6 +239,14 @@
|
|||||||
(when (some? relay)
|
(when (some? relay)
|
||||||
(relay/close relay)))))
|
(relay/close relay)))))
|
||||||
|
|
||||||
|
(defn reconnect-all-relays []
|
||||||
|
(let [now (- (util/get-now) 120)]
|
||||||
|
(close-all-relays)
|
||||||
|
(Thread/sleep 1000)
|
||||||
|
(doseq [url (keys @relays)]
|
||||||
|
(reconnect-to-relay url now now))))
|
||||||
|
|
||||||
|
|
||||||
(defn initialize []
|
(defn initialize []
|
||||||
(let [timer (Timer. "Dead socket timer")
|
(let [timer (Timer. "Dead socket timer")
|
||||||
check-open-task (proxy [TimerTask] []
|
check-open-task (proxy [TimerTask] []
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
[more-speech.mem :refer :all]
|
[more-speech.mem :refer :all]
|
||||||
[more-speech.nostr.contact-list :as contact-list]
|
[more-speech.nostr.contact-list :as contact-list]
|
||||||
[more-speech.nostr.event-composers :as event-composers]
|
[more-speech.nostr.event-composers :as event-composers]
|
||||||
|
[more-speech.nostr.protocol :as protocol]
|
||||||
[more-speech.nostr.trust-updater :as trust-updater]
|
[more-speech.nostr.trust-updater :as trust-updater]
|
||||||
[more-speech.nostr.util :as util]
|
[more-speech.nostr.util :as util]
|
||||||
[more-speech.ui.formatters :as formatters]
|
[more-speech.ui.formatters :as formatters]
|
||||||
@ -19,6 +20,12 @@
|
|||||||
|
|
||||||
(defn close-users-frame [users-menu _e]
|
(defn close-users-frame [users-menu _e]
|
||||||
(config! users-menu :enabled? true)
|
(config! users-menu :enabled? true)
|
||||||
|
(when (get-mem [:user-window :contact-list-changed])
|
||||||
|
(when-not (config/is-test-run?)
|
||||||
|
(let [my-pubkey (get-mem :pubkey)
|
||||||
|
contacts (gateway/get-contacts (get-db) my-pubkey)]
|
||||||
|
(event-composers/compose-and-send-contact-list contacts)))
|
||||||
|
(future (protocol/reconnect-all-relays)))
|
||||||
(set-mem :user-window nil))
|
(set-mem :user-window nil))
|
||||||
|
|
||||||
(defn make-sorted-listbox-items [ids]
|
(defn make-sorted-listbox-items [ids]
|
||||||
@ -98,19 +105,18 @@
|
|||||||
petname (trust-updater/ask-for-petname pubkey)
|
petname (trust-updater/ask-for-petname pubkey)
|
||||||
trusted-listbox (select frame [:#trusted-users-listbox])]
|
trusted-listbox (select frame [:#trusted-users-listbox])]
|
||||||
(when (some? petname)
|
(when (some? petname)
|
||||||
(let [contact-list (trust-updater/entrust pubkey petname)]
|
(trust-updater/entrust pubkey petname)
|
||||||
(when-not (config/is-test-run?)
|
(set-mem [:user-window :contact-list-changed] true)
|
||||||
(event-composers/compose-and-send-contact-list contact-list))
|
(load-trusted-users)
|
||||||
(load-trusted-users)
|
(let [trusted-items (get-mem [:user-window :trusted-user-items])
|
||||||
(let [trusted-items (get-mem [:user-window :trusted-user-items])
|
new-trusted-item (find-item pubkey trusted-items)]
|
||||||
new-trusted-item (find-item pubkey trusted-items)]
|
(config! trusted-listbox :model trusted-items)
|
||||||
(config! trusted-listbox :model trusted-items)
|
(remove-item pubkey :web-of-trust-items :web-of-trust-users)
|
||||||
(remove-item pubkey :web-of-trust-items :web-of-trust-users)
|
(remove-item pubkey :recent-user-items :recent-users)
|
||||||
(remove-item pubkey :recent-user-items :recent-users)
|
(config! (select frame [:#selected-users])
|
||||||
(config! (select frame [:#selected-users])
|
:model (get-mem [:user-window group]))
|
||||||
:model (get-mem [:user-window group]))
|
(.setSelectedValue trusted-listbox
|
||||||
(.setSelectedValue trusted-listbox
|
new-trusted-item true)))))))
|
||||||
new-trusted-item true))))))))
|
|
||||||
|
|
||||||
(defn untrust-selection [frame _e]
|
(defn untrust-selection [frame _e]
|
||||||
(let [trusted-listbox (select frame [:#trusted-users-listbox])
|
(let [trusted-listbox (select frame [:#trusted-users-listbox])
|
||||||
@ -132,9 +138,7 @@
|
|||||||
(config! trusted-listbox :model (get-mem [:user-window :trusted-user-items]))
|
(config! trusted-listbox :model (get-mem [:user-window :trusted-user-items]))
|
||||||
(config! recent-button :selected? true)
|
(config! recent-button :selected? true)
|
||||||
(load-recent-users)
|
(load-recent-users)
|
||||||
(prn 'adding untrusted-user)
|
|
||||||
(update-mem [:user-window :recent-users] conj untrusted-user)
|
(update-mem [:user-window :recent-users] conj untrusted-user)
|
||||||
(prn 'recent-users (get-mem [:user-window :recent-users]))
|
|
||||||
(set-mem [:user-window :recent-user-items]
|
(set-mem [:user-window :recent-user-items]
|
||||||
(make-sorted-listbox-items
|
(make-sorted-listbox-items
|
||||||
(get-mem [:user-window :recent-users])))
|
(get-mem [:user-window :recent-users])))
|
||||||
@ -142,10 +146,7 @@
|
|||||||
(.setSelectedValue selected-listbox
|
(.setSelectedValue selected-listbox
|
||||||
(find-item untrusted-user (get-mem [:user-window :recent-user-items]))
|
(find-item untrusted-user (get-mem [:user-window :recent-user-items]))
|
||||||
true)
|
true)
|
||||||
(when-not (config/is-test-run?)
|
(set-mem [:user-window :contact-list-changed] true))))))
|
||||||
(let [my-pubkey (get-mem :pubkey)
|
|
||||||
contacts (gateway/get-contacts (get-db) my-pubkey)]
|
|
||||||
(event-composers/compose-and-send-contact-list contacts))))))))
|
|
||||||
|
|
||||||
(defn listbox-click [listbox e]
|
(defn listbox-click [listbox e]
|
||||||
(when (.isPopupTrigger e)
|
(when (.isPopupTrigger e)
|
||||||
|
@ -61,9 +61,10 @@
|
|||||||
(let [{::keys [url socket timer]} relay]
|
(let [{::keys [url socket timer]} relay]
|
||||||
(when (some? socket)
|
(when (some? socket)
|
||||||
(try
|
(try
|
||||||
(.get (.sendClose socket WebSocket/NORMAL_CLOSURE "done"))
|
(when-not (and (.isOutputClosed socket) (.isInputClosed socket))
|
||||||
|
(.get (.sendClose socket WebSocket/NORMAL_CLOSURE "done")))
|
||||||
(catch Exception e
|
(catch Exception e
|
||||||
(log-pr 1 'close-error url (:reason e)))))
|
(log-pr 1 'close-error url (:message e)))))
|
||||||
(when timer (.cancel timer))
|
(when timer (.cancel timer))
|
||||||
(set-mem [:deadman url] (util/get-now))
|
(set-mem [:deadman url] (util/get-now))
|
||||||
(assoc relay ::socket nil ::timer nil)))
|
(assoc relay ::socket nil ::timer nil)))
|
||||||
|
Loading…
Reference in New Issue
Block a user