Updated with more query params
Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
parent
489a398a7f
commit
9a2511e146
45
main.go
45
main.go
@ -2,20 +2,55 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
qrcode "github.com/skip2/go-qrcode"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
qrcode "github.com/skip2/go-qrcode"
|
||||
)
|
||||
|
||||
func main() {
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
|
||||
website := req.URL.Query().Get("website")
|
||||
if website != "" {
|
||||
png, _ := qrcode.Encode(website, qrcode.Medium, 80)
|
||||
data := ""
|
||||
if req.URL.Query().Get("website") != "" {
|
||||
data = req.URL.Query().Get("website")
|
||||
} else if req.URL.Query().Get("url") != "" {
|
||||
data = req.URL.Query().Get("url")
|
||||
} else if req.URL.Query().Get("data") != "" {
|
||||
data = req.URL.Query().Get("data")
|
||||
} else if req.URL.Query().Get("text") != "" {
|
||||
data = req.URL.Query().Get("text")
|
||||
}
|
||||
|
||||
size := 150
|
||||
if req.URL.Query().Get("size") != "" {
|
||||
i, err := strconv.Atoi(req.URL.Query().Get("size"))
|
||||
if err == nil {
|
||||
size = i
|
||||
}
|
||||
}
|
||||
|
||||
disableBorder := false
|
||||
if req.URL.Query().Get("disableBorder") != "" {
|
||||
disableBorder = true
|
||||
}
|
||||
|
||||
if data != "" {
|
||||
code, _ := qrcode.New(data, qrcode.Medium)
|
||||
code.DisableBorder = disableBorder
|
||||
png, _ := code.PNG(size)
|
||||
w.Header().Set("Content-Type", "image/png")
|
||||
w.Write(png)
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(400)
|
||||
w.Write([]byte(`<html><head><title>QR Code</title></head><body>
|
||||
<form action="/" method="GET" style="margin: 1em auto; text-align: center;">
|
||||
<label>Website: <input type="text" name="website" /></label><br/>
|
||||
<label>Size: <input type="text" name="size" value="150" /></label><br/>
|
||||
<label>Disable border: <input type="checkbox" name="disableBorder" /></label><br/>
|
||||
<input type="submit"/>
|
||||
</form>
|
||||
</body></html>`))
|
||||
})
|
||||
fmt.Println(http.ListenAndServe(":8080", nil))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user