From 5130af7e1c8a6acc594f5375d838afd07babc2d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Mon, 4 Jun 2018 20:01:57 -0300 Subject: [PATCH 01/18] prettyweather: Add view configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From `curl wttr.in/:help`: ``` View options: ?0 # only current weather ?1 # current weather + 1 day ?2 # current weather + 2 days ?n # narrow version (only day and night) ?q # quiet version (no "Weather report" text) ?Q # superquiet version (no "Weather report", no city name) ?T # switch terminal sequences off (no colors) ``` Signed-off-by: Patrick José Pereira --- prettyweather/widget.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/prettyweather/widget.go b/prettyweather/widget.go index 6b838c69..5cb61446 100644 --- a/prettyweather/widget.go +++ b/prettyweather/widget.go @@ -18,6 +18,7 @@ type Widget struct { result string unit string city string + view string } func NewWidget() *Widget { @@ -42,8 +43,10 @@ func (widget *Widget) Refresh() { //this method reads the config and calls wttr.in for pretty weather func (widget *Widget) prettyWeather() { client := &http.Client{} - widget.unit, widget.city = Config.UString("wtf.mods.prettyweather.unit", "m"), Config.UString("wtf.mods.prettyweather.city", "") - req, err := http.NewRequest("GET", "https://wttr.in/"+widget.city+"?0"+"?"+widget.unit, nil) + widget.unit = Config.UString("wtf.mods.prettyweather.unit", "m") + widget.city = Config.UString("wtf.mods.prettyweather.city", "") + widget.view = Config.UString("wtf.mods.prettyweather.view", "0") + req, err := http.NewRequest("GET", "https://wttr.in/"+widget.city+"?"+widget.view+"?"+widget.unit, nil) if err != nil { widget.result = fmt.Sprintf("%s", err.Error()) return From c864313a392614a44b3e810f86e45d0f90688494 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Tue, 5 Jun 2018 13:08:44 -0700 Subject: [PATCH 02/18] Order modules in alphabetical order --- cryptoexchanges/bittrex/bittrex.go | 49 ++++++++ cryptoexchanges/bittrex/display.go | 65 ++++++++++ cryptoexchanges/bittrex/widget.go | 187 +++++++++++++++++++++++++++++ wtf.go | 3 + 4 files changed, 304 insertions(+) create mode 100644 cryptoexchanges/bittrex/bittrex.go create mode 100644 cryptoexchanges/bittrex/display.go create mode 100644 cryptoexchanges/bittrex/widget.go diff --git a/cryptoexchanges/bittrex/bittrex.go b/cryptoexchanges/bittrex/bittrex.go new file mode 100644 index 00000000..d4f4eed4 --- /dev/null +++ b/cryptoexchanges/bittrex/bittrex.go @@ -0,0 +1,49 @@ +package bittrex + +type summaryList struct { + items []*fCurrency +} + +// fCurrency From Currency +type fCurrency struct { + name string + displayName string + to []*tCurrency +} + +// tCurrency To Currency +type tCurrency struct { + name string + summaryInfo +} + +type summaryInfo struct { + Low string + High string + Volume string + Last string + OpenSellOrders string + OpenBuyOrders string +} + +type summaryResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + Result []struct { + MarketName string `json:"MarketName"` + High float64 `json:"High"` + Low float64 `json:"Low"` + Last float64 `json:"Last"` + Volume float64 `json:"Volume"` + OpenSellOrders int `json:"OpenSellOrders"` + OpenBuyOrders int `json:"OpenBuyOrders"` + } `json:"result"` +} + +func (list *summaryList) addSummaryItem(name, displayName string, toList []*tCurrency) { + list.items = append(list.items, &fCurrency{ + name: name, + displayName: displayName, + to: toList, + }) +} diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go new file mode 100644 index 00000000..28c368e5 --- /dev/null +++ b/cryptoexchanges/bittrex/display.go @@ -0,0 +1,65 @@ +package bittrex + +import ( + "bytes" + "fmt" + "text/template" +) + +func (widget *Widget) display() { + if ok == false { + widget.View.SetText(fmt.Sprintf("%s", errorText)) + return + } + + str := "" + str += summaryText(&widget.summaryList, &widget.TextColors) + + widget.View.SetText(fmt.Sprintf("%s", str)) +} + +func summaryText(list *summaryList, colors *TextColors) string { + str := "" + + for _, fromCurrency := range list.items { + str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, fromCurrency.displayName, colors.base.name, fromCurrency.name) + + resultTemplate := template.New("bittrex") + + for _, toCurrency := range fromCurrency.to { + writer := new(bytes.Buffer) + strTemplate, _ := resultTemplate.Parse( + "\t[{{.nameColor}}]{{.mName}}\n" + + formatableText("High", "High") + + formatableText("Low", "Low") + + formatableText("Last", "Last") + + formatableText("Volume", "Volume") + + formatableText("OpenSellOrders", "OpenSellOrders") + + formatableText("OpenBuyOrders", "OpenBuyOrders"), + ) + + strTemplate.Execute(writer, map[string]string{ + "nameColor": colors.market.name, + "fieldColor": colors.market.field, + "valueColor": colors.market.value, + "mName": toCurrency.name, + "High": toCurrency.High, + "Low": toCurrency.Low, + "Last": toCurrency.Last, + "Volume": toCurrency.Volume, + "OpenSellOrders": toCurrency.OpenSellOrders, + "OpenBuyOrders": toCurrency.OpenBuyOrders, + }) + + str += writer.String() + } + + } + + return str + +} + +func formatableText(key, value string) string { + return fmt.Sprintf("\t\t[{{.fieldColor}}]%s: [{{.valueColor}}]{{.%s}}\n", key, value) +} diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go new file mode 100644 index 00000000..9f5039dd --- /dev/null +++ b/cryptoexchanges/bittrex/widget.go @@ -0,0 +1,187 @@ +package bittrex + +import ( + "encoding/json" + "fmt" + "time" + + "net/http" + + "github.com/olebedev/config" + "github.com/senorprogrammer/wtf/wtf" +) + +// Config is a pointer to the global config object +var Config *config.Config + +type TextColors struct { + base struct { + name string + displayName string + } + market struct { + name string + field string + value string + } +} + +var ok = true +var errorText = "" +var started = false +var baseURL = "https://bittrex.com/api/v1.1/public/getmarketsummary" + +// Widget define wtf widget to register widget later +type Widget struct { + wtf.TextWidget + summaryList + updateInterval int + TextColors +} + +// NewWidget Make new instance of widget +func NewWidget() *Widget { + + widget := Widget{ + TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + summaryList: summaryList{}, + updateInterval: Config.UInt("wtf.mods.bittrex.updateInterval", 10), + } + + started = false + ok = true + errorText = "" + + widget.config() + widget.setSummaryList() + + return &widget +} + +func (widget *Widget) config() { + widget.TextColors.base.name = Config.UString("wtf.mods.bittrex.colors.base.name", "red") + widget.TextColors.base.displayName = Config.UString("wtf.mods.bittrex.colors.base.displayName", "grey") + widget.TextColors.market.name = Config.UString("wtf.mods.bittrex.colors.market.name", "red") + widget.TextColors.market.field = Config.UString("wtf.mods.bittrex.colors.market.field", "coral") + widget.TextColors.market.value = Config.UString("wtf.mods.bittrex.colors.market.value", "white") +} + +func (widget *Widget) setSummaryList() { + sCurrencies, _ := Config.Map("wtf.mods.bittrex.summary") + for fromCurrencyName := range sCurrencies { + displayName, _ := Config.String("wtf.mods.bittrex.summary." + fromCurrencyName + ".displayName") + toCurrencyList := makeSummaryToList(fromCurrencyName) + widget.summaryList.addSummaryItem(fromCurrencyName, displayName, toCurrencyList) + } +} + +func makeSummaryToList(currencyName string) []*tCurrency { + tCurrencyList := []*tCurrency{} + + configToList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") + for _, toCurrencyName := range configToList { + tCurrencyList = append(tCurrencyList, makeToCurrency(toCurrencyName.(string))) + } + + return tCurrencyList +} + +func makeToCurrency(name string) *tCurrency { + return &tCurrency{ + name: name, + summaryInfo: summaryInfo{ + High: "-1", + Low: "-1", + Volume: "-1", + Last: "-1", + OpenBuyOrders: "-1", + OpenSellOrders: "-1", + }, + } +} + +/* -------------------- Exported Functions -------------------- */ + +// Refresh & update after interval time +func (widget *Widget) Refresh() { + if widget.Disabled() { + return + } + + if started == false { + go func() { + for { + widget.updateSummary() + time.Sleep(time.Second * time.Duration(widget.updateInterval)) + } + }() + started = true + } + + widget.UpdateRefreshedAt() + + widget.display() + +} + +/* -------------------- Unexported Functions -------------------- */ + +func (widget *Widget) updateSummary() { + client := &http.Client{ + Timeout: time.Duration(5 * time.Second), + } + + for _, fromCurrency := range widget.summaryList.items { + for _, toCurrency := range fromCurrency.to { + request := makeRequest(fromCurrency.name, toCurrency.name) + response, err := client.Do(request) + + if err != nil { + ok = false + errorText = "Please Check Your Internet Connection!" + break + } else { + ok = true + errorText = "" + } + + if response.StatusCode != http.StatusOK { + errorText = response.Status + ok = false + break + } else { + ok = true + errorText = "" + } + + defer response.Body.Close() + jsonResponse := summaryResponse{} + decoder := json.NewDecoder(response.Body) + decoder.Decode(&jsonResponse) + + if !jsonResponse.Success { + ok = false + errorText = fmt.Sprintf("%s-%s: %s", fromCurrency.name, toCurrency.name, jsonResponse.Message) + break + } + ok = true + errorText = "" + + toCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) + toCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) + toCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) + toCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) + toCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) + toCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) + } + } + + widget.display() +} + +func makeRequest(fName, tName string) *http.Request { + url := fmt.Sprintf("%s?market=%s-%s", baseURL, fName, tName) + request, _ := http.NewRequest("GET", url, nil) + + return request +} diff --git a/wtf.go b/wtf.go index 6dd4df87..913ce02c 100644 --- a/wtf.go +++ b/wtf.go @@ -13,6 +13,7 @@ import ( "github.com/senorprogrammer/wtf/bamboohr" "github.com/senorprogrammer/wtf/clocks" "github.com/senorprogrammer/wtf/cmdrunner" + "github.com/senorprogrammer/wtf/cryptoexchanges/bittrex" "github.com/senorprogrammer/wtf/cryptoexchanges/cryptolive" "github.com/senorprogrammer/wtf/gcal" "github.com/senorprogrammer/wtf/git" @@ -157,6 +158,7 @@ var ( func makeWidgets(app *tview.Application, pages *tview.Pages) { // Always in alphabetical order bamboohr.Config = Config + bittrex.Config = Config clocks.Config = Config cmdrunner.Config = Config wtf.Config = Config @@ -181,6 +183,7 @@ func makeWidgets(app *tview.Application, pages *tview.Pages) { // Always in alphabetical order Widgets = []wtf.Wtfable{ bamboohr.NewWidget(), + bittrex.NewWidget(), clocks.NewWidget(), cmdrunner.NewWidget(), cryptolive.NewWidget(), From 1f9324f99c88c346cbead7b1f59a9f20f7816252 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:19:42 +0430 Subject: [PATCH 03/18] add module to docs --- docs/posts/modules/bittrex/index.html | 243 ++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 docs/posts/modules/bittrex/index.html diff --git a/docs/posts/modules/bittrex/index.html b/docs/posts/modules/bittrex/index.html new file mode 100644 index 00000000..13817360 --- /dev/null +++ b/docs/posts/modules/bittrex/index.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + Module: Bittrex | WTF - A Terminal Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Module: Bittrex

+ +
+ +
+ +

Get the last 24 hour summary of cryptocurrencies market.

+ +

Source Code

+
+
wtf/bittrex/
+
+

Required ENV Variables

+ +

None.

+ +

Keyboard Commands

+ +

None.

+ +

Configuration

+
+
bittrex:
+  enabled: true
+  position:
+    top: 1
+    left: 2
+    height: 1
+    width: 1
+  updateInterval: 15
+  summary: 
+   BTC:
+     displayName: Bitcoin
+     market: 
+       - ETH
+       - LTC
+   ETH:
+     displayName: Ethereum
+     market: 
+       - LTC
+  colors: 
+   base: 
+     name: red
+     displayName: grey
+   market:
+     name: red
+     field: coral
+     value: white
+
+
+
+

Attributes

+ + + +

+ enabled +
Determines whether or not this module is executed and if its data displayed onscreen. +
Values: + true, + false.

+ +

+ position +
Defines where in the grid this module’s widget will be displayed. +
+

+ +

+ updateInterval +
How often, in seconds, this module will update its data. +
Values: A positive integer +
Default Value: 10

+ +

+ colors +
Sets color of texts. +
Values: A valid color +

+ +
+ + +
+ + + + \ No newline at end of file From 40888fd29ce8e0eee1f1cba3aba25fcd9c3b02e0 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:29:58 +0430 Subject: [PATCH 04/18] avoid panics --- cryptoexchanges/bittrex/widget.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index 9f5039dd..dc85f3e2 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -127,6 +127,11 @@ func (widget *Widget) Refresh() { /* -------------------- Unexported Functions -------------------- */ func (widget *Widget) updateSummary() { + // In case if anything bad happened! + defer func() { + recover() + }() + client := &http.Client{ Timeout: time.Duration(5 * time.Second), } From 78dec649e9de5706c4636853d91958e2c4110e2c Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:57:37 +0430 Subject: [PATCH 05/18] better variable names --- cryptoexchanges/bittrex/bittrex.go | 18 +++++------ cryptoexchanges/bittrex/display.go | 20 ++++++------- cryptoexchanges/bittrex/widget.go | 48 +++++++++++++++--------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cryptoexchanges/bittrex/bittrex.go b/cryptoexchanges/bittrex/bittrex.go index d4f4eed4..c06f65cb 100644 --- a/cryptoexchanges/bittrex/bittrex.go +++ b/cryptoexchanges/bittrex/bittrex.go @@ -1,18 +1,18 @@ package bittrex type summaryList struct { - items []*fCurrency + items []*bCurrency } -// fCurrency From Currency -type fCurrency struct { +// Base Currency +type bCurrency struct { name string displayName string - to []*tCurrency + markets []*mCurrency } -// tCurrency To Currency -type tCurrency struct { +// Market Currency +type mCurrency struct { name string summaryInfo } @@ -40,10 +40,10 @@ type summaryResponse struct { } `json:"result"` } -func (list *summaryList) addSummaryItem(name, displayName string, toList []*tCurrency) { - list.items = append(list.items, &fCurrency{ +func (list *summaryList) addSummaryItem(name, displayName string, marketList []*mCurrency) { + list.items = append(list.items, &bCurrency{ name: name, displayName: displayName, - to: toList, + markets: marketList, }) } diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go index 28c368e5..29cc6124 100644 --- a/cryptoexchanges/bittrex/display.go +++ b/cryptoexchanges/bittrex/display.go @@ -21,12 +21,12 @@ func (widget *Widget) display() { func summaryText(list *summaryList, colors *TextColors) string { str := "" - for _, fromCurrency := range list.items { - str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, fromCurrency.displayName, colors.base.name, fromCurrency.name) + for _, baseCurrency := range list.items { + str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) resultTemplate := template.New("bittrex") - for _, toCurrency := range fromCurrency.to { + for _, marketCurrency := range baseCurrency.markets { writer := new(bytes.Buffer) strTemplate, _ := resultTemplate.Parse( "\t[{{.nameColor}}]{{.mName}}\n" + @@ -42,13 +42,13 @@ func summaryText(list *summaryList, colors *TextColors) string { "nameColor": colors.market.name, "fieldColor": colors.market.field, "valueColor": colors.market.value, - "mName": toCurrency.name, - "High": toCurrency.High, - "Low": toCurrency.Low, - "Last": toCurrency.Last, - "Volume": toCurrency.Volume, - "OpenSellOrders": toCurrency.OpenSellOrders, - "OpenBuyOrders": toCurrency.OpenBuyOrders, + "mName": marketCurrency.name, + "High": marketCurrency.High, + "Low": marketCurrency.Low, + "Last": marketCurrency.Last, + "Volume": marketCurrency.Volume, + "OpenSellOrders": marketCurrency.OpenSellOrders, + "OpenBuyOrders": marketCurrency.OpenBuyOrders, }) str += writer.String() diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index dc85f3e2..fd5c04ed 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -68,26 +68,26 @@ func (widget *Widget) config() { func (widget *Widget) setSummaryList() { sCurrencies, _ := Config.Map("wtf.mods.bittrex.summary") - for fromCurrencyName := range sCurrencies { - displayName, _ := Config.String("wtf.mods.bittrex.summary." + fromCurrencyName + ".displayName") - toCurrencyList := makeSummaryToList(fromCurrencyName) - widget.summaryList.addSummaryItem(fromCurrencyName, displayName, toCurrencyList) + for baseCurrencyName := range sCurrencies { + displayName, _ := Config.String("wtf.mods.bittrex.summary." + baseCurrencyName + ".displayName") + mCurrencyList := makeSummaryMarketList(baseCurrencyName) + widget.summaryList.addSummaryItem(baseCurrencyName, displayName, mCurrencyList) } } -func makeSummaryToList(currencyName string) []*tCurrency { - tCurrencyList := []*tCurrency{} +func makeSummaryMarketList(currencyName string) []*mCurrency { + mCurrencyList := []*mCurrency{} - configToList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") - for _, toCurrencyName := range configToList { - tCurrencyList = append(tCurrencyList, makeToCurrency(toCurrencyName.(string))) + configMarketList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") + for _, mCurrencyName := range configMarketList { + mCurrencyList = append(mCurrencyList, makeMarketCurrency(mCurrencyName.(string))) } - return tCurrencyList + return mCurrencyList } -func makeToCurrency(name string) *tCurrency { - return &tCurrency{ +func makeMarketCurrency(name string) *mCurrency { + return &mCurrency{ name: name, summaryInfo: summaryInfo{ High: "-1", @@ -136,9 +136,9 @@ func (widget *Widget) updateSummary() { Timeout: time.Duration(5 * time.Second), } - for _, fromCurrency := range widget.summaryList.items { - for _, toCurrency := range fromCurrency.to { - request := makeRequest(fromCurrency.name, toCurrency.name) + for _, baseCurrency := range widget.summaryList.items { + for _, mCurrency := range baseCurrency.markets { + request := makeRequest(baseCurrency.name, mCurrency.name) response, err := client.Do(request) if err != nil { @@ -166,26 +166,26 @@ func (widget *Widget) updateSummary() { if !jsonResponse.Success { ok = false - errorText = fmt.Sprintf("%s-%s: %s", fromCurrency.name, toCurrency.name, jsonResponse.Message) + errorText = fmt.Sprintf("%s-%s: %s", baseCurrency.name, mCurrency.name, jsonResponse.Message) break } ok = true errorText = "" - toCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) - toCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) - toCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) - toCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) - toCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) - toCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) + mCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) + mCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) + mCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) + mCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) + mCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) + mCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) } } widget.display() } -func makeRequest(fName, tName string) *http.Request { - url := fmt.Sprintf("%s?market=%s-%s", baseURL, fName, tName) +func makeRequest(baseName, marketName string) *http.Request { + url := fmt.Sprintf("%s?market=%s-%s", baseURL, baseName, marketName) request, _ := http.NewRequest("GET", url, nil) return request From 67f48b6f7c87b1cb8f429576097f40b7c7cc020b Mon Sep 17 00:00:00 2001 From: lucus Date: Mon, 4 Jun 2018 17:40:02 +0900 Subject: [PATCH 06/18] Fix issue #89 Better handle dns on macOS --- security/dns.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/security/dns.go b/security/dns.go index 7360d801..69edfcc3 100644 --- a/security/dns.go +++ b/security/dns.go @@ -42,7 +42,8 @@ func dnsLinux() []string { } func dnsMacOS() []string { - cmd := exec.Command("networksetup", "-getdnsservers", "Wi-Fi") + cmdString := `scutil --dns | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'` + cmd := exec.Command("sh", "-c", cmdString) out := wtf.ExecuteCommand(cmd) lines := strings.Split(out, "\n") From 0c07a26708335afd5859bbef74ff58da9f0d8483 Mon Sep 17 00:00:00 2001 From: lucus Date: Mon, 4 Jun 2018 20:58:44 +0900 Subject: [PATCH 07/18] Fix duplicated output produced by scutil --- security/dns.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/dns.go b/security/dns.go index 69edfcc3..2408c2c1 100644 --- a/security/dns.go +++ b/security/dns.go @@ -42,7 +42,7 @@ func dnsLinux() []string { } func dnsMacOS() []string { - cmdString := `scutil --dns | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'` + cmdString := `scutil --dns | head -n 7 | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'` cmd := exec.Command("sh", "-c", cmdString) out := wtf.ExecuteCommand(cmd) From 925a076808491278794cabb41bc5cf3ffacae3f7 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:10:10 +0430 Subject: [PATCH 08/18] added bittrex to docs --- .../posts/modules/cryptocurrencies/bittrex.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 _site/content/posts/modules/cryptocurrencies/bittrex.md diff --git a/_site/content/posts/modules/cryptocurrencies/bittrex.md b/_site/content/posts/modules/cryptocurrencies/bittrex.md new file mode 100644 index 00000000..4e7316fa --- /dev/null +++ b/_site/content/posts/modules/cryptocurrencies/bittrex.md @@ -0,0 +1,85 @@ +--- +title: "Bittrex" +date: 2018-06-04T20:06:40-07:00 +draft: false +--- + +Added in `v0.0.5`. + +Get the last 24 hour summary of cryptocurrencies market using [Bittrex](https://bittrex.com). + +## Source Code + +```bash +wtf/cryptoexchanges/bittrex/ +``` + +## Required ENV Vars + +None. + +## Keyboard Commands + +None. + +## Configuration + +```yaml +bittrex: + enabled: true + position: + top: 1 + left: 2 + height: 3 + width: 1 + updateInterval: 5 + summary: + BTC: + displayName: Bitcoin + market: + - LTC + - ETH + colors: + base: + name: orange + displayName: red + market: + name: red + field: white + value: green +``` + +### Attributes + +`colors.base.name`
+Values: Any X11 +color name. + +`colors.base.dispayName`
+Values: Any X11 +color name. + +`colors.market.name`
+Values: Any X11 +color name. + +`colors.market.field`
+Values: Any X11 +color name. + +`colors.market.value`
+Values: Any X11 +color name. + +`summary`
+ +`enabled`
+Determines whether or not this module is executed and if its data displayed onscreen.
+Values: `true`, `false`. + +`position`
+Defines where in the grid this module's widget will be displayed.
+ +`updateInterval`
+How often, in seconds, this module will update its data.
+Values: A positive integer, `0..n`. From 8d26cfd2cbf798f52ceb293278d1aa6db678eff1 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:13:40 +0430 Subject: [PATCH 09/18] fixed cryptolive docs --- _site/content/posts/modules/cryptocurrencies/cryptolive.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md index 7d511c0b..6b4b3437 100644 --- a/_site/content/posts/modules/cryptocurrencies/cryptolive.md +++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md @@ -11,7 +11,7 @@ Compare crypto currencies using [CryptoCompare](https://cryptocompare.com). ## Source Code ```bash -wtf/cryptocurrencies/cryptolive/ +wtf/cryptoexchanges/cryptolive/ ``` ## Required ENV Vars @@ -52,7 +52,6 @@ cryptolive: left: 2 height: 1 width: 2 - refreshInterval: 30 updateInterval: 15 ``` @@ -83,6 +82,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`refreshInterval`
+`updateInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. From f74feb329a4c06bca9a53bd76e4c9f66d82b985e Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:51:28 +0430 Subject: [PATCH 10/18] replaced updateInterval with refreshInterval --- cryptoexchanges/cryptolive/widget.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cryptoexchanges/cryptolive/widget.go b/cryptoexchanges/cryptolive/widget.go index e59eef96..e58b9435 100644 --- a/cryptoexchanges/cryptolive/widget.go +++ b/cryptoexchanges/cryptolive/widget.go @@ -21,9 +21,6 @@ var ok = true type Widget struct { wtf.TextWidget - // time interval for send http request - updateInterval int - *list } @@ -31,8 +28,7 @@ type Widget struct { func NewWidget() *Widget { started = false widget := Widget{ - TextWidget: wtf.NewTextWidget(" CryptoLive ", "cryptolive", false), - updateInterval: Config.UInt("wtf.mods.cryptolive.updateInterval", 10), + TextWidget: wtf.NewTextWidget(" CryptoLive ", "cryptolive", false), } widget.setList() @@ -66,7 +62,7 @@ func (widget *Widget) Refresh() { go func() { for { widget.updateCurrencies() - time.Sleep(time.Duration(widget.updateInterval) * time.Second) + time.Sleep(time.Duration(widget.RefreshInterval()) * time.Second) } }() From 2122c501ce46b485af2135854cab388add491896 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:53:03 +0430 Subject: [PATCH 11/18] replaced updateInterval with refreshInterval --- _site/content/posts/modules/cryptocurrencies/cryptolive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md index 6b4b3437..9a0601ff 100644 --- a/_site/content/posts/modules/cryptocurrencies/cryptolive.md +++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md @@ -82,6 +82,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`updateInterval`
+`refreshInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. From 6e7307eb2ae9a8dbf552624755bad7f7db4dcc67 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:59:07 +0430 Subject: [PATCH 12/18] replaced updateInterval with refreshInterval --- _site/content/posts/modules/cryptocurrencies/bittrex.md | 4 ++-- cryptoexchanges/bittrex/widget.go | 8 +++----- docs/posts/modules/bittrex/index.html | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/_site/content/posts/modules/cryptocurrencies/bittrex.md b/_site/content/posts/modules/cryptocurrencies/bittrex.md index 4e7316fa..99fc7272 100644 --- a/_site/content/posts/modules/cryptocurrencies/bittrex.md +++ b/_site/content/posts/modules/cryptocurrencies/bittrex.md @@ -32,7 +32,7 @@ bittrex: left: 2 height: 3 width: 1 - updateInterval: 5 + refreshInterval: 5 summary: BTC: displayName: Bitcoin @@ -80,6 +80,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`updateInterval`
+`refreshInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index fd5c04ed..264b2cd3 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -35,7 +35,6 @@ var baseURL = "https://bittrex.com/api/v1.1/public/getmarketsummary" type Widget struct { wtf.TextWidget summaryList - updateInterval int TextColors } @@ -43,9 +42,8 @@ type Widget struct { func NewWidget() *Widget { widget := Widget{ - TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), - summaryList: summaryList{}, - updateInterval: Config.UInt("wtf.mods.bittrex.updateInterval", 10), + TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + summaryList: summaryList{}, } started = false @@ -112,7 +110,7 @@ func (widget *Widget) Refresh() { go func() { for { widget.updateSummary() - time.Sleep(time.Second * time.Duration(widget.updateInterval)) + time.Sleep(time.Second * time.Duration(widget.RefreshInterval())) } }() started = true diff --git a/docs/posts/modules/bittrex/index.html b/docs/posts/modules/bittrex/index.html index 13817360..8ab9753c 100644 --- a/docs/posts/modules/bittrex/index.html +++ b/docs/posts/modules/bittrex/index.html @@ -180,7 +180,7 @@ left: 2 height: 1 width: 1 - updateInterval: 15 + refreshInterval: 15 summary: BTC: displayName: Bitcoin From bcdaf62b03e8774bc0ca5e1da135829264716347 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 4 Jun 2018 20:45:33 -0700 Subject: [PATCH 13/18] Clean up the formatting of the text in Bittrex module --- cryptoexchanges/bittrex/display.go | 16 +++++++++------- cryptoexchanges/bittrex/widget.go | 14 +++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go index 29cc6124..2718e0f7 100644 --- a/cryptoexchanges/bittrex/display.go +++ b/cryptoexchanges/bittrex/display.go @@ -22,20 +22,22 @@ func summaryText(list *summaryList, colors *TextColors) string { str := "" for _, baseCurrency := range list.items { - str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) + str += fmt.Sprintf(" [%s]%s[%s] (%s)\n\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) resultTemplate := template.New("bittrex") for _, marketCurrency := range baseCurrency.markets { writer := new(bytes.Buffer) + strTemplate, _ := resultTemplate.Parse( - "\t[{{.nameColor}}]{{.mName}}\n" + + " [{{.nameColor}}]{{.mName}}\n" + formatableText("High", "High") + formatableText("Low", "Low") + formatableText("Last", "Last") + formatableText("Volume", "Volume") + - formatableText("OpenSellOrders", "OpenSellOrders") + - formatableText("OpenBuyOrders", "OpenBuyOrders"), + "\n" + + formatableText("Open Buy", "OpenBuyOrders") + + formatableText("Open Sell", "OpenSellOrders"), ) strTemplate.Execute(writer, map[string]string{ @@ -47,11 +49,11 @@ func summaryText(list *summaryList, colors *TextColors) string { "Low": marketCurrency.Low, "Last": marketCurrency.Last, "Volume": marketCurrency.Volume, - "OpenSellOrders": marketCurrency.OpenSellOrders, "OpenBuyOrders": marketCurrency.OpenBuyOrders, + "OpenSellOrders": marketCurrency.OpenSellOrders, }) - str += writer.String() + str += writer.String() + "\n" } } @@ -61,5 +63,5 @@ func summaryText(list *summaryList, colors *TextColors) string { } func formatableText(key, value string) string { - return fmt.Sprintf("\t\t[{{.fieldColor}}]%s: [{{.valueColor}}]{{.%s}}\n", key, value) + return fmt.Sprintf("[{{.fieldColor}}]%12s: [{{.valueColor}}]{{.%s}}\n", key, value) } diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index 264b2cd3..3f6f4d92 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -42,7 +42,7 @@ type Widget struct { func NewWidget() *Widget { widget := Widget{ - TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + TextWidget: wtf.NewTextWidget(" Bittrex ", "bittrex", false), summaryList: summaryList{}, } @@ -88,12 +88,12 @@ func makeMarketCurrency(name string) *mCurrency { return &mCurrency{ name: name, summaryInfo: summaryInfo{ - High: "-1", - Low: "-1", - Volume: "-1", - Last: "-1", - OpenBuyOrders: "-1", - OpenSellOrders: "-1", + High: "", + Low: "", + Volume: "", + Last: "", + OpenBuyOrders: "", + OpenSellOrders: "", }, } } From 6c9a7613ca1e210e628edca690d50c22a23a8dad Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 4 Jun 2018 20:50:38 -0700 Subject: [PATCH 14/18] Add Bittrex to the documentation sidebar --- .../posts/modules/cryptocurrencies/bittrex.md | 8 +- _site/static/imgs/modules/bittrex.png | Bin 0 -> 89091 bytes .../hyde-hyde/layouts/partials/sidebar.html | 1 + docs/404.html | 1 + docs/categories/index.html | 1 + docs/imgs/modules/bittrex.png | Bin 0 -> 89091 bytes docs/index.html | 1 + docs/index.xml | 20 +- .../posts/configuration/attributes/index.html | 1 + docs/posts/configuration/index.html | 1 + docs/posts/configuration/iterm2/index.html | 1 + docs/posts/glossary/index.html | 1 + docs/posts/index.html | 8 + docs/posts/index.xml | 20 +- docs/posts/installation/index.html | 1 + docs/posts/modules/bamboohr/index.html | 1 + docs/posts/modules/clocks/index.html | 1 + docs/posts/modules/cmdrunner/index.html | 1 + .../cryptocurrencies/bittrex/index.html | 201 ++++++++++++++++++ .../cryptocurrencies/cryptolive/index.html | 1 + docs/posts/modules/gcal/index.html | 1 + docs/posts/modules/git/index.html | 1 + docs/posts/modules/github/index.html | 1 + docs/posts/modules/index.html | 1 + docs/posts/modules/ipinfo/index.html | 1 + docs/posts/modules/jira/index.html | 1 + docs/posts/modules/newrelic/index.html | 1 + docs/posts/modules/opsgenie/index.html | 1 + docs/posts/modules/power/index.html | 1 + docs/posts/modules/prettyweather/index.html | 1 + docs/posts/modules/security/index.html | 1 + docs/posts/modules/textfile/index.html | 1 + docs/posts/modules/todo/index.html | 1 + docs/posts/modules/weather/index.html | 1 + docs/posts/overview/index.html | 1 + docs/sitemap.xml | 9 +- docs/tags/index.html | 1 + 37 files changed, 288 insertions(+), 7 deletions(-) create mode 100644 _site/static/imgs/modules/bittrex.png create mode 100644 docs/imgs/modules/bittrex.png create mode 100644 docs/posts/modules/cryptocurrencies/bittrex/index.html diff --git a/_site/content/posts/modules/cryptocurrencies/bittrex.md b/_site/content/posts/modules/cryptocurrencies/bittrex.md index 99fc7272..df5fc610 100644 --- a/_site/content/posts/modules/cryptocurrencies/bittrex.md +++ b/_site/content/posts/modules/cryptocurrencies/bittrex.md @@ -8,6 +8,8 @@ Added in `v0.0.5`. Get the last 24 hour summary of cryptocurrencies market using [Bittrex](https://bittrex.com). +bittrex screenshot + ## Source Code ```bash @@ -33,14 +35,14 @@ bittrex: height: 3 width: 1 refreshInterval: 5 - summary: + summary: BTC: displayName: Bitcoin market: - LTC - ETH - colors: - base: + colors: + base: name: orange displayName: red market: diff --git a/_site/static/imgs/modules/bittrex.png b/_site/static/imgs/modules/bittrex.png new file mode 100644 index 0000000000000000000000000000000000000000..669139d30ef09c45ddca1425763cdb53d96ad067 GIT binary patch literal 89091 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 TL0W4b00000NkvXXu0mjfiH=wN literal 0 HcmV?d00001 diff --git a/_site/themes/hyde-hyde/layouts/partials/sidebar.html b/_site/themes/hyde-hyde/layouts/partials/sidebar.html index dbf4b12b..5d1c6bc4 100644 --- a/_site/themes/hyde-hyde/layouts/partials/sidebar.html +++ b/_site/themes/hyde-hyde/layouts/partials/sidebar.html @@ -23,6 +23,7 @@