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

@ -131,25 +131,25 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error
}
// 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{}
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 {
return ret, err
}
var marketCap [][]float64
var priceUSD [][]float64
var priceCoin [][]float64
var priceBTC [][]float64
var volumeUSD [][]float64
var volumeCoin [][]float64
if chart.Prices != nil {
for _, item := range *chart.Prices {
timestamp := float64(item[0])
price := float64(item[1])
priceUSD = append(priceUSD, []float64{
priceCoin = append(priceCoin, []float64{
timestamp,
price,
})
@ -158,17 +158,21 @@ func (s *Service) GetCoinGraphData(symbol, name string, start, end int64) (apity
ret.MarketCapByAvailableSupply = marketCap
ret.PriceBTC = priceBTC
ret.PriceUSD = priceUSD
ret.VolumeUSD = volumeUSD
ret.Price = priceCoin
ret.Volume = volumeCoin
return ret, nil
}
// 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))
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 {
return ret, err
}

@ -110,7 +110,7 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error
}
// 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{}
graphData, err := cmcv2.TickerGraph(&cmcv2.TickerGraphOptions{
Symbol: symbol,
@ -123,13 +123,13 @@ func (s *Service) GetCoinGraphData(symbol string, name string, start int64, end
ret.MarketCapByAvailableSupply = graphData.MarketCapByAvailableSupply
ret.PriceBTC = graphData.PriceBTC
ret.PriceUSD = graphData.PriceUSD
ret.VolumeUSD = graphData.VolumeUSD
ret.Price = graphData.PriceUSD
ret.Volume = graphData.VolumeUSD
return ret, nil
}
// 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{}
graphData, err := cmcv2.GlobalMarketGraph(&cmcv2.GlobalMarketGraphOptions{
Start: start,

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

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

Loading…
Cancel
Save