mirror of https://github.com/miguelmota/cointop
hard cache
Former-commit-id: cedd3a565c7f8a499500bc9445fa44a70cb1a895 [formerly cedd3a565c7f8a499500bc9445fa44a70cb1a895 [formerly e24f0272bac7c798381be585a83d40817c1648f6 [formerly 878ef53221b0b8614fc850546e78fa1ff7295979]]] Former-commit-id: 7f8ee8eec60d4fb0ebb73769c3d097fc39ccc2ec Former-commit-id: 250b98302b7454528741417201b3ecf389647016 [formerly 9b8aa21f0900d9549c217d78c6c25cf4c9374b6f] Former-commit-id: adfebc801b86ee03021eab460df6fa73915f666bpull/15/head
parent
4a1fbbeb9f
commit
ba562229f2
@ -0,0 +1,47 @@
|
||||
package cointop
|
||||
|
||||
func actionsMap() map[string]bool {
|
||||
return map[string]bool{
|
||||
"first_page": true,
|
||||
"help": true,
|
||||
"last_page": true,
|
||||
"move_to_page_first_row": true,
|
||||
"move_to_page_last_row": true,
|
||||
"move_to_page_visible_first_row": true,
|
||||
"move_to_page_visible_last_row": true,
|
||||
"move_to_page_visible_middle_row": true,
|
||||
"move_up": true,
|
||||
"move_down": true,
|
||||
"next_page": true,
|
||||
"open_link": true,
|
||||
"page_down": true,
|
||||
"page_up": true,
|
||||
"previous_page": true,
|
||||
"quit": true,
|
||||
"refresh": true,
|
||||
"sort_column_1h_change": true,
|
||||
"sort_column_24h_change": true,
|
||||
"sort_column_24h_volume": true,
|
||||
"sort_column_7d_change": true,
|
||||
"sort_column_asc": true,
|
||||
"sort_column_available_supply": true,
|
||||
"sort_column_desc": true,
|
||||
"sort_column_last_updated": true,
|
||||
"sort_column_market_cap": true,
|
||||
"sort_column_name": true,
|
||||
"sort_column_price": true,
|
||||
"sort_column_rank": true,
|
||||
"sort_column_symbol": true,
|
||||
"sort_column_total_supply": true,
|
||||
"sort_left_column": true,
|
||||
"sort_right_column": true,
|
||||
"toggle_row_chart": true,
|
||||
"open_search": true,
|
||||
"toggle_favorite": true,
|
||||
"toggle_show_favorites": true,
|
||||
}
|
||||
}
|
||||
|
||||
func (ct *Cointop) actionExists(action string) bool {
|
||||
return ct.actionsmap[action]
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cointop
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
func (ct *Cointop) writeCache(data []byte) error {
|
||||
path := ct.cachePath()
|
||||
err := ioutil.WriteFile(path, data, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ct *Cointop) readCache(i interface{}) (interface{}, bool, error) {
|
||||
path := ct.cachePath()
|
||||
b, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, false, err
|
||||
}
|
||||
err = json.Unmarshal(b, &i)
|
||||
if err != nil {
|
||||
return nil, false, err
|
||||
}
|
||||
return i, true, nil
|
||||
}
|
||||
|
||||
func (ct *Cointop) cachePath() string {
|
||||
return fmt.Sprintf("%v%v", ct.configDirPath(), "/.cache")
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package cointop
|
||||
|
||||
import "log"
|
||||
|
||||
func (ct *Cointop) debuglog(s string) {
|
||||
if ct.debug {
|
||||
// TODO: do status debug bar
|
||||
log.Println(s)
|
||||
}
|
||||
}
|
@ -1,8 +1,36 @@
|
||||
package cointop
|
||||
|
||||
import "github.com/miguelmota/cointop/pkg/open"
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/miguelmota/cointop/pkg/open"
|
||||
)
|
||||
|
||||
func (ct *Cointop) openLink() error {
|
||||
open.URL(ct.rowLink())
|
||||
return nil
|
||||
}
|
||||
|
||||
func getBytes(key interface{}) ([]byte, error) {
|
||||
var buf bytes.Buffer
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(key)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
func userHomeDir() string {
|
||||
if runtime.GOOS == "windows" {
|
||||
home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
|
||||
if home == "" {
|
||||
home = os.Getenv("USERPROFILE")
|
||||
}
|
||||
return home
|
||||
}
|
||||
return os.Getenv("HOME")
|
||||
}
|
||||
|
Loading…
Reference in New Issue