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
```
## TODO
- markets/exchanges
- search, using /
- euro/yen
- mark favorites
- cryptocompare api
- more cool stuff
## Authors
- [Miguel Mota](https://github.com/miguelmota)

@ -1,14 +1,12 @@
package cointop
import (
"fmt"
"log"
"github.com/gizak/termui"
"github.com/jroimartin/gocui"
"github.com/miguelmota/cointop/pkg/api"
apitypes "github.com/miguelmota/cointop/pkg/api/types"
"github.com/miguelmota/cointop/pkg/pad"
"github.com/miguelmota/cointop/pkg/table"
)
@ -37,32 +35,6 @@ type Cointop struct {
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
func Run() {
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 (
"github.com/jroimartin/gocui"
apitypes "github.com/miguelmota/cointop/pkg/api/types"
"github.com/miguelmota/cointop/pkg/pad"
"github.com/miguelmota/cointop/pkg/table"
)
@ -40,7 +41,7 @@ func (ct *Cointop) layout(g *gocui.Gui) error {
t := table.New().SetWidth(maxX)
headers := []string{
pad.Right("[r]ank", 7, " "),
pad.Right("[n]ame", 22, " "),
pad.Right("[n]ame", 18, " "),
pad.Right("[s]ymbol", 8, " "),
pad.Left("[p]rice", 13, " "),
pad.Left("[m]arket cap", 17, " "),
@ -99,3 +100,18 @@ func (ct *Cointop) layout(g *gocui.Gui) error {
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
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)
GetCoinGraphData(coin string, start int64, end int64) (types.CoinGraph, error)
GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error)
GetGlobalMarketData() (types.GlobalMarketData, error)
//GetCoinData(coin string) (types.Coin, error)
//GetGlobalMarketData() (types.GlobalMarketData, error)
//GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error)
//GetCoinPriceUSD(coin string) (float64, error)
//GetCoinMarkets(coin string) ([]types.Market, error)

Loading…
Cancel
Save