aboutsummaryrefslogtreecommitdiff
path: root/ui/episodes.go
diff options
context:
space:
mode:
authorVidhu Kant Sharma <vidhukant@protonmail.ch>2022-06-15 00:08:39 +0530
committerVidhu Kant Sharma <vidhukant@protonmail.ch>2022-06-15 00:08:39 +0530
commit028632de277704fe4576e732d4997daa70f25f60 (patch)
tree343137fc2b19cb7c9568324a9529218ca6065e49 /ui/episodes.go
parent5ac21806f34a7c88d2685420d53cbd585f4b4f3d (diff)
added color coding and error handling + other visual appeal
Diffstat (limited to 'ui/episodes.go')
-rw-r--r--ui/episodes.go58
1 files changed, 20 insertions, 38 deletions
diff --git a/ui/episodes.go b/ui/episodes.go
index a2413bd..53c1cb9 100644
--- a/ui/episodes.go
+++ b/ui/episodes.go
@@ -20,64 +20,46 @@ package ui
import (
"strconv"
- "log"
+ "fmt"
+ "os"
+ "errors"
"github.com/MikunoNaka/macli/mal"
+ a "github.com/MikunoNaka/MAL2Go/anime"
+ // m "github.com/MikunoNaka/MAL2Go/manga"
p "github.com/manifoldco/promptui"
)
-func EpisodeInput(animeId int) {
+func EpisodeInput(anime a.Anime) {
validate := func(input string) error {
- _, err := strconv.ParseFloat(input, 64)
- return err
+ if _, err := strconv.ParseFloat(input, 64); err != nil {
+ return errors.New("Input must be a number.")
+ }
+ return nil
}
template := &p.PromptTemplates {
- Prompt: "{{ . }} ",
- Valid: "{{ . }} ",
- Invalid: "{{ . | red }} ",
- Success: "{{ . }} ",
+ Valid: "\x1b[0m{{ . | magenta }}",
+ Invalid: "\x1b[0m{{ . | magenta }}\x1b[31m ",
+ Success: "{{ . | cyan }}",
}
prompt := p.Prompt {
- // Label: "Set Episode Number: (Increment/Decrement With +1, -2, etc)",
Label: "Set Episode Number: ",
Templates: template,
Validate: validate,
}
- res, err := prompt.Run()
- if err != nil {
- log.Println("Error Running EpisodeInput Prompt.", err)
- return
- }
-
- mal.SetEpisodes(animeId, res)
-}
-
-func ChapterInput(mangaId int) {
- validate := func(input string) error {
- _, err := strconv.ParseFloat(input, 64)
- return err
- }
-
- template := &p.PromptTemplates {
- Prompt: "{{ . }} ",
- Valid: "{{ . }} ",
- Invalid: "{{ . | red }} ",
- Success: "{{ . }} ",
- }
-
- prompt := p.Prompt {
- Label: "Set Chapter Number: (Increment/Decrement With +1, -2, etc)",
- Templates: template,
- Validate: validate,
+ // print current episode number if any
+ epNum := anime.MyListStatus.EpWatched
+ if epNum != 0 {
+ fmt.Printf("\x1b[33mYou currently have watched %d episodes.\n\x1b[0m", epNum)
}
res, err := prompt.Run()
if err != nil {
- log.Println("Error Running ChapterInput Prompt.", err)
- return
+ fmt.Println("Error Running episode input Prompt.", err.Error())
+ os.Exit(1)
}
- mal.SetChapters(mangaId, res)
+ mal.SetEpisodes(anime.Id, res)
}