[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 21/49: examples/web: Respond with HTML.
From: |
gnunet |
Subject: |
[gnunet-scheme] 21/49: examples/web: Respond with HTML. |
Date: |
Sat, 25 Dec 2021 22:59:58 +0100 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit f5d5053579ba06aaadaf5a6c238d1d883f09211a
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Sat Sep 25 15:22:32 2021 +0200
examples/web: Respond with HTML.
It makes the interface a little nicer, and it will help with
creating forms for submitting GETs and PUTs.
* examples/web.scm
(respond/html, estimate->html): New procedures.
(url-handler): Use it instead of outputting plain text.
---
examples/web.scm | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/examples/web.scm b/examples/web.scm
index a70f3f4..b39cdba 100644
--- a/examples/web.scm
+++ b/examples/web.scm
@@ -17,21 +17,39 @@
#:prefix #{nse:}#)
((gnu gnunet dht client)
#:prefix #{dht:}#)
+ (web response)
(web server)
- (srfi srfi-11))
+ (srfi srfi-11)
+ (sxml simple))
(define config (load-configuration))
+(define (respond/html body)
+ (values (build-response
+ #:code 200
+ #:headers `((content-type application/xhtml+xml) (charset .
"utf-8")))
+ (lambda (port)
+ (display "<!DOCTYPE html>\n" port)
+ (sxml->xml `(html (@ (xmlns "http://www.w3.org/1999/xhtml"))
+ (head (title "Hello"))
+ (body ,body))
+ port))))
+
+(define (estimate->html estimate)
+ `(dl (dt "Timestamp")
+ (dd ,(number->string (nse:estimate:timestamp estimate)))
+ (dt "Number of peers")
+ (dd ,(number->string (nse:estimate:number-peers estimate)))
+ (dt "Standard deviation")
+ (dd ,(number->string (nse:estimate:standard-deviation estimate)))))
+
(define (url-handler server request body)
(define current-estimate (nse:estimate server))
(define body
(if current-estimate
- (format #f "timestamp: ~a~%number peers: ~a~%stddev logarithm: ~a"
- (nse:estimate:timestamp current-estimate)
- (nse:estimate:number-peers current-estimate)
- (nse:estimate:standard-deviation current-estimate))
- "no estimate available yet ..."))
- (values '((content-type text/plain)) body #f))
+ (estimate->html current-estimate)
+ '(p "No estimate yet")))
+ (respond/html body))
(define (start config)
(define nse-server (nse:connect config))
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] 49/49: crypto: Fix type confusion in hash-slice [bugfix], (continued)
- [gnunet-scheme] 49/49: crypto: Fix type confusion in hash-slice [bugfix], gnunet, 2021/12/25
- [gnunet-scheme] 18/49: dht/client: Correct struct access when verifying messages., gnunet, 2021/12/25
- [gnunet-scheme] 26/49: examples/web.scm: Parse the answer to the DHT insertion form., gnunet, 2021/12/25
- [gnunet-scheme] 25/49: web/form: New module., gnunet, 2021/12/25
- [gnunet-scheme] 28/49: dht/client: Copy the key into the put message., gnunet, 2021/12/25
- [gnunet-scheme] 29/49: guix: Add guile-gcrypt., gnunet, 2021/12/25
- [gnunet-scheme] 44/49: guix: Skip tests in guile package., gnunet, 2021/12/25
- [gnunet-scheme] 37/49: examples/web: Correct destination of search form., gnunet, 2021/12/25
- [gnunet-scheme] 30/49: doc: Remove URLs., gnunet, 2021/12/25
- [gnunet-scheme] 39/49: examples/web: Dissect search result., gnunet, 2021/12/25
- [gnunet-scheme] 21/49: examples/web: Respond with HTML.,
gnunet <=
- [gnunet-scheme] 31/49: doc: Document dependency on Guile-Gcrypt., gnunet, 2021/12/25
- [gnunet-scheme] 41/49: dht/client: Impose some bounds on the replication level., gnunet, 2021/12/25
- [gnunet-scheme] 36/49: examples/web: License as AGPL., gnunet, 2021/12/25
- [gnunet-scheme] 42/49: dht/client: Resolve race condition., gnunet, 2021/12/25
- [gnunet-scheme] 48/49: examples/web (search-dht): Fail gracefully in case of invalid input, gnunet, 2021/12/25