mirror of
https://github.com/sstent/go-garth-cli.git
synced 2026-01-27 09:31:59 +00:00
sync
This commit is contained in:
62
python-garmin-connect/connect/sleep.go
Normal file
62
python-garmin-connect/connect/sleep.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
connect "github.com/abrander/garmin-connect"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func init() {
|
||||
sleepCmd := &cobra.Command{
|
||||
Use: "sleep",
|
||||
}
|
||||
rootCmd.AddCommand(sleepCmd)
|
||||
|
||||
sleepSummaryCmd := &cobra.Command{
|
||||
Use: "summary <date> [displayName]",
|
||||
Short: "Show sleep summary for date",
|
||||
Run: sleepSummary,
|
||||
Args: cobra.RangeArgs(1, 2),
|
||||
}
|
||||
sleepCmd.AddCommand(sleepSummaryCmd)
|
||||
}
|
||||
|
||||
func sleepSummary(_ *cobra.Command, args []string) {
|
||||
date, err := connect.ParseDate(args[0])
|
||||
bail(err)
|
||||
|
||||
displayName := ""
|
||||
|
||||
if len(args) > 1 {
|
||||
displayName = args[1]
|
||||
}
|
||||
|
||||
summary, _, levels, err := client.SleepData(displayName, date.Time())
|
||||
bail(err)
|
||||
|
||||
t := NewTabular()
|
||||
t.AddValue("Start", summary.StartGMT)
|
||||
t.AddValue("End", summary.EndGMT)
|
||||
t.AddValue("Sleep", hoursAndMinutes(summary.Sleep))
|
||||
t.AddValue("Nap", hoursAndMinutes(summary.Nap))
|
||||
t.AddValue("Unmeasurable", hoursAndMinutes(summary.Unmeasurable))
|
||||
t.AddValue("Deep", hoursAndMinutes(summary.Deep))
|
||||
t.AddValue("Light", hoursAndMinutes(summary.Light))
|
||||
t.AddValue("REM", hoursAndMinutes(summary.REM))
|
||||
t.AddValue("Awake", hoursAndMinutes(summary.Awake))
|
||||
t.AddValue("Confirmed", summary.Confirmed)
|
||||
t.AddValue("Confirmation Type", summary.Confirmation)
|
||||
t.AddValue("REM Data", summary.REMData)
|
||||
t.Output(os.Stdout)
|
||||
|
||||
fmt.Fprintf(os.Stdout, "\n")
|
||||
|
||||
t2 := NewTable()
|
||||
t2.AddHeader("Start", "End", "State", "Duration")
|
||||
for _, l := range levels {
|
||||
t2.AddRow(l.Start, l.End, l.State, hoursAndMinutes(l.End.Sub(l.Start.Time)))
|
||||
}
|
||||
t2.Output(os.Stdout)
|
||||
}
|
||||
Reference in New Issue
Block a user