Source file
doc/progs/eff_qr.go
1
2
3
4
5 package main
6
7 import (
8 "flag"
9 "html/template"
10 "log"
11 "net/http"
12 )
13
14 var addr = flag.String("addr", ":1718", "http service address")
15
16 var templ = template.Must(template.New("qr").Parse(templateStr))
17
18 func main() {
19 flag.Parse()
20 http.Handle("/", http.HandlerFunc(QR))
21 err := http.ListenAndServe(*addr, nil)
22 if err != nil {
23 log.Fatal("ListenAndServe:", err)
24 }
25 }
26
27 func QR(w http.ResponseWriter, req *http.Request) {
28 templ.Execute(w, req.FormValue("s"))
29 }
30
31 const templateStr = `
32 <html>
33 <head>
34 <title>QR Link Generator</title>
35 </head>
36 <body>
37 {{if .}}
38 <img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl={{.}}" />
39 <br>
40 {{.}}
41 <br>
42 <br>
43 {{end}}
44 <form action="/" name=f method="GET">
45 <input maxLength=1024 size=70 name=s value="" title="Text to QR Encode">
46 <input type=submit value="Show QR" name=qr>
47 </form>
48 </body>
49 </html>
50 `
51
View as plain text