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  }