mirror of
https://github.com/glanceapp/glance.git
synced 2025-06-21 18:31:24 +02:00
Fix markets price precision
This commit is contained in:
parent
233de7fc37
commit
bd020c93f5
@ -27,6 +27,9 @@ var globalTemplateFunctions = template.FuncMap{
|
|||||||
"formatPrice": func(price float64) string {
|
"formatPrice": func(price float64) string {
|
||||||
return intl.Sprintf("%.2f", price)
|
return intl.Sprintf("%.2f", price)
|
||||||
},
|
},
|
||||||
|
"formatPriceWithPrecision": func(precision int, price float64) string {
|
||||||
|
return intl.Sprintf("%."+strconv.Itoa(precision)+"f", price)
|
||||||
|
},
|
||||||
"dynamicRelativeTimeAttrs": dynamicRelativeTimeAttrs,
|
"dynamicRelativeTimeAttrs": dynamicRelativeTimeAttrs,
|
||||||
"formatServerMegabytes": func(mb uint64) template.HTML {
|
"formatServerMegabytes": func(mb uint64) template.HTML {
|
||||||
var value string
|
var value string
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
<div class="market-values shrink-0">
|
<div class="market-values shrink-0">
|
||||||
<div class="size-h3 text-right {{ if eq .PercentChange 0.0 }}{{ else if gt .PercentChange 0.0 }}color-positive{{ else }}color-negative{{ end }}">{{ printf "%+.2f" .PercentChange }}%</div>
|
<div class="size-h3 text-right {{ if eq .PercentChange 0.0 }}{{ else if gt .PercentChange 0.0 }}color-positive{{ else }}color-negative{{ end }}">{{ printf "%+.2f" .PercentChange }}%</div>
|
||||||
<div class="text-right">{{ .Currency }}{{ .Price | formatPrice }}</div>
|
<div class="text-right">{{ .Currency }}{{ .Price | formatPriceWithPrecision .PriceHint }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -79,6 +79,7 @@ type market struct {
|
|||||||
Name string
|
Name string
|
||||||
Currency string
|
Currency string
|
||||||
Price float64
|
Price float64
|
||||||
|
PriceHint int
|
||||||
PercentChange float64
|
PercentChange float64
|
||||||
SvgChartPoints string
|
SvgChartPoints string
|
||||||
}
|
}
|
||||||
@ -106,6 +107,7 @@ type marketResponseJson struct {
|
|||||||
RegularMarketPrice float64 `json:"regularMarketPrice"`
|
RegularMarketPrice float64 `json:"regularMarketPrice"`
|
||||||
ChartPreviousClose float64 `json:"chartPreviousClose"`
|
ChartPreviousClose float64 `json:"chartPreviousClose"`
|
||||||
ShortName string `json:"shortName"`
|
ShortName string `json:"shortName"`
|
||||||
|
PriceHint int `json:"priceHint"`
|
||||||
} `json:"meta"`
|
} `json:"meta"`
|
||||||
Indicators struct {
|
Indicators struct {
|
||||||
Quote []struct {
|
Quote []struct {
|
||||||
@ -152,13 +154,14 @@ func fetchMarketsDataFromYahoo(marketRequests []marketRequest) (marketList, erro
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
prices := response.Chart.Result[0].Indicators.Quote[0].Close
|
result := &response.Chart.Result[0]
|
||||||
|
prices := result.Indicators.Quote[0].Close
|
||||||
|
|
||||||
if len(prices) > marketChartDays {
|
if len(prices) > marketChartDays {
|
||||||
prices = prices[len(prices)-marketChartDays:]
|
prices = prices[len(prices)-marketChartDays:]
|
||||||
}
|
}
|
||||||
|
|
||||||
previous := response.Chart.Result[0].Meta.RegularMarketPrice
|
previous := result.Meta.RegularMarketPrice
|
||||||
|
|
||||||
if len(prices) >= 2 && prices[len(prices)-2] != 0 {
|
if len(prices) >= 2 && prices[len(prices)-2] != 0 {
|
||||||
previous = prices[len(prices)-2]
|
previous = prices[len(prices)-2]
|
||||||
@ -166,21 +169,22 @@ func fetchMarketsDataFromYahoo(marketRequests []marketRequest) (marketList, erro
|
|||||||
|
|
||||||
points := svgPolylineCoordsFromYValues(100, 50, maybeCopySliceWithoutZeroValues(prices))
|
points := svgPolylineCoordsFromYValues(100, 50, maybeCopySliceWithoutZeroValues(prices))
|
||||||
|
|
||||||
currency, exists := currencyToSymbol[strings.ToUpper(response.Chart.Result[0].Meta.Currency)]
|
currency, exists := currencyToSymbol[strings.ToUpper(result.Meta.Currency)]
|
||||||
if !exists {
|
if !exists {
|
||||||
currency = response.Chart.Result[0].Meta.Currency
|
currency = result.Meta.Currency
|
||||||
}
|
}
|
||||||
|
|
||||||
markets = append(markets, market{
|
markets = append(markets, market{
|
||||||
marketRequest: marketRequests[i],
|
marketRequest: marketRequests[i],
|
||||||
Price: response.Chart.Result[0].Meta.RegularMarketPrice,
|
Price: result.Meta.RegularMarketPrice,
|
||||||
Currency: currency,
|
Currency: currency,
|
||||||
|
PriceHint: result.Meta.PriceHint,
|
||||||
Name: ternary(marketRequests[i].CustomName == "",
|
Name: ternary(marketRequests[i].CustomName == "",
|
||||||
response.Chart.Result[0].Meta.ShortName,
|
result.Meta.ShortName,
|
||||||
marketRequests[i].CustomName,
|
marketRequests[i].CustomName,
|
||||||
),
|
),
|
||||||
PercentChange: percentChange(
|
PercentChange: percentChange(
|
||||||
response.Chart.Result[0].Meta.RegularMarketPrice,
|
result.Meta.RegularMarketPrice,
|
||||||
previous,
|
previous,
|
||||||
),
|
),
|
||||||
SvgChartPoints: points,
|
SvgChartPoints: points,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user