tempus/main.go

107 lines
2.1 KiB
Go
Raw Normal View History

2024-06-17 08:06:32 +00:00
package main
import (
"fmt"
"os"
"sync"
2024-06-19 19:27:13 +00:00
"time"
2024-06-21 18:38:41 +00:00
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/bubbles/list"
// "strconv"
)
2024-06-17 08:06:32 +00:00
var waitGroup sync.WaitGroup
2024-06-19 19:27:13 +00:00
func errHandler(err error, message string) {
if err != nil {
fmt.Printf("\n\n%s: %s\n", message, err)
os.Exit(1)
}
}
2024-06-17 08:06:32 +00:00
func main() {
options, err := ParseOptions()
errHandler(err, "Error parsing options")
2024-06-21 18:38:41 +00:00
// debugKeyring()
err = storeCredentialsToKeyring("https://pkg.go.dev/encoding/base64#Encoding.EncodeToString","casual","h>ÕdzPlÇqQ+çCQ{ð±;Kм7¸Âhð~Ümy)v")
errHandler(err, "Error parsing options")
// url1,login1,password1,err := getCredentialsFromKeyring()
// errHandler(err, "Error parsing options")
// m.loginInputs[url].Value()
// m.loginInputs[login].Value()
// m.loginInputs[pass].Value()
// if true {os.Exit(1)}
2024-06-19 19:27:13 +00:00
options.InitDAVclients()
2024-06-17 08:06:32 +00:00
2024-06-19 19:27:13 +00:00
calendars, err := GetCalendars()
errHandler(err, "Error getting calendars")
2024-06-17 08:06:32 +00:00
2024-06-21 18:38:41 +00:00
for _, calendar := range calendars {
2024-06-19 19:27:13 +00:00
fmt.Println(calendar.Name, "-", calendar.Path)
2024-06-17 08:06:32 +00:00
}
2024-06-19 19:27:13 +00:00
calendarObjects, err := GetTODOs(calendars[1].Path)
2024-06-21 18:38:41 +00:00
errHandler(err, "Error getting TODOs")
2024-06-17 08:06:32 +00:00
2024-06-19 19:27:13 +00:00
today := time.Now()
2024-06-21 18:38:41 +00:00
todayTodos, err := ParseDueDateTODOs(calendarObjects, today)
tomorrow := time.Now().AddDate(0,0,1)
tomorrowTodos, err := ParseDueDateTODOs(calendarObjects, tomorrow)
2024-06-19 19:27:13 +00:00
2024-06-21 18:38:41 +00:00
// fmt.Println(todos)
fmt.Println("In total we have", len(calendarObjects), "todos")
2024-06-19 19:27:13 +00:00
2024-06-21 18:38:41 +00:00
var itemsToday []list.Item
var itemsTomorrow []list.Item
2024-06-19 19:27:13 +00:00
2024-06-21 18:38:41 +00:00
for _,todo := range todayTodos {
itemsToday = append(itemsToday,todo)
}
for _,todo := range tomorrowTodos {
itemsTomorrow = append(itemsTomorrow,todo)
}
m := InitModel()
m.TodayTab = list.New(itemsToday, list.NewDefaultDelegate(), 0, 0)
m.TodayTab.Title = "Today"
m.TomorrowTab = list.New(itemsTomorrow, list.NewDefaultDelegate(), 0, 0)
m.TomorrowTab.Title = "Tomorrow"
// m.LoggedIn = true
m.ActiveWindow = "login"
p := tea.NewProgram(m, tea.WithAltScreen())
if _, err := p.Run(); err != nil {
fmt.Println("Error running program:", err)
os.Exit(1)
}
fmt.Println(m.loginInputs[login].Value())
}