Compare commits

...

2 commits

Author SHA1 Message Date
7f6911b73e add api endpoint to restart nostr 2025-09-03 10:22:25 +02:00
bea3e72c10 add timeout to websocket reconnect 2025-08-28 07:48:07 +02:00
3 changed files with 28 additions and 8 deletions

View file

@ -1,5 +1,9 @@
#!/bin/sh
set -e
export AWS_PROFILE=personal
docker buildx build --platform linux/amd64,linux/arm64 -t 853019563312.dkr.ecr.eu-central-1.amazonaws.com/micro-blog-fetchers-homelabstack:latest --push .
docker buildx build --platform linux/amd64,linux/arm64 -t 853019563312.dkr.ecr.eu-central-1.amazonaws.com/micro-blog-fetchers-homelabstack:latest --push .
echo "Image pushed to ECR"

View file

@ -4,10 +4,11 @@
[micro-blog.config :refer [config]]
micro-blog.mastodon
micro-blog.blue-sky
micro-blog.nostr
[taoensso.telemere :as tel]))
(defn mastodon-proc-handler [_request]
(let [msg "Proceding Mastodon Scrape"]
(let [msg "Procding Mastodon Scrape"]
(tel/log! :info msg)
(micro-blog.mastodon/run)
{:status 200
@ -15,14 +16,23 @@
(defn blue-sky-proc-handler [_request]
(let [msg "Procing BlueSky Scrape"]
(tel/log! :info msg)
(micro-blog.mastodon/run)
{:status 200
:body msg}))
(tel/log! :info msg)
(micro-blog.mastodon/run)
{:status 200
:body msg}))
(defn nostr-proc-handler [_request]
(let [msg "Restarting Nostr scraper"]
(tel/log! :info msg)
(micro-blog.nostr/close)
(micro-blog.nostr/start)
{:status 200
:body msg}))
(def routes
#{["/bluesky" :get blue-sky-proc-handler :route-name :blue-sky]
["/mastodon" :get mastodon-proc-handler :route-name :mastodon]})
["/mastodon" :get mastodon-proc-handler :route-name :mastodon]
["/nostr" :get nostr-proc-handler :route-name :nostr]})
(defn create-connector []
(-> (conn/default-connector-map (:api-host @config) (Integer/parseInt (str (:api-port @config))))

View file

@ -53,6 +53,7 @@
pb/save-post)))))
(def socket (atom nil))
(declare start)
(defn connect []
(tel/log! :info "Opening websocket connection to nostr relay")
(reset! socket @(ws/websocket (@config :nostr-relay)
@ -60,7 +61,11 @@
:on-message (fn [_ws msg _last?]
(process-msg msg))
:on-close (fn [_ws status reason]
(tel/log! {:level :warn :data {:status status :reason reason}} "WebSocket connection closed"))})))
(tel/log! {:level :warn :data {:status status :reason reason}} "WebSocket connection closed")
(future
(Thread/sleep (* 5 60 1000))
(tel/log! :info "Reconnecting WebSocket")
(start)))})))
(defn subscribe-to-author [pubkey since]
(let [sub-id (@config :nostr-fetcher-id)
@ -69,6 +74,7 @@
(.get (ws/send! @socket msg))))
(defn close []
(tel/log! :info "Closing nostr socket")
(ws/close! @socket))
(defn start []