Removed visit count from view.
[microbotany.git] / view.scm
1 ;; View a garden
2 ;;
3
4 (lambda (uri)
5   (import
6     (chicken condition)
7     (chicken file)
8     uri-common)
9   (for-each eval (with-input-from-file "garden.scm" read-list))
10   (serve-document-header (ext->mime "gmi"))
11   (let ((query (uri-query uri)))
12     (if (null? query)
13         (begin
14           (print "=> register.scm Please register first."))
15         (let ((hash (symbol->string (caar query))))
16           (condition-case
17               (let* ((g (with-input-from-file (make-pathname "accounts" hash) read))
18                      (user (garden-prop 'user g))
19                      (visits (+ 1 (garden-prop 'visits g))))
20                 (garden-prop-set! 'visits visits g)
21
22                 (print "# " user "'s garden\n")
23                 (if (> visits 1)
24                     (print "Welcome back, " user "!\n")
25                     (begin
26                       (print "Welcome to your new garden, " user "!\n"
27                              "\n"
28                              "## !!Important!!\n\n"
29                              "To visit and check on your garden, you'll need to use this link:\n"
30                              (uri->string uri) "\n"
31                              "Remember to bookmark it to keep it safe!\n")))
32
33                 (update-garden! g)
34                 (with-output-to-file (make-pathname "accounts" hash)
35                   (lambda ()
36                     (write g)))
37
38                 (print "```")
39                 (display-garden g)
40                 (print "```")
41                 (describe-garden g)
42
43                 (print "\nWater level:")
44                 (print "```")
45                 (display-water-level g)
46                 (print "```")
47
48                 (print "\n## Menu")
49                 (print "\n=> water.scm?" hash " Water plant\n")
50
51                 (when (= (garden-prop 'stage-idx g) 5)
52                     (print "=> plant-new.scm?" hash " Plant a new seed\n"))
53
54                 (print
55                        "=> help.scm?" hash " Caring for your plant (Instructions)\n"
56                        "\n"
57                        "=> delete-confirm.scm?" hash " Delete garden (Irreversible!)\n"
58                        "\n"
59                        "=> ./ μBotany start page"))
60             
61             (o (exn)
62                (print "This garden no longer exists.\n\n"
63                       "=> register.scm Register to create another.")))))))
64