mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
WTF-400 Blockfolio extracted to new config format
This commit is contained in:
parent
3db2848169
commit
1630fb96b7
3
main.go
3
main.go
@ -190,7 +190,8 @@ func makeWidget(app *tview.Application, pages *tview.Pages, widgetName string) w
|
|||||||
cfg := bittrex.NewSettingsFromYAML(wtf.Config)
|
cfg := bittrex.NewSettingsFromYAML(wtf.Config)
|
||||||
widget = bittrex.NewWidget(app, cfg)
|
widget = bittrex.NewWidget(app, cfg)
|
||||||
case "blockfolio":
|
case "blockfolio":
|
||||||
widget = blockfolio.NewWidget(app)
|
cfg := blockfolio.NewSettingsFromYAML(wtf.Config)
|
||||||
|
widget = blockfolio.NewWidget(app, cfg)
|
||||||
case "circleci":
|
case "circleci":
|
||||||
cfg := circleci.NewSettingsFromYAML(wtf.Config)
|
cfg := circleci.NewSettingsFromYAML(wtf.Config)
|
||||||
widget = circleci.NewWidget(app, cfg)
|
widget = circleci.NewWidget(app, cfg)
|
||||||
|
33
modules/cryptoexchanges/blockfolio/settings.go
Normal file
33
modules/cryptoexchanges/blockfolio/settings.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package blockfolio
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/olebedev/config"
|
||||||
|
"github.com/wtfutil/wtf/cfg"
|
||||||
|
)
|
||||||
|
|
||||||
|
type colors struct {
|
||||||
|
name string
|
||||||
|
grows string
|
||||||
|
drop string
|
||||||
|
}
|
||||||
|
|
||||||
|
type Settings struct {
|
||||||
|
colors
|
||||||
|
common *cfg.Common
|
||||||
|
|
||||||
|
deviceToken string
|
||||||
|
displayHoldings bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSettingsFromYAML(ymlConfig *config.Config) *Settings {
|
||||||
|
localConfig, _ := ymlConfig.Get("wtf.mods.todo")
|
||||||
|
|
||||||
|
settings := Settings{
|
||||||
|
common: cfg.NewCommonSettingsFromYAML(ymlConfig),
|
||||||
|
|
||||||
|
deviceToken: localConfig.UString("device_token"),
|
||||||
|
displayHoldings: localConfig.UBool("displayHoldings", true),
|
||||||
|
}
|
||||||
|
|
||||||
|
return &settings
|
||||||
|
}
|
@ -15,12 +15,15 @@ type Widget struct {
|
|||||||
wtf.TextWidget
|
wtf.TextWidget
|
||||||
|
|
||||||
device_token string
|
device_token string
|
||||||
|
settings *Settings
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWidget(app *tview.Application) *Widget {
|
func NewWidget(app *tview.Application, settings *Settings) *Widget {
|
||||||
widget := Widget{
|
widget := Widget{
|
||||||
TextWidget: wtf.NewTextWidget(app, "Blockfolio", "blockfolio", false),
|
TextWidget: wtf.NewTextWidget(app, "Blockfolio", "blockfolio", false),
|
||||||
device_token: wtf.Config.UString("wtf.mods.blockfolio.device_token"),
|
|
||||||
|
device_token: settings.deviceToken,
|
||||||
|
settings: settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
return &widget
|
return &widget
|
||||||
@ -36,31 +39,50 @@ func (widget *Widget) Refresh() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
widget.View.SetText(contentFrom(positions))
|
content := widget.contentFrom(positions)
|
||||||
|
widget.View.SetText(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------- Unexported Functions -------------------- */
|
/* -------------------- Unexported Functions -------------------- */
|
||||||
func contentFrom(positions *AllPositionsResponse) string {
|
func (widget *Widget) contentFrom(positions *AllPositionsResponse) string {
|
||||||
res := ""
|
res := ""
|
||||||
colorName := wtf.Config.UString("wtf.mods.blockfolio.colors.name")
|
totalFiat := float32(0.0)
|
||||||
colorGrows := wtf.Config.UString("wtf.mods.blockfolio.colors.grows")
|
|
||||||
colorDrop := wtf.Config.UString("wtf.mods.blockfolio.colors.drop")
|
|
||||||
displayHoldings := wtf.Config.UBool("wtf.mods.blockfolio.displayHoldings")
|
|
||||||
var totalFiat float32
|
|
||||||
totalFiat = 0.0
|
|
||||||
for i := 0; i < len(positions.PositionList); i++ {
|
for i := 0; i < len(positions.PositionList); i++ {
|
||||||
colorForChange := colorGrows
|
colorForChange := widget.settings.colors.grows
|
||||||
|
|
||||||
if positions.PositionList[i].TwentyFourHourPercentChangeFiat <= 0 {
|
if positions.PositionList[i].TwentyFourHourPercentChangeFiat <= 0 {
|
||||||
colorForChange = colorDrop
|
colorForChange = widget.settings.colors.drop
|
||||||
}
|
}
|
||||||
|
|
||||||
totalFiat += positions.PositionList[i].HoldingValueFiat
|
totalFiat += positions.PositionList[i].HoldingValueFiat
|
||||||
if displayHoldings {
|
|
||||||
res = res + fmt.Sprintf("[%s]%-6s - %5.2f ([%s]%.3fk [%s]%.2f%s)\n", colorName, positions.PositionList[i].Coin, positions.PositionList[i].Quantity, colorForChange, positions.PositionList[i].HoldingValueFiat/1000, colorForChange, positions.PositionList[i].TwentyFourHourPercentChangeFiat, "%")
|
if widget.settings.displayHoldings {
|
||||||
|
res = res + fmt.Sprintf(
|
||||||
|
"[%s]%-6s - %5.2f ([%s]%.3fk [%s]%.2f%s)\n",
|
||||||
|
widget.settings.colors.name,
|
||||||
|
positions.PositionList[i].Coin,
|
||||||
|
positions.PositionList[i].Quantity,
|
||||||
|
colorForChange,
|
||||||
|
positions.PositionList[i].HoldingValueFiat/1000,
|
||||||
|
colorForChange,
|
||||||
|
positions.PositionList[i].TwentyFourHourPercentChangeFiat,
|
||||||
|
"%",
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
res = res + fmt.Sprintf("[%s]%-6s - %5.2f ([%s]%.2f%s)\n", colorName, positions.PositionList[i].Coin, positions.PositionList[i].Quantity, colorForChange, positions.PositionList[i].TwentyFourHourPercentChangeFiat, "%")
|
res = res + fmt.Sprintf(
|
||||||
|
"[%s]%-6s - %5.2f ([%s]%.2f%s)\n",
|
||||||
|
widget.settings.colors.name,
|
||||||
|
positions.PositionList[i].Coin,
|
||||||
|
positions.PositionList[i].Quantity,
|
||||||
|
colorForChange,
|
||||||
|
positions.PositionList[i].TwentyFourHourPercentChangeFiat,
|
||||||
|
"%",
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if displayHoldings {
|
|
||||||
|
if widget.settings.displayHoldings {
|
||||||
res = res + fmt.Sprintf("\n[%s]Total value: $%.3fk", "green", totalFiat/1000)
|
res = res + fmt.Sprintf("\n[%s]Total value: $%.3fk", "green", totalFiat/1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user