aboutsummaryrefslogtreecommitdiff
path: root/ui/search.go
diff options
context:
space:
mode:
authorVidhu Kant Sharma <vidhukant@vidhukant.xyz>2022-06-15 12:59:22 +0530
committerVidhu Kant Sharma <vidhukant@vidhukant.xyz>2022-06-15 12:59:22 +0530
commitab3db8a4ca89293ce0928177e8845d622f13755f (patch)
treee5331856b39b43cfea422f806aa046b0925e92e4 /ui/search.go
parent5eb7a3cd41826fccdc432d049dd85a31b4b56073 (diff)
added pretty template for TextInput
Diffstat (limited to 'ui/search.go')
-rw-r--r--ui/search.go49
1 files changed, 43 insertions, 6 deletions
diff --git a/ui/search.go b/ui/search.go
index c02ae22..911add5 100644
--- a/ui/search.go
+++ b/ui/search.go
@@ -25,15 +25,14 @@ import (
p "github.com/manifoldco/promptui"
mal "github.com/MikunoNaka/macli/mal"
a "github.com/MikunoNaka/MAL2Go/anime"
+ m "github.com/MikunoNaka/MAL2Go/manga"
)
// only search animes probably only now
func AnimeSearch(label, searchString string) a.Anime {
// TODO: load promptLength from config
promptLength := 5
-
- extraFields := []string{"my_list_status"}
- animes := mal.SearchAnime(searchString, extraFields)
+ animes := mal.SearchAnime(searchString)
template := &p.SelectTemplates {
Label: "{{ . }}",
@@ -61,13 +60,51 @@ More Details To Be Added Later
Size: promptLength,
}
- var anime a.Anime
animeIndex, _, err := prompt.Run()
if err != nil {
fmt.Println("Error running search menu.", err.Error())
os.Exit(1)
}
- anime = animes[animeIndex]
- return anime
+ return animes[animeIndex]
+}
+
+func MangaSearch(label, searchString string) m.Manga {
+ // TODO: load promptLength from config
+ promptLength := 5
+ mangas := mal.SearchManga(searchString)
+
+ template := &p.SelectTemplates {
+ Label: "{{ . }}",
+ Active: "{{ .Title | magenta }}",
+ Inactive: "{{ .Title }}",
+ Selected: "{{ .Title | blue }}",
+ Details: `
+--------- {{ .Title }} ----------
+More Details To Be Added Later
+`,
+ }
+
+ // returns true if input == anime title
+ searcher := func(input string, index int) bool {
+ title := strings.Replace(strings.ToLower(mangas[index].Title), " ", "", -1)
+ input = strings.Replace(strings.ToLower(input), " ", "", -1)
+ return strings.Contains(title, input)
+ }
+
+ prompt := p.Select {
+ Label: label,
+ Items: mangas,
+ Templates: template,
+ Searcher: searcher,
+ Size: promptLength,
+ }
+
+ mangaIndex, _, err := prompt.Run()
+ if err != nil {
+ fmt.Println("Error running search menu.", err.Error())
+ os.Exit(1)
+ }
+
+ return mangas[mangaIndex]
}