summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/weepinbell/handler.clj7
-rw-r--r--src/weepinbell/retriever.clj11
2 files changed, 14 insertions, 4 deletions
diff --git a/src/weepinbell/handler.clj b/src/weepinbell/handler.clj
index f224cb0..d13413d 100644
--- a/src/weepinbell/handler.clj
+++ b/src/weepinbell/handler.clj
@@ -29,6 +29,13 @@
(context "/mentions" []
(GET "/" [url] (retriever/by-url url))
(GET "/:domain" [domain] (retriever/by-domain domain)))
+ ;; query webmention list by microformats type
+ (context "/likes" []
+ (GET "/:domain" [domain] (retriever/by-domain domain :like-of)))
+ (context "/reposts" []
+ (GET "/:domain" [domain] (retriever/by-domain domain :repost-of)))
+ (context "/replies" []
+ (GET "/:domain" [domain] (retriever/by-domain domain :in-reply-to)))
;; query one specific webmention
(context "/mention" []
(GET "/:id" [id] (retriever/by-id id))
diff --git a/src/weepinbell/retriever.clj b/src/weepinbell/retriever.clj
index 5c052ed..da6868b 100644
--- a/src/weepinbell/retriever.clj
+++ b/src/weepinbell/retriever.clj
@@ -29,10 +29,13 @@
(defn by-domain
"Get webmentions sent to a particular domain."
- [domain]
- (-> (storage/get-wms-by-domain domain)
- wrap-response-list
- respond-json))
+ ([domain]
+ (by-domain domain nil))
+ ([domain mftype]
+ (cond->> (storage/get-wms-by-domain domain)
+ true wrap-response-list
+ mftype (filter #(= (-> % :microformats :type) mftype))
+ true respond-json)))
(defn by-url
"Get webmention sent to a particular URL."