| 
									
										
										
										
											2012-09-03 03:49:03 +08:00
										 |  |  | // Copyright 2009 The Go Authors. All rights reserved. | 
					
						
							|  |  |  | // Use of this source code is governed by a BSD-style | 
					
						
							|  |  |  | // license that can be found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-21 09:46:19 +10:00
										 |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"flag" | 
					
						
							| 
									
										
										
										
											2012-09-13 13:41:13 -07:00
										 |  |  | 	"html/template" | 
					
						
							| 
									
										
										
										
											2011-08-21 09:46:19 +10:00
										 |  |  | 	"log" | 
					
						
							| 
									
										
										
										
											2011-11-08 15:43:02 -08:00
										 |  |  | 	"net/http" | 
					
						
							| 
									
										
										
										
											2011-08-21 09:46:19 +10:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 .}} | 
					
						
							| 
									
										
										
										
											2012-09-13 13:41:13 -07:00
										 |  |  | <img src="http://chart.apis.google.com/chart?chs=300x300&cht=qr&choe=UTF-8&chl={{.}}" /> | 
					
						
							| 
									
										
										
										
											2011-08-21 09:46:19 +10:00
										 |  |  | <br> | 
					
						
							| 
									
										
										
										
											2012-09-13 13:41:13 -07:00
										 |  |  | {{.}} | 
					
						
							| 
									
										
										
										
											2011-08-21 09:46:19 +10:00
										 |  |  | <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> | 
					
						
							|  |  |  | ` |