github.com/wtfutil/wtf@v0.43.0/modules/cryptocurrency/bittrex/settings.go (about) 1 package bittrex 2 3 import ( 4 "github.com/olebedev/config" 5 "github.com/wtfutil/wtf/cfg" 6 ) 7 8 const ( 9 defaultFocusable = false 10 defaultTitle = "Bittrex" 11 ) 12 13 type colors struct { 14 base struct { 15 name string 16 displayName string 17 } 18 market struct { 19 name string 20 field string 21 value string 22 } 23 } 24 25 type currency struct { 26 displayName string 27 market []interface{} 28 } 29 30 type summary struct { 31 currencies map[string]*currency 32 } 33 34 type Settings struct { 35 *cfg.Common 36 37 colors 38 summary 39 } 40 41 func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings { 42 43 settings := Settings{ 44 Common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig), 45 } 46 47 settings.colors.base.name = ymlConfig.UString("colors.base.name") 48 settings.colors.base.displayName = ymlConfig.UString("colors.base.displayName") 49 50 settings.colors.market.name = ymlConfig.UString("colors.market.name") 51 settings.colors.market.field = ymlConfig.UString("colors.market.field") 52 settings.colors.market.value = ymlConfig.UString("colors.market.value") 53 54 settings.summary.currencies = make(map[string]*currency) 55 for key, val := range ymlConfig.UMap("summary") { 56 coercedVal := val.(map[string]interface{}) 57 58 currency := ¤cy{ 59 displayName: coercedVal["displayName"].(string), 60 market: coercedVal["market"].([]interface{}), 61 } 62 63 settings.summary.currencies[key] = currency 64 } 65 66 settings.SetDocumentationPath("cryptocurrencies/bittrex") 67 68 return &settings 69 }