summaryrefslogtreecommitdiff
path: root/haunt/jakob/dynamic/capabilities/comments.scm
diff options
context:
space:
mode:
Diffstat (limited to 'haunt/jakob/dynamic/capabilities/comments.scm')
-rw-r--r--haunt/jakob/dynamic/capabilities/comments.scm26
1 files changed, 12 insertions, 14 deletions
diff --git a/haunt/jakob/dynamic/capabilities/comments.scm b/haunt/jakob/dynamic/capabilities/comments.scm
index 72067b4..54e1846 100644
--- a/haunt/jakob/dynamic/capabilities/comments.scm
+++ b/haunt/jakob/dynamic/capabilities/comments.scm
@@ -80,11 +80,18 @@ This is a wrapper around `get-comments-by-slug'."
(and (assoc "slug" form-data)
(assoc "name" form-data)
(assoc "comment" form-data)
- (assoc "captcha" form-data)
+ (or (assoc "captcha" form-data)
+ (and (assoc "captcha-alt" form-data)
+ (assoc "captcha-alt-id" form-data)))
(assoc "captcha-id" form-data)
- (validate-captcha!
- (assoc-value form-data "captcha")
- (string->number (assoc-value form-data "captcha-id")))))
+ (if (and (string? (assoc-value form-data "captcha-alt"))
+ (positive? (string-length (assoc-value form-data "captcha-alt"))))
+ (validate-proof-of-work!
+ (assoc-value form-data "captcha-alt")
+ (string->number (assoc-value form-data "captcha-alt-id")))
+ (validate-captcha!
+ (assoc-value form-data "captcha")
+ (string->number (assoc-value form-data "captcha-id"))))))
(define (insert-comment form-data)
(exec-query conn
"INSERT INTO comments (submitted, slug, name, subject,
@@ -132,7 +139,7 @@ This is a wrapper around `get-comments-by-slug'."
(form-data (if query-string
(decode-form query-string)
'())))
- (if (valid-reaction? form-data)
+ (if (valid-reaction? form-data)
(let ((id (assoc-value form-data "id"))
(reaction (assoc-value form-data "reaction"))
(reactions (comment-reactions id)))
@@ -149,12 +156,3 @@ This is a wrapper around `get-comments-by-slug'."
(scm->json-string
`((success . #f)
(error . "missing `id', or `reaction'")))))))
-
-;; (define (make-challenge request body)
-;; (let-values (((uuid value image) (new-captcha)))
-;; (hash-set! challenges uuid value)
-;; (hash-for-each (lambda (x y) (display x) (newline)) challenges)
-;; (values `((content-type . (application/base64))
-;; (access-control-allow-origin . "*")
-;; (x-captcha-id . ,uuid))
-;; (base64-encode image))))