mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
WTF-400 GSpreadsheets extracted to new config format
This commit is contained in:
parent
6e053fc117
commit
4c6aacac50
3
main.go
3
main.go
@ -226,7 +226,8 @@ func makeWidget(app *tview.Application, pages *tview.Pages, widgetName string) w
|
||||
settings := gitter.NewSettingsFromYAML(wtf.Config)
|
||||
widget = gitter.NewWidget(app, pages, settings)
|
||||
case "gspreadsheets":
|
||||
widget = gspreadsheets.NewWidget(app)
|
||||
settings := gspreadsheets.NewSettingsFromYAML(wtf.Config)
|
||||
widget = gspreadsheets.NewWidget(app, settings)
|
||||
case "hackernews":
|
||||
widget = hackernews.NewWidget(app, pages)
|
||||
case "ipapi":
|
||||
|
@ -26,10 +26,10 @@ import (
|
||||
|
||||
/* -------------------- Exported Functions -------------------- */
|
||||
|
||||
func Fetch() ([]*sheets.ValueRange, error) {
|
||||
func (widget *Widget) Fetch() ([]*sheets.ValueRange, error) {
|
||||
ctx := context.Background()
|
||||
|
||||
secretPath, _ := wtf.ExpandHomeDir(wtf.Config.UString("wtf.mods.gspreadsheets.secretFile"))
|
||||
secretPath, _ := wtf.ExpandHomeDir(widget.settings.secretFile)
|
||||
|
||||
b, err := ioutil.ReadFile(secretPath)
|
||||
if err != nil {
|
||||
@ -51,14 +51,13 @@ func Fetch() ([]*sheets.ValueRange, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cells := wtf.ToStrs(wtf.Config.UList("wtf.mods.gspreadsheets.cells.addresses"))
|
||||
documentId := wtf.Config.UString("wtf.mods.gspreadsheets.sheetId")
|
||||
cells := wtf.ToStrs(widget.settings.cellAddresses)
|
||||
addresses := strings.Join(cells[:], ";")
|
||||
|
||||
responses := make([]*sheets.ValueRange, len(cells))
|
||||
|
||||
for i := 0; i < len(cells); i++ {
|
||||
resp, err := srv.Spreadsheets.Values.Get(documentId, cells[i]).Do()
|
||||
resp, err := srv.Spreadsheets.Values.Get(widget.settings.sheetID, cells[i]).Do()
|
||||
if err != nil {
|
||||
log.Fatalf("Error fetching cells %s", addresses)
|
||||
return nil, err
|
||||
|
36
modules/gspreadsheets/settings.go
Normal file
36
modules/gspreadsheets/settings.go
Normal file
@ -0,0 +1,36 @@
|
||||
package gspreadsheets
|
||||
|
||||
import (
|
||||
"github.com/olebedev/config"
|
||||
"github.com/wtfutil/wtf/cfg"
|
||||
)
|
||||
|
||||
type colors struct {
|
||||
values string
|
||||
}
|
||||
|
||||
type Settings struct {
|
||||
colors
|
||||
common *cfg.Common
|
||||
|
||||
cellAddresses []interface{}
|
||||
cellNames []interface{}
|
||||
secretFile string
|
||||
sheetID string
|
||||
}
|
||||
|
||||
func NewSettingsFromYAML(ymlConfig *config.Config) *Settings {
|
||||
localConfig, _ := ymlConfig.Get("wtf.mods.gspreadsheets")
|
||||
|
||||
settings := Settings{
|
||||
common: cfg.NewCommonSettingsFromYAML(ymlConfig),
|
||||
|
||||
cellNames: localConfig.UList("cells.names"),
|
||||
secretFile: localConfig.UString("secretFile"),
|
||||
sheetID: localConfig.UString("sheetId"),
|
||||
}
|
||||
|
||||
settings.colors.values = localConfig.UString("colors.values", "green")
|
||||
|
||||
return &settings
|
||||
}
|
@ -10,11 +10,15 @@ import (
|
||||
|
||||
type Widget struct {
|
||||
wtf.TextWidget
|
||||
|
||||
settings *Settings
|
||||
}
|
||||
|
||||
func NewWidget(app *tview.Application) *Widget {
|
||||
func NewWidget(app *tview.Application, settings *Settings) *Widget {
|
||||
widget := Widget{
|
||||
TextWidget: wtf.NewTextWidget(app, "Google Spreadsheets", "gspreadsheets", false),
|
||||
|
||||
settings: settings,
|
||||
}
|
||||
|
||||
return &widget
|
||||
@ -23,7 +27,7 @@ func NewWidget(app *tview.Application) *Widget {
|
||||
/* -------------------- Exported Functions -------------------- */
|
||||
|
||||
func (widget *Widget) Refresh() {
|
||||
cells, _ := Fetch()
|
||||
cells, _ := widget.Fetch()
|
||||
|
||||
widget.View.SetText(widget.contentFrom(cells))
|
||||
}
|
||||
@ -35,12 +39,11 @@ func (widget *Widget) contentFrom(valueRanges []*sheets.ValueRange) string {
|
||||
return "error 1"
|
||||
}
|
||||
|
||||
valuesColor := wtf.Config.UString("wtf.mods.gspreadsheets.colors.values", "green")
|
||||
res := ""
|
||||
|
||||
cells := wtf.ToStrs(wtf.Config.UList("wtf.mods.gspreadsheets.cells.names"))
|
||||
cells := wtf.ToStrs(widget.settings.cellNames)
|
||||
for i := 0; i < len(valueRanges); i++ {
|
||||
res = res + fmt.Sprintf("%s\t[%s]%s\n", cells[i], valuesColor, valueRanges[i].Values[0][0])
|
||||
res = res + fmt.Sprintf("%s\t[%s]%s\n", cells[i], widget.settings.colors.values, valueRanges[i].Values[0][0])
|
||||
}
|
||||
|
||||
return res
|
||||
|
Loading…
x
Reference in New Issue
Block a user