summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-05-06 11:14:55 +0800
committereltrac <hi@eltr.ac>2026-05-06 11:14:55 +0800
commita1c251a751bd85290ddea9a8ae840f9646911b51 (patch)
tree341779c27821f3939891477615d8c389afd9f0b7 /src
parent0cd3816331862ad7c66eb1cef9185fd5d729f523 (diff)
refactor(processor): remove storage dependency in processor
Diffstat (limited to 'src')
-rw-r--r--src/weepinbell/core.clj22
-rw-r--r--src/weepinbell/processor.clj10
2 files changed, 16 insertions, 16 deletions
diff --git a/src/weepinbell/core.clj b/src/weepinbell/core.clj
index b2e365b..e8683d8 100644
--- a/src/weepinbell/core.clj
+++ b/src/weepinbell/core.clj
@@ -5,20 +5,24 @@
[weepinbell.channel :refer [wmc]]
[weepinbell.config :refer [get-config]]
[weepinbell.webhook :as webhook]
- [taoensso.timbre :as timbre])
+ [taoensso.timbre :as timbre]
+ [weepinbell.storage :as storage])
(:gen-class)) ;; Essential for "lein uberjar"
-
(defn -main [& args]
;; Start webmention processor
(process-webmention wmc
- (let [hooks [:on-receive :on-update :on-delete :on-create]
- webhooks (get-config :webhook)]
- (zipmap hooks
- (map (fn [hook]
- #(do (timbre/info (name hook) "callback triggered.")
- (webhook/trigger hook webhooks)))
- hooks))))
+ (let [hooks [:on-receive :on-update :on-delete :on-create]
+ webhooks (get-config :webhook)]
+ (zipmap hooks
+ (map (fn [hook]
+ #(do (timbre/info (name hook) "callback triggered.")
+ (webhook/trigger hook webhooks)))
+ hooks)))
+ {:append storage/append-wm
+ :update storage/update-wm
+ :delete storage/delete-wm
+ :get storage/get-wm})
;; Check for a PORT environment variable, default to 3000
(let [port (Integer/parseInt (or (System/getenv "PORT") "3000"))]
(run-jetty app {:port port :join? true})))
diff --git a/src/weepinbell/processor.clj b/src/weepinbell/processor.clj
index 0045a1a..55bbbd7 100644
--- a/src/weepinbell/processor.clj
+++ b/src/weepinbell/processor.clj
@@ -2,7 +2,6 @@
(:require [clojure.core.async :refer [go-loop <!]]
[clojure.string :refer [includes?]]
[clj-http.client :as client]
- [weepinbell.storage :as storage]
[weepinbell.utils :refer [validate-content-types]]
[weepinbell.wrapper :as wrapper]
[taoensso.timbre :as timbre]))
@@ -52,14 +51,11 @@
(timbre/info "Webmention no longer valid, deleted."))))
(defn process-webmention
- [wmc callbacks]
+ [wmc callbacks storage]
(go-loop []
(when-let [webmention (<! wmc)]
(timbre/info "Webmention found in queue.")
- (let [{:keys [s t]} webmention
- storage {:update storage/update-wm
- :delete storage/delete-wm
- :append storage/append-wm}]
+ (let [{:keys [s t]} webmention]
;; first check Content-Types of both urls
;; only proceed when it's HTML or plain text
(if (validate-content-types s t)
@@ -67,7 +63,7 @@
;; if so, update it or delete it
;; if not, write to data
(do
- (if (storage/get-wm s t)
+ (if ((:get storage) s t)
(process-existing-webmention s t callbacks storage)
(process-new-webmention s t callbacks storage))
((:on-receive callbacks)))