first commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package widgets
|
||||
|
||||
import (
|
||||
"ArinDash/config"
|
||||
"ArinDash/util"
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/mum4k/termdash/terminal/terminalapi"
|
||||
"github.com/mum4k/termdash/widgetapi"
|
||||
"github.com/mum4k/termdash/widgets/text"
|
||||
)
|
||||
|
||||
type configFile struct {
|
||||
Wifi wifiConfig
|
||||
}
|
||||
|
||||
type wifiConfig struct {
|
||||
Auth string
|
||||
SSID string
|
||||
Password string
|
||||
}
|
||||
|
||||
const template = "WIFI:T:%s;S:%s;P:%s;;"
|
||||
|
||||
type WifiQRCodeOptions struct {
|
||||
}
|
||||
|
||||
func WifiQRCode() WifiQRCodeOptions {
|
||||
widgetOptions["WifiQRCodeOptions"] = createWifiQRCode
|
||||
return WifiQRCodeOptions{}
|
||||
}
|
||||
|
||||
func createWifiQRCode(_ context.Context, _ terminalapi.Terminal, _ interface{}) widgetapi.Widget {
|
||||
cfg := &configFile{}
|
||||
config.LoadConfig(cfg)
|
||||
|
||||
widget := util.PanicOnErrorWithResult(text.New())
|
||||
|
||||
util.PanicOnError(widget.Write(QrCodeASCII(fmt.Sprintf(template, cfg.Wifi.Auth, escapeSpecialChars(cfg.Wifi.SSID), escapeSpecialChars(cfg.Wifi.Password)))))
|
||||
|
||||
return widget
|
||||
}
|
||||
|
||||
func escapeSpecialChars(s string) string {
|
||||
return strings.ReplaceAll(
|
||||
strings.ReplaceAll(
|
||||
strings.ReplaceAll(
|
||||
strings.ReplaceAll(
|
||||
strings.ReplaceAll(
|
||||
s,
|
||||
"\\", "\\\\",
|
||||
),
|
||||
"\"", "\\\"",
|
||||
),
|
||||
",", "\\,",
|
||||
),
|
||||
";", "\\;",
|
||||
),
|
||||
":", "\\:",
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user