market cap

pull/5/head
Miguel Mota 6 years ago
parent 84371c348e
commit f7623d2699

@ -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