Tidying up some menu items.
[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                     (begin
25                       (print "Welcome back, " user "!\n")
26                       (print "You have visited your garden " visits " times.\n"))
27                     (begin
28                       (print "Welcome to your new garden, " user "!\n"
29                              "\n"
30                              "## !!Important!!\n\n"
31                              "To visit and check on your garden, you'll need to use this link:\n"
32                              (uri->string uri) "\n"
33                              "Remember to bookmark it to keep it safe!\n")))
34
35                 (update-garden! g)
36                 (with-output-to-file (make-pathname "accounts" hash)
37                   (lambda ()
38                     (write g)))
39
40                 (print "```")
41                 (display-garden g)
42                 (print "```")
43                 (describe-garden g)
44
45                 (print "\nWater level:")
46                 (print "```")
47                 (display-water-level g)
48                 (print "```")
49
50                 (print "\n## Menu")
51                 (print "\n=> water.scm?" hash " Water plant\n")
52
53                 (when (= (garden-prop 'stage-idx g) 5)
54                     (print "=> plant-new.scm?" hash " Plant a new seed\n"))
55
56                 (print
57                        "=> help.scm?" hash " Caring for your plant (Instructions)\n"
58                        "\n"
59                        "=> delete-confirm.scm?" hash " Delete garden (Irreversible!)\n"
60                        "\n"
61                        "=> ./ μBotany start page"))
62             
63             (o (exn)
64                (print "This garden no longer exists.\n\n"
65                       "=> register.scm Register to create another.")))))))
66