diff options
Diffstat (limited to 'doc/progs/eff_qr.go')
| -rw-r--r-- | doc/progs/eff_qr.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/progs/eff_qr.go b/doc/progs/eff_qr.go new file mode 100644 index 000000000..5d1fd38e0 --- /dev/null +++ b/doc/progs/eff_qr.go @@ -0,0 +1,46 @@ +package main + +import ( + "flag" + "http" + "log" + "template" +) + +var addr = flag.String("addr", ":1718", "http service address") // Q=17, R=18 + +var templ = template.Must(template.New("qr").Parse(templateStr)) + +func main() { + flag.Parse() + http.Handle("/", http.HandlerFunc(QR)) + err := http.ListenAndServe(*addr, nil) + if err != nil { + log.Fatal("ListenAndServe:", err) + } +} + +func QR(w http.ResponseWriter, req *http.Request) { + templ.Execute(w, req.FormValue("s")) +} + +const templateStr = ` +<html> +<head> +<title>QR Link Generator</title> +</head> +<body> +{{if .}} +<img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl={{urlquery .}}" /> +<br> +{{html .}} +<br> +<br> +{{end}} +<form action="/" name=f method="GET"><input maxLength=1024 size=70 +name=s value="" title="Text to QR Encode"><input type=submit +value="Show QR" name=qr> +</form> +</body> +</html> +` |
