summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go')
-rw-r--r--vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go155
1 files changed, 0 insertions, 155 deletions
diff --git a/vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go b/vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go
deleted file mode 100644
index 6d0f64f3..00000000
--- a/vendor/github.com/Baozisoftware/qrcode-terminal-go/qrcodeTerminal.go
+++ /dev/null
@@ -1,155 +0,0 @@
-package qrcodeTerminal
-
-import (
- "fmt"
-
- "github.com/skip2/go-qrcode"
- "github.com/mattn/go-colorable"
- "image/png"
- nbytes "bytes"
-)
-
-type consoleColor string
-type consoleColors struct {
- NormalBlack consoleColor
- NormalRed consoleColor
- NormalGreen consoleColor
- NormalYellow consoleColor
- NormalBlue consoleColor
- NormalMagenta consoleColor
- NormalCyan consoleColor
- NormalWhite consoleColor
- BrightBlack consoleColor
- BrightRed consoleColor
- BrightGreen consoleColor
- BrightYellow consoleColor
- BrightBlue consoleColor
- BrightMagenta consoleColor
- BrightCyan consoleColor
- BrightWhite consoleColor
-}
-type qrcodeRecoveryLevel qrcode.RecoveryLevel
-type qrcodeRecoveryLevels struct {
- Low qrcodeRecoveryLevel
- Medium qrcodeRecoveryLevel
- High qrcodeRecoveryLevel
- Highest qrcodeRecoveryLevel
-}
-
-var (
- ConsoleColors consoleColors = consoleColors{
- NormalBlack: "\033[38;5;0m \033[0m",
- NormalRed: "\033[38;5;1m \033[0m",
- NormalGreen: "\033[38;5;2m \033[0m",
- NormalYellow: "\033[38;5;3m \033[0m",
- NormalBlue: "\033[38;5;4m \033[0m",
- NormalMagenta: "\033[38;5;5m \033[0m",
- NormalCyan: "\033[38;5;6m \033[0m",
- NormalWhite: "\033[38;5;7m \033[0m",
- BrightBlack: "\033[48;5;0m \033[0m",
- BrightRed: "\033[48;5;1m \033[0m",
- BrightGreen: "\033[48;5;2m \033[0m",
- BrightYellow: "\033[48;5;3m \033[0m",
- BrightBlue: "\033[48;5;4m \033[0m",
- BrightMagenta: "\033[48;5;5m \033[0m",
- BrightCyan: "\033[48;5;6m \033[0m",
- BrightWhite: "\033[48;5;7m \033[0m"}
- QRCodeRecoveryLevels = qrcodeRecoveryLevels{
- Low: qrcodeRecoveryLevel(qrcode.Low),
- Medium: qrcodeRecoveryLevel(qrcode.Medium),
- High: qrcodeRecoveryLevel(qrcode.High),
- Highest: qrcodeRecoveryLevel(qrcode.Highest)}
-)
-
-type QRCodeString string
-
-func (v *QRCodeString) Print() {
- fmt.Fprint(outer, *v)
-}
-
-type qrcodeTerminal struct {
- front consoleColor
- back consoleColor
- level qrcodeRecoveryLevel
-}
-
-func (v *qrcodeTerminal) Get(content interface{}) (result *QRCodeString) {
- var qr *qrcode.QRCode
- var err error
- if t, ok := content.(string); ok {
- qr, err = qrcode.New(t, qrcode.RecoveryLevel(v.level))
- } else if t, ok := content.([]byte); ok {
- qr, err = qrcode.New(string(t), qrcode.RecoveryLevel(v.level))
- }
- if qr != nil && err == nil {
- data := qr.Bitmap()
- result = v.getQRCodeString(data)
- }
- return
-}
-
-func (v *qrcodeTerminal) Get2(bytes []byte) (result *QRCodeString) {
- data, err := parseQR(bytes)
- if err == nil {
- result = v.getQRCodeString(data)
- }
- return
-}
-
-func New2(front, back consoleColor, level qrcodeRecoveryLevel) *qrcodeTerminal {
- obj := qrcodeTerminal{front: front, back: back, level: level}
- return &obj
-}
-
-func New() *qrcodeTerminal {
- front, back, level := ConsoleColors.BrightBlack, ConsoleColors.BrightWhite, QRCodeRecoveryLevels.Medium
- return New2(front, back, level)
-}
-
-func (v *qrcodeTerminal) getQRCodeString(data [][]bool) (result *QRCodeString) {
- str := ""
- for ir, row := range data {
- lr := len(row)
- if ir == 0 || ir == 1 || ir == 2 ||
- ir == lr-1 || ir == lr-2 || ir == lr-3 {
- continue
- }
- for ic, col := range row {
- lc := len(data)
- if ic == 0 || ic == 1 || ic == 2 ||
- ic == lc-1 || ic == lc-2 || ic == lc-3 {
- continue
- }
- if col {
- str += fmt.Sprint(v.front)
- } else {
- str += fmt.Sprint(v.back)
- }
- }
- str += fmt.Sprintln()
- }
- obj := QRCodeString(str)
- result = &obj
- return
-}
-
-func parseQR(bytes []byte) (data [][]bool, err error) {
- r := nbytes.NewReader(bytes)
- img, err := png.Decode(r)
- if err == nil {
- rect := img.Bounds()
- mx, my := rect.Max.X, rect.Max.Y
- data = make([][]bool, mx)
- for x := 0; x < mx; x++ {
- data[x] = make([]bool, my)
- for y := 0; y < my; y++ {
- c := img.At(x, y)
- r, _, _, _ := c.RGBA()
- data[x][y] = r == 0
- }
- }
- }
- return
-}
-
-var outer = colorable.NewColorableStdout()