diff options
| author | eltrac <hi@eltr.ac> | 2026-05-06 11:14:55 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-05-06 11:14:55 +0800 |
| commit | a1c251a751bd85290ddea9a8ae840f9646911b51 (patch) | |
| tree | 341779c27821f3939891477615d8c389afd9f0b7 /src | |
| parent | 0cd3816331862ad7c66eb1cef9185fd5d729f523 (diff) | |
refactor(processor): remove storage dependency in processor
Diffstat (limited to 'src')
| -rw-r--r-- | src/weepinbell/core.clj | 22 | ||||
| -rw-r--r-- | src/weepinbell/processor.clj | 10 |
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))) |
