From bc895f84b4e13cd8dc5781c7e7b0e287313245a2 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 17 Sep 2009 09:13:33 -0700 Subject: [PATCH] fix recaptcha, move to furnace.recaptcha --- .../{chloe-tags => }/recaptcha/authors.txt | 0 .../recaptcha/recaptcha-docs.factor | 32 ++++++++++++------- .../recaptcha/recaptcha.factor | 11 ++++--- .../{chloe-tags => }/recaptcha/recaptcha.xml | 0 .../{chloe-tags => }/recaptcha/summary.txt | 0 .../{chloe-tags => }/recaptcha/tags.txt | 0 6 files changed, 26 insertions(+), 17 deletions(-) rename basis/furnace/{chloe-tags => }/recaptcha/authors.txt (100%) rename basis/furnace/{chloe-tags => }/recaptcha/recaptcha-docs.factor (71%) rename basis/furnace/{chloe-tags => }/recaptcha/recaptcha.factor (88%) rename basis/furnace/{chloe-tags => }/recaptcha/recaptcha.xml (100%) rename basis/furnace/{chloe-tags => }/recaptcha/summary.txt (100%) rename basis/furnace/{chloe-tags => }/recaptcha/tags.txt (100%) diff --git a/basis/furnace/chloe-tags/recaptcha/authors.txt b/basis/furnace/recaptcha/authors.txt similarity index 100% rename from basis/furnace/chloe-tags/recaptcha/authors.txt rename to basis/furnace/recaptcha/authors.txt diff --git a/basis/furnace/chloe-tags/recaptcha/recaptcha-docs.factor b/basis/furnace/recaptcha/recaptcha-docs.factor similarity index 71% rename from basis/furnace/chloe-tags/recaptcha/recaptcha-docs.factor rename to basis/furnace/recaptcha/recaptcha-docs.factor index 0d93949f53..90d4a8195c 100644 --- a/basis/furnace/chloe-tags/recaptcha/recaptcha-docs.factor +++ b/basis/furnace/recaptcha/recaptcha-docs.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2009 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: help.markup help.syntax http.server.filters kernel -multiline furnace.actions ; -IN: furnace.chloe-tags.recaptcha +multiline furnace.actions furnace.alloy ; +IN: furnace.recaptcha HELP: { $values @@ -30,20 +30,27 @@ ARTICLE: "recaptcha-example" "Recaptcha example" "An example follows:" { $code HEREDOC: RECAPTCHA-TUTORIAL +USING: db.sqlite kernel http.server.dispatchers db.sqlite +furnace.actions furnace.recaptcha furnace.conversations +furnace.redirection xml.syntax html.templates.chloe.compiler +io.streams.string http.server.responses furnace.alloy http.server ; TUPLE: recaptcha-app < dispatcher recaptcha ; +: recaptcha-db ( -- obj ) + "recaptcha-example" ; + : ( -- obj ) [ + begin-conversation validate-recaptcha - recaptcha-valid? get "?good" "?bad" ? + recaptcha-valid? cget "?good" "?bad" ? >url ] >>submit [ - -{" - - -"} >>body + +
+ XML> + compile-template [ call( -- ) ] with-string-writer "text/html" ] >>display ; : ( -- obj ) @@ -51,8 +58,9 @@ TUPLE: recaptcha-app < dispatcher recaptcha ; "" add-responder "concatenative.org" >>domain - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" >>public-key - "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" >>private-key ; + "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key + "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key + recaptcha-db ; main-responder set-global RECAPTCHA-TUTORIAL @@ -60,7 +68,7 @@ RECAPTCHA-TUTORIAL ; -ARTICLE: "furnace.chloe-tags.recaptcha" "Recaptcha chloe tag" +ARTICLE: "furnace.recaptcha" "Recaptcha" "The " { $vocab-link "furnace.chloe-tags.recaptcha" } " vocabulary implements support for the Recaptcha. Recaptcha is a web service that provides the user with a captcha, a test that is easy to solve by visual inspection, but hard to solve by writing a computer program. Use a captcha to protect forms from abusive users." $nl "The recaptcha responder is a " { $link filter-responder } " that wraps another responder. Set the " { $slot "domain" } ", " { $slot "public-key" } ", and " { $slot "private-key" } " slots of this responder to your Recaptcha account information." $nl @@ -74,4 +82,4 @@ ARTICLE: "furnace.chloe-tags.recaptcha" "Recaptcha chloe tag" { $subsection recaptcha-error } { $subsection "recaptcha-example" } ; -ABOUT: "furnace.chloe-tags.recaptcha" +ABOUT: "furnace.recaptcha" diff --git a/basis/furnace/chloe-tags/recaptcha/recaptcha.factor b/basis/furnace/recaptcha/recaptcha.factor similarity index 88% rename from basis/furnace/chloe-tags/recaptcha/recaptcha.factor rename to basis/furnace/recaptcha/recaptcha.factor index 81744dc0e0..99b223b8e3 100644 --- a/basis/furnace/chloe-tags/recaptcha/recaptcha.factor +++ b/basis/furnace/recaptcha/recaptcha.factor @@ -4,8 +4,8 @@ USING: accessors furnace.actions furnace.redirection html.forms html.templates.chloe.compiler html.templates.chloe.syntax http.client http.server http.server.filters io.sockets kernel locals namespaces sequences splitting urls validators -xml.syntax ; -IN: furnace.chloe-tags.recaptcha +xml.syntax furnace.conversations ; +IN: furnace.recaptcha TUPLE: recaptcha < filter-responder domain public-key private-key ; @@ -38,8 +38,9 @@ M: recaptcha call-responder* XML] ; : recaptcha-url ( secure? -- ? ) - [ "https://api.recaptcha.net/challenge" >url ] - [ "http://api.recaptcha.net/challenge" >url ] if ; + [ "https://api.recaptcha.net/challenge" ] + [ "http://api.recaptcha.net/challenge" ] if + recaptcha-error cget [ "?error=" glue ] when* >url ; : render-recaptcha ( -- xml ) secure-connection? recaptcha-url @@ -72,4 +73,4 @@ PRIVATE> "recaptcha_challenge_field" value "recaptcha_response_field" value \ recaptcha get (validate-recaptcha) - [ recaptcha-valid? set ] [ recaptcha-error set ] bi* ; + [ recaptcha-valid? cset ] [ recaptcha-error cset ] bi* ; diff --git a/basis/furnace/chloe-tags/recaptcha/recaptcha.xml b/basis/furnace/recaptcha/recaptcha.xml similarity index 100% rename from basis/furnace/chloe-tags/recaptcha/recaptcha.xml rename to basis/furnace/recaptcha/recaptcha.xml diff --git a/basis/furnace/chloe-tags/recaptcha/summary.txt b/basis/furnace/recaptcha/summary.txt similarity index 100% rename from basis/furnace/chloe-tags/recaptcha/summary.txt rename to basis/furnace/recaptcha/summary.txt diff --git a/basis/furnace/chloe-tags/recaptcha/tags.txt b/basis/furnace/recaptcha/tags.txt similarity index 100% rename from basis/furnace/chloe-tags/recaptcha/tags.txt rename to basis/furnace/recaptcha/tags.txt