github.com/wtfutil/wtf@v0.43.0/modules/cryptocurrency/bittrex/display.go (about) 1 package bittrex 2 3 import ( 4 "bytes" 5 "fmt" 6 "text/template" 7 ) 8 9 func (widget *Widget) display() { 10 11 widget.Redraw(widget.content) 12 } 13 14 func (widget *Widget) content() (string, string, bool) { 15 if !ok { 16 return widget.CommonSettings().Title, errorText, true 17 } 18 19 list := &widget.summaryList 20 str := "" 21 22 for _, baseCurrency := range list.items { 23 str += fmt.Sprintf( 24 " [%s]%s[%s] (%s)\n\n", 25 widget.settings.colors.base.displayName, 26 baseCurrency.displayName, 27 widget.settings.colors.base.name, 28 baseCurrency.name, 29 ) 30 31 resultTemplate := template.New("bittrex") 32 33 for _, marketCurrency := range baseCurrency.markets { 34 writer := new(bytes.Buffer) 35 36 strTemplate, _ := resultTemplate.Parse( 37 " [{{.nameColor}}]{{.mName}}\n" + 38 formatableText("High", "High") + 39 formatableText("Low", "Low") + 40 formatableText("Last", "Last") + 41 formatableText("Volume", "Volume") + 42 "\n" + 43 formatableText("Open Buy", "OpenBuyOrders") + 44 formatableText("Open Sell", "OpenSellOrders"), 45 ) 46 47 err := strTemplate.Execute(writer, map[string]string{ 48 "nameColor": widget.settings.colors.market.name, 49 "fieldColor": widget.settings.colors.market.field, 50 "valueColor": widget.settings.colors.market.value, 51 "mName": marketCurrency.name, 52 "High": marketCurrency.High, 53 "Low": marketCurrency.Low, 54 "Last": marketCurrency.Last, 55 "Volume": marketCurrency.Volume, 56 "OpenBuyOrders": marketCurrency.OpenBuyOrders, 57 "OpenSellOrders": marketCurrency.OpenSellOrders, 58 }) 59 60 if err != nil { 61 str = err.Error() 62 } else { 63 str += writer.String() + "\n" 64 } 65 } 66 67 } 68 69 return widget.CommonSettings().Title, str, true 70 71 } 72 73 func formatableText(key, value string) string { 74 return fmt.Sprintf("[{{.fieldColor}}]%12s: [{{.valueColor}}]{{.%s}}\n", key, value) 75 }