market cap

Former-commit-id: 9dd23cec016dbde170e423180d24bc610caefcf4 [formerly 9dd23cec016dbde170e423180d24bc610caefcf4 [formerly 3ead24343eff902c60c345fc6bec7e780bd166a6 [formerly f7623d2699]]]
Former-commit-id: 40b2646f106c3a6eda82e5846c40e9b8de8336f9
Former-commit-id: d66136a941af83c0c31a57d3cda716ccd3d15880 [formerly 16133181388d9b546e89d19b0cb6614090681fd8]
Former-commit-id: 5a05f52a7025e74a8bc614c1d239daf1aa458eda
pull/15/head
Miguel Mota 6 years ago
parent dbbb82c33c
commit 36296b6446

@ -85,6 +85,15 @@ List of shortcuts:
export PATH=$PATH:$GOPATH/bin export PATH=$PATH:$GOPATH/bin
``` ```
## TODO
- markets/exchanges
- search, using /
- euro/yen
- mark favorites
- cryptocompare api
- more cool stuff
## Authors ## Authors
- [Miguel Mota](https://github.com/miguelmota) - [Miguel Mota](https://github.com/miguelmota)

@ -1,14 +1,12 @@
package cointop package cointop
import ( import (
"fmt"
"log" "log"
"github.com/gizak/termui" "github.com/gizak/termui"
"github.com/jroimartin/gocui" "github.com/jroimartin/gocui"
"github.com/miguelmota/cointop/pkg/api" "github.com/miguelmota/cointop/pkg/api"
apitypes "github.com/miguelmota/cointop/pkg/api/types" apitypes "github.com/miguelmota/cointop/pkg/api/types"
"github.com/miguelmota/cointop/pkg/pad"
"github.com/miguelmota/cointop/pkg/table" "github.com/miguelmota/cointop/pkg/table"
) )
@ -37,32 +35,6 @@ type Cointop struct {
coins []*apitypes.Coin coins []*apitypes.Coin
} }
func (ct *Cointop) rowChanged() {
ct.showLink()
}
func (ct *Cointop) fetchData() ([]*apitypes.Coin, error) {
result := []*apitypes.Coin{}
coins, err := ct.api.GetAllCoinData()
if err != nil {
return result, err
}
for i := range coins {
coin := coins[i]
result = append(result, &coin)
}
return result, nil
}
func (ct *Cointop) updateMarket() error {
maxX, _ := ct.g.Size()
s := ""
fmt.Fprintln(ct.marketview, pad.Right(fmt.Sprintf("30D %s", s), maxX, " "))
return nil
}
// Run runs cointop // Run runs cointop
func Run() { func Run() {
g, err := gocui.NewGui(gocui.Output256) g, err := gocui.NewGui(gocui.Output256)

@ -0,0 +1,5 @@
package cointop
func (ct *Cointop) rowChanged() {
ct.showLink()
}

@ -2,6 +2,7 @@ package cointop
import ( import (
"github.com/jroimartin/gocui" "github.com/jroimartin/gocui"
apitypes "github.com/miguelmota/cointop/pkg/api/types"
"github.com/miguelmota/cointop/pkg/pad" "github.com/miguelmota/cointop/pkg/pad"
"github.com/miguelmota/cointop/pkg/table" "github.com/miguelmota/cointop/pkg/table"
) )
@ -40,7 +41,7 @@ func (ct *Cointop) layout(g *gocui.Gui) error {
t := table.New().SetWidth(maxX) t := table.New().SetWidth(maxX)
headers := []string{ headers := []string{
pad.Right("[r]ank", 7, " "), pad.Right("[r]ank", 7, " "),
pad.Right("[n]ame", 22, " "), pad.Right("[n]ame", 18, " "),
pad.Right("[s]ymbol", 8, " "), pad.Right("[s]ymbol", 8, " "),
pad.Left("[p]rice", 13, " "), pad.Left("[p]rice", 13, " "),
pad.Left("[m]arket cap", 17, " "), pad.Left("[m]arket cap", 17, " "),
@ -99,3 +100,18 @@ func (ct *Cointop) layout(g *gocui.Gui) error {
return nil return nil
} }
func (ct *Cointop) fetchData() ([]*apitypes.Coin, error) {
result := []*apitypes.Coin{}
coins, err := ct.api.GetAllCoinData()
if err != nil {
return result, err
}
for i := range coins {
coin := coins[i]
result = append(result, &coin)
}
return result, nil
}

@ -0,0 +1,18 @@
package cointop
import (
"fmt"
humanize "github.com/dustin/go-humanize"
"github.com/miguelmota/cointop/pkg/pad"
)
func (ct *Cointop) updateMarket() error {
maxX, _ := ct.g.Size()
market, err := ct.api.GetGlobalMarketData()
if err != nil {
return err
}
fmt.Fprintln(ct.marketview, pad.Right(fmt.Sprintf("%10.stotal market cap: %s", "", humanize.Commaf(market.TotalMarketCapUSD)), maxX, " "))
return nil
}

@ -69,3 +69,21 @@ func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (types.Market
ret.VolumeUSD = graphData.VolumeUSD ret.VolumeUSD = graphData.VolumeUSD
return ret, nil return ret, nil
} }
// GetGlobalMarketData gets global market data
func (s *Service) GetGlobalMarketData() (types.GlobalMarketData, error) {
ret := types.GlobalMarketData{}
market, err := cmc.GetGlobalMarketData()
if err != nil {
return ret, err
}
ret = types.GlobalMarketData{
TotalMarketCapUSD: market.TotalMarketCapUSD,
Total24HVolumeUSD: market.Total24HVolumeUSD,
BitcoinPercentageOfMarketCap: market.BitcoinPercentageOfMarketCap,
ActiveCurrencies: market.ActiveCurrencies,
ActiveAssets: market.ActiveCurrencies,
ActiveMarkets: market.ActiveAssets,
}
return ret, nil
}

@ -9,8 +9,8 @@ type Interface interface {
GetAllCoinData() (map[string]types.Coin, error) GetAllCoinData() (map[string]types.Coin, error)
GetCoinGraphData(coin string, start int64, end int64) (types.CoinGraph, error) GetCoinGraphData(coin string, start int64, end int64) (types.CoinGraph, error)
GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error) GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error)
GetGlobalMarketData() (types.GlobalMarketData, error)
//GetCoinData(coin string) (types.Coin, error) //GetCoinData(coin string) (types.Coin, error)
//GetGlobalMarketData() (types.GlobalMarketData, error)
//GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error) //GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error)
//GetCoinPriceUSD(coin string) (float64, error) //GetCoinPriceUSD(coin string) (float64, error)
//GetCoinMarkets(coin string) ([]types.Market, error) //GetCoinMarkets(coin string) ([]types.Market, error)

Loading…
Cancel
Save