mirror of https://github.com/miguelmota/cointop
show url
parent
4ecf4a96ca
commit
7da09bc644
@ -0,0 +1,86 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/jroimartin/gocui"
|
||||
)
|
||||
|
||||
func (ct *Cointop) cursorDown(g *gocui.Gui, v *gocui.View) error {
|
||||
if ct.tableview == nil {
|
||||
return nil
|
||||
}
|
||||
_, y := ct.tableview.Origin()
|
||||
cx, cy := ct.tableview.Cursor()
|
||||
numRows := len(ct.coins) - 1
|
||||
//fmt.Fprint(v, cy)
|
||||
if (cy + y + 1) > numRows {
|
||||
return nil
|
||||
}
|
||||
if err := ct.tableview.SetCursor(cx, cy+1); err != nil {
|
||||
ox, oy := ct.tableview.Origin()
|
||||
if err := ct.tableview.SetOrigin(ox, oy+1); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ct *Cointop) cursorUp(g *gocui.Gui, v *gocui.View) error {
|
||||
if ct.tableview == nil {
|
||||
return nil
|
||||
}
|
||||
ox, oy := ct.tableview.Origin()
|
||||
cx, cy := ct.tableview.Cursor()
|
||||
//fmt.Fprint(v, oy)
|
||||
if err := ct.tableview.SetCursor(cx, cy-1); err != nil && oy > 0 {
|
||||
if err := ct.tableview.SetOrigin(ox, oy-1); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ct *Cointop) pageDown(g *gocui.Gui, v *gocui.View) error {
|
||||
if ct.tableview == nil {
|
||||
return nil
|
||||
}
|
||||
_, y := ct.tableview.Origin()
|
||||
cx, cy := ct.tableview.Cursor()
|
||||
numRows := len(ct.coins) - 1
|
||||
_, sy := ct.tableview.Size()
|
||||
rows := sy
|
||||
if (cy + y + rows) > numRows {
|
||||
// go to last row
|
||||
ct.tableview.SetCursor(cx, numRows)
|
||||
ox, _ := ct.tableview.Origin()
|
||||
ct.tableview.SetOrigin(ox, numRows)
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
||||
if err := ct.tableview.SetCursor(cx, cy+rows); err != nil {
|
||||
ox, oy := ct.tableview.Origin()
|
||||
if err := ct.tableview.SetOrigin(ox, oy+rows); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ct *Cointop) pageUp(g *gocui.Gui, v *gocui.View) error {
|
||||
if ct.tableview == nil {
|
||||
return nil
|
||||
}
|
||||
ox, oy := ct.tableview.Origin()
|
||||
cx, cy := ct.tableview.Cursor()
|
||||
_, sy := ct.tableview.Size()
|
||||
rows := sy
|
||||
if err := ct.tableview.SetCursor(cx, cy-rows); err != nil && oy > 0 {
|
||||
if err := ct.tableview.SetOrigin(ox, oy-rows); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/bradfitz/slice"
|
||||
"github.com/jroimartin/gocui"
|
||||
)
|
||||
|
||||
func (ct *Cointop) sort(sortby string, desc bool) func(g *gocui.Gui, v *gocui.View) error {
|
||||
return func(g *gocui.Gui, v *gocui.View) error {
|
||||
if ct.currentsort == sortby {
|
||||
ct.sortdesc = !ct.sortdesc
|
||||
} else {
|
||||
ct.currentsort = sortby
|
||||
ct.sortdesc = desc
|
||||
}
|
||||
slice.Sort(ct.coins[:], func(i, j int) bool {
|
||||
if ct.sortdesc {
|
||||
i, j = j, i
|
||||
}
|
||||
a := ct.coins[i]
|
||||
b := ct.coins[j]
|
||||
switch sortby {
|
||||
case "rank":
|
||||
return a.Rank < b.Rank
|
||||
case "name":
|
||||
return a.Name < b.Name
|
||||
case "symbol":
|
||||
return a.Symbol < b.Symbol
|
||||
case "price":
|
||||
return a.PriceUSD < b.PriceUSD
|
||||
case "marketcap":
|
||||
return a.MarketCapUSD < b.MarketCapUSD
|
||||
case "24hvolume":
|
||||
return a.USD24HVolume < b.USD24HVolume
|
||||
case "1hchange":
|
||||
return a.PercentChange1H < b.PercentChange1H
|
||||
case "24hchange":
|
||||
return a.PercentChange24H < b.PercentChange24H
|
||||
case "7dchange":
|
||||
return a.PercentChange7D < b.PercentChange7D
|
||||
case "totalsupply":
|
||||
return a.TotalSupply < b.TotalSupply
|
||||
case "availablesupply":
|
||||
return a.AvailableSupply < b.AvailableSupply
|
||||
case "lastupdated":
|
||||
return a.LastUpdated < b.LastUpdated
|
||||
default:
|
||||
return a.Rank < b.Rank
|
||||
}
|
||||
})
|
||||
g.Update(func(g *gocui.Gui) error {
|
||||
ct.tableview.Clear()
|
||||
ct.updateTable()
|
||||
return nil
|
||||
})
|
||||
/*
|
||||
g.Update(func(g *gocui.Gui) error {
|
||||
ct.chartview.Clear()
|
||||
maxX, _ := g.Size()
|
||||
_, cy := ct.chartview.Cursor()
|
||||
coin := "ethereum"
|
||||
ct.chartPoints(maxX, coin)
|
||||
ct.updateChart()
|
||||
fmt.Fprint(ct.chartview, cy)
|
||||
return nil
|
||||
})
|
||||
*/
|
||||
|
||||
ct.rowChanged()
|
||||
return nil
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue