mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Rather than referencing wtc.Config, instead pass the global config Also, look up config for the module early and pass that in sooner, to deal with fewer long paths and get rid of the ConfigKey variable
96 lines
2.2 KiB
Go
96 lines
2.2 KiB
Go
package toplist
|
|
|
|
import (
|
|
"github.com/olebedev/config"
|
|
"github.com/wtfutil/wtf/cfg"
|
|
)
|
|
|
|
const configKey = "cryptolive"
|
|
|
|
type colors struct {
|
|
from struct {
|
|
name string
|
|
displayName string
|
|
}
|
|
to struct {
|
|
name string
|
|
price string
|
|
}
|
|
top struct {
|
|
from struct {
|
|
name string
|
|
displayName string
|
|
}
|
|
to struct {
|
|
name string
|
|
field string
|
|
value string
|
|
}
|
|
}
|
|
}
|
|
|
|
type currency struct {
|
|
displayName string
|
|
limit int
|
|
to []interface{}
|
|
}
|
|
|
|
type Settings struct {
|
|
colors
|
|
common *cfg.Common
|
|
currencies map[string]*currency
|
|
top map[string]*currency
|
|
}
|
|
|
|
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
|
|
|
settings := Settings{
|
|
common: cfg.NewCommonSettingsFromModule(name, ymlConfig, globalConfig),
|
|
}
|
|
|
|
settings.colors.from.name = ymlConfig.UString("colors.from.name")
|
|
settings.colors.from.displayName = ymlConfig.UString("colors.from.displayName")
|
|
|
|
settings.colors.to.name = ymlConfig.UString("colors.to.name")
|
|
settings.colors.to.price = ymlConfig.UString("colors.to.price")
|
|
|
|
settings.colors.top.from.name = ymlConfig.UString("colors.top.from.name")
|
|
settings.colors.top.from.displayName = ymlConfig.UString("colors.top.from.displayName")
|
|
|
|
settings.colors.top.to.name = ymlConfig.UString("colors.top.to.name")
|
|
settings.colors.top.to.field = ymlConfig.UString("colors.top.to.field")
|
|
settings.colors.top.to.value = ymlConfig.UString("colors.top.to.value")
|
|
|
|
settings.currencies = make(map[string]*currency)
|
|
|
|
for key, val := range ymlConfig.UMap("currencies") {
|
|
coercedVal := val.(map[string]interface{})
|
|
|
|
limit, _ := coercedVal["limit"].(int)
|
|
|
|
currency := ¤cy{
|
|
displayName: coercedVal["displayName"].(string),
|
|
limit: limit,
|
|
to: coercedVal["to"].([]interface{}),
|
|
}
|
|
|
|
settings.currencies[key] = currency
|
|
}
|
|
|
|
for key, val := range ymlConfig.UMap("top") {
|
|
coercedVal := val.(map[string]interface{})
|
|
|
|
limit, _ := coercedVal["limit"].(int)
|
|
|
|
currency := ¤cy{
|
|
displayName: coercedVal["displayName"].(string),
|
|
limit: limit,
|
|
to: coercedVal["to"].([]interface{}),
|
|
}
|
|
|
|
settings.currencies[key] = currency
|
|
}
|
|
|
|
return &settings
|
|
}
|