From cc4bb991b2f784c75279f164dbec7852a13896b5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B6rn=20Lindqvist?= Date: Sun, 4 Oct 2015 03:07:29 +0200 Subject: [PATCH] webapps.wiki.example: new vocab to show how the wiki webapp should be run it's a little tricky to figure out so a vocab demonstrating it is useful --- .../furnace/recaptcha/example/example.factor | 11 ++-- extra/webapps/wiki/example/example.factor | 54 +++++++++++++++++++ extra/webapps/wiki/wiki.factor | 15 ------ 3 files changed, 61 insertions(+), 19 deletions(-) create mode 100644 extra/webapps/wiki/example/example.factor diff --git a/basis/furnace/recaptcha/example/example.factor b/basis/furnace/recaptcha/example/example.factor index 3650e2bcf9..6c2acc541e 100644 --- a/basis/furnace/recaptcha/example/example.factor +++ b/basis/furnace/recaptcha/example/example.factor @@ -17,11 +17,14 @@ TUPLE: recaptcha-app < dispatcher recaptcha ; [ "?good" >url ] >>submit { recaptcha-app "example" } >>template ; +: ( responder -- recaptcha ) + + "concatenative.org" >>domain + "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key + "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key ; + : ( -- obj ) \ recaptcha-app new-dispatcher "" add-responder - - "concatenative.org" >>domain - "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key - "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key + recaptcha-db ; diff --git a/extra/webapps/wiki/example/example.factor b/extra/webapps/wiki/example/example.factor new file mode 100644 index 0000000000..99c005f96e --- /dev/null +++ b/extra/webapps/wiki/example/example.factor @@ -0,0 +1,54 @@ +USING: accessors calendar db db.sqlite db.tuples furnace.alloy +furnace.recaptcha.example http.server io.directories +io.encodings.ascii io.files io.files.temp io.servers +io.sockets.secure.debug kernel namespaces sequences splitting +webapps.wiki websites.concatenative ; +IN: webapps.wiki.example + +: wiki-db ( -- db ) + "wiki.db" temp-file ; + +: insert-page ( file-name -- ) + dup ".txt" ?tail [ + swap ascii file-contents + f + swap >>content + swap >>title + "slava" >>author + now >>date + add-revision + ] [ 2drop ] if ; + +: insert-pages ( -- ) + "resource:extra/webapps/wiki/initial-content" [ + [ insert-page ] each + ] with-directory-files ; + +: init-wiki-db ( -- ) + wiki-db [ + init-furnace-tables + article ensure-table + revision ensure-table + insert-pages + ] with-db ; + +: ( -- dispatcher ) + + + + + wiki-db ; + +: ( -- threaded-server ) + + >>secure-config + 8080 >>insecure + 8431 >>secure ; + +: run-wiki ( -- ) + init-wiki-db + main-responder set-global + wiki-db start-expiring + start-server drop ; + +MAIN: run-wiki diff --git a/extra/webapps/wiki/wiki.factor b/extra/webapps/wiki/wiki.factor index ce3dd31d92..5339a3d654 100644 --- a/extra/webapps/wiki/wiki.factor +++ b/extra/webapps/wiki/wiki.factor @@ -370,18 +370,3 @@ M: revision feed-entry-url id>> revision-url ; [ init-sidebars init-relative-link-prefix ] >>init { wiki "wiki-common" } >>template ; - -: init-wiki ( -- ) - "resource:extra/webapps/wiki/initial-content" [ - [ - dup ".txt" ?tail [ - swap ascii file-contents - f - swap >>content - swap >>title - "slava" >>author - now >>date - add-revision - ] [ 2drop ] if - ] each - ] with-directory-files ; -- 2.34.1