diff options
Diffstat (limited to 'haunt/jakob/dynamic/capabilities/comments.scm')
| -rw-r--r-- | haunt/jakob/dynamic/capabilities/comments.scm | 26 |
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)))) |