| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package root
- import (
- "log/slog"
- "github.com/ayn2op/discordo/internal/clipboard"
- "github.com/ayn2op/discordo/internal/keyring"
- "github.com/ayn2op/tview"
- "github.com/gdamore/tcell/v3"
- )
- type tokenEvent struct {
- tcell.EventTime
- token string
- }
- func tokenCommand(token string) tview.Command {
- return func() tview.Event {
- return &tokenEvent{token: token}
- }
- }
- type loginEvent struct{ tcell.EventTime }
- func getToken() tview.Command {
- return func() tview.Event {
- token, err := keyring.GetToken()
- if err != nil {
- slog.Warn("failed to retrieve token from keyring", "err", err)
- return &loginEvent{}
- }
- return &tokenEvent{token: token}
- }
- }
- func setToken(token string) tview.Command {
- return func() tview.Event {
- if err := keyring.SetToken(token); err != nil {
- slog.Error("failed to set token to keyring", "err", err)
- return tcell.NewEventError(err)
- }
- return nil
- }
- }
- func deleteToken() tview.Command {
- return func() tview.Event {
- if err := keyring.DeleteToken(); err != nil {
- slog.Error("failed to delete token from keyring", "err", err)
- return tcell.NewEventError(err)
- }
- return nil
- }
- }
- func initClipboard() tview.Command {
- return func() tview.Event {
- if err := clipboard.Init(); err != nil {
- slog.Error("failed to init clipboard", "err", err)
- return tcell.NewEventError(err)
- }
- return nil
- }
- }
|