Merge branch 'hmble-fix'

pull/53/head
Miguel Mota 4 years ago
commit 6a8124e72e

@ -150,7 +150,8 @@ func (ct *Cointop) ChartPoints(symbol string, name string) error {
if len(data) == 0 { if len(data) == 0 {
if symbol == "" { if symbol == "" {
graphData, err := ct.api.GetGlobalMarketGraphData(start, end) convert := ct.State.currencyConversion
graphData, err := ct.api.GetGlobalMarketGraphData(convert, start, end)
if err != nil { if err != nil {
return nil return nil
} }
@ -159,15 +160,16 @@ func (ct *Cointop) ChartPoints(symbol string, name string) error {
data = append(data, price/1e9) data = append(data, price/1e9)
} }
} else { } else {
graphData, err := ct.api.GetCoinGraphData(symbol, name, start, end) convert := ct.State.currencyConversion
graphData, err := ct.api.GetCoinGraphData(convert, symbol, name, start, end)
if err != nil { if err != nil {
return nil return nil
} }
// NOTE: edit `termui.LineChart.shortenFloatVal(float64)` to not // NOTE: edit `termui.LineChart.shortenFloatVal(float64)` to not
// use exponential notation. // use exponential notation.
for i := range graphData.PriceUSD { for i := range graphData.Price {
price := graphData.PriceUSD[i][1] price := graphData.Price[i][1]
data = append(data, price) data = append(data, price)
} }
} }
@ -263,12 +265,14 @@ func (ct *Cointop) PortfolioChart() error {
if len(graphData) == 0 { if len(graphData) == 0 {
time.Sleep(2 * time.Second) time.Sleep(2 * time.Second)
apiGraphData, err := ct.api.GetCoinGraphData(p.Symbol, p.Name, start, end)
convert := ct.State.currencyConversion
apiGraphData, err := ct.api.GetCoinGraphData(convert, p.Symbol, p.Name, start, end)
if err != nil { if err != nil {
return err return err
} }
for i := range apiGraphData.PriceUSD { for i := range apiGraphData.Price {
price := apiGraphData.PriceUSD[i][1] price := apiGraphData.Price[i][1]
graphData = append(graphData, price) graphData = append(graphData, price)
} }
} }

@ -131,25 +131,25 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error
} }
// GetCoinGraphData gets coin graph data // GetCoinGraphData gets coin graph data
func (s *Service) GetCoinGraphData(symbol, name string, start, end int64) (apitypes.CoinGraph, error) { func (s *Service) GetCoinGraphData(convert, symbol, name string, start, end int64) (apitypes.CoinGraph, error) {
ret := apitypes.CoinGraph{} ret := apitypes.CoinGraph{}
days := strconv.Itoa(util.CalcDays(start, end)) days := strconv.Itoa(util.CalcDays(start, end))
chart, err := s.client.CoinsIDMarketChart(util.NameToSlug(name), "usd", days) chart, err := s.client.CoinsIDMarketChart(util.NameToSlug(name), convert, days)
if err != nil { if err != nil {
return ret, err return ret, err
} }
var marketCap [][]float64 var marketCap [][]float64
var priceUSD [][]float64 var priceCoin [][]float64
var priceBTC [][]float64 var priceBTC [][]float64
var volumeUSD [][]float64 var volumeCoin [][]float64
if chart.Prices != nil { if chart.Prices != nil {
for _, item := range *chart.Prices { for _, item := range *chart.Prices {
timestamp := float64(item[0]) timestamp := float64(item[0])
price := float64(item[1]) price := float64(item[1])
priceUSD = append(priceUSD, []float64{ priceCoin = append(priceCoin, []float64{
timestamp, timestamp,
price, price,
}) })
@ -158,17 +158,21 @@ func (s *Service) GetCoinGraphData(symbol, name string, start, end int64) (apity
ret.MarketCapByAvailableSupply = marketCap ret.MarketCapByAvailableSupply = marketCap
ret.PriceBTC = priceBTC ret.PriceBTC = priceBTC
ret.PriceUSD = priceUSD ret.Price = priceCoin
ret.VolumeUSD = volumeUSD ret.Volume = volumeCoin
return ret, nil return ret, nil
} }
// GetGlobalMarketGraphData gets global market graph data // GetGlobalMarketGraphData gets global market graph data
func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) { func (s *Service) GetGlobalMarketGraphData(convert string, start int64, end int64) (apitypes.MarketGraph, error) {
days := strconv.Itoa(util.CalcDays(start, end)) days := strconv.Itoa(util.CalcDays(start, end))
ret := apitypes.MarketGraph{} ret := apitypes.MarketGraph{}
graphData, err := s.client.GlobalCharts("usd", days) convertTo := strings.ToLower(convert)
if convertTo == "" {
convertTo = "usd"
}
graphData, err := s.client.GlobalCharts(convertTo, days)
if err != nil { if err != nil {
return ret, err return ret, err
} }

@ -110,7 +110,7 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error
} }
// GetCoinGraphData gets coin graph data // GetCoinGraphData gets coin graph data
func (s *Service) GetCoinGraphData(symbol string, name string, start int64, end int64) (apitypes.CoinGraph, error) { func (s *Service) GetCoinGraphData(convert, symbol string, name string, start int64, end int64) (apitypes.CoinGraph, error) {
ret := apitypes.CoinGraph{} ret := apitypes.CoinGraph{}
graphData, err := cmcv2.TickerGraph(&cmcv2.TickerGraphOptions{ graphData, err := cmcv2.TickerGraph(&cmcv2.TickerGraphOptions{
Symbol: symbol, Symbol: symbol,
@ -123,13 +123,13 @@ func (s *Service) GetCoinGraphData(symbol string, name string, start int64, end
ret.MarketCapByAvailableSupply = graphData.MarketCapByAvailableSupply ret.MarketCapByAvailableSupply = graphData.MarketCapByAvailableSupply
ret.PriceBTC = graphData.PriceBTC ret.PriceBTC = graphData.PriceBTC
ret.PriceUSD = graphData.PriceUSD ret.Price = graphData.PriceUSD
ret.VolumeUSD = graphData.VolumeUSD ret.Volume = graphData.VolumeUSD
return ret, nil return ret, nil
} }
// GetGlobalMarketGraphData gets global market graph data // GetGlobalMarketGraphData gets global market graph data
func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) { func (s *Service) GetGlobalMarketGraphData(convert string, start int64, end int64) (apitypes.MarketGraph, error) {
ret := apitypes.MarketGraph{} ret := apitypes.MarketGraph{}
graphData, err := cmcv2.GlobalMarketGraph(&cmcv2.GlobalMarketGraphOptions{ graphData, err := cmcv2.GlobalMarketGraph(&cmcv2.GlobalMarketGraphOptions{
Start: start, Start: start,

@ -8,8 +8,8 @@ import (
type Interface interface { type Interface interface {
Ping() error Ping() error
GetAllCoinData(convert string, ch chan []types.Coin) error GetAllCoinData(convert string, ch chan []types.Coin) error
GetCoinGraphData(symbol string, name string, start int64, end int64) (types.CoinGraph, error) GetCoinGraphData(convert string, symbol string, name string, start int64, end int64) (types.CoinGraph, error)
GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error) GetGlobalMarketGraphData(convert string, start int64, end int64) (types.MarketGraph, error)
GetGlobalMarketData(convert string) (types.GlobalMarketData, error) GetGlobalMarketData(convert string) (types.GlobalMarketData, error)
//GetCoinData(coin string) (types.Coin, error) //GetCoinData(coin string) (types.Coin, error)
//GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error) //GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error)

@ -31,8 +31,8 @@ type GlobalMarketData struct {
type CoinGraph struct { type CoinGraph struct {
MarketCapByAvailableSupply [][]float64 MarketCapByAvailableSupply [][]float64
PriceBTC [][]float64 PriceBTC [][]float64
PriceUSD [][]float64 Price [][]float64
VolumeUSD [][]float64 Volume [][]float64
} }
// Market struct // Market struct

Loading…
Cancel
Save