diff options
| author | eltrac <hi@eltr.ac> | 2026-03-17 17:24:58 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-03-17 17:24:58 +0800 |
| commit | 8cd29d77cee66c5e18df08741d91444e100c734e (patch) | |
| tree | 48e09798fce36e8382b6a5e660ec8aac6c00f3a2 /src | |
| parent | e5c2485118fbed590c6b9dbe510b8f4a44484e80 (diff) | |
feat(webhook): trigger webhooks on receiving new mentions
Diffstat (limited to 'src')
| -rw-r--r-- | src/weepinbell/processor.clj | 10 | ||||
| -rw-r--r-- | src/weepinbell/webhook.clj | 12 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/weepinbell/processor.clj b/src/weepinbell/processor.clj index 326688b..64df22e 100644 --- a/src/weepinbell/processor.clj +++ b/src/weepinbell/processor.clj @@ -8,6 +8,7 @@ file-exists? download-file]] [weepinbell.config :refer [get-config]] + [weepinbell.webhook :as webhook] [taoensso.timbre :as timbre] [digest :as digest]) (:import [com.kylewm.mf2j Mf2Parser] @@ -131,9 +132,12 @@ ;; second check if such webmention exists ;; if so, update it or delete it ;; if not, write to data - (if (storage/get-wm s t) - (process-existing-webmention s t) - (process-new-webmention s t)) + (do + (if (storage/get-wm s t) + (process-existing-webmention s t) + (process-new-webmention s t)) + ;; trigger webhook + (webhook/trigger :on-receive)) ;; if content-type check fails (timbre/error "Source or target is not HTML or plain text; or error occurred trying to get content type.")))) (recur))) diff --git a/src/weepinbell/webhook.clj b/src/weepinbell/webhook.clj new file mode 100644 index 0000000..cfd796e --- /dev/null +++ b/src/weepinbell/webhook.clj @@ -0,0 +1,12 @@ +(ns weepinbell.webhook + (:require [clj-http.client :as client] + [taoensso.timbre :as timbre] + [weepinbell.config :refer [get-config]])) + +(defn trigger [keyw] + ;; keyw = on-receive... + (when-let [hooks (get (get-config :webhook) keyw)] + (doall (map #((client/post %) + (timbre/info "Webhook triggered: " %)) + hooks)))) + |
