diff options
author | Vidhu Kant Sharma <vidhukant@protonmail.ch> | 2022-06-15 00:39:23 +0530 |
---|---|---|
committer | Vidhu Kant Sharma <vidhukant@protonmail.ch> | 2022-06-15 00:39:23 +0530 |
commit | 5eb7a3cd41826fccdc432d049dd85a31b4b56073 (patch) | |
tree | c41cda8e9b4648991b85d44405397212612b2bc7 /cmd | |
parent | 028632de277704fe4576e732d4997daa70f25f60 (diff) |
added status command to directly set status for an anime
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/root.go | 2 | ||||
-rw-r--r-- | cmd/search.go | 6 | ||||
-rw-r--r-- | cmd/status.go | 64 |
3 files changed, 68 insertions, 4 deletions
diff --git a/cmd/root.go b/cmd/root.go index b9967b4..e23a221 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -37,5 +37,5 @@ func Execute() { } func init() { - rootCmd.PersistentFlags().BoolP("manga", "m", false, "Use Manga Mode.") + rootCmd.PersistentFlags().BoolP("manga", "m", false, "use manga mode") } diff --git a/cmd/search.go b/cmd/search.go index 463b109..28be82c 100644 --- a/cmd/search.go +++ b/cmd/search.go @@ -27,7 +27,7 @@ import ( var searchCmd = &cobra.Command { Use: "search", - Short: "Search for an anime.", + Short: "Search for an anime/manga", Long: ` -- help/description to be added later `, @@ -54,9 +54,9 @@ func searchManga(searchInput string) { func searchAnime(searchInput string) { animeIsAdded := false if searchInput == "" { - searchInput = ui.TextInput("Search Anime:", "Search can't be blank.") + searchInput = ui.TextInput("Search Anime", "Search can't be blank.") } - anime := ui.AnimeSearch("Select Anime", searchInput) + anime := ui.AnimeSearch("Select Anime:", searchInput) if anime.MyListStatus.Status != "" { animeIsAdded = true } diff --git a/cmd/status.go b/cmd/status.go new file mode 100644 index 0000000..d1b45c2 --- /dev/null +++ b/cmd/status.go @@ -0,0 +1,64 @@ +/* +Copyright © 2022 NAME HERE <EMAIL ADDRESS> + +*/ +package cmd + +import ( + "fmt" + "strings" + "github.com/MikunoNaka/macli/ui" + "github.com/MikunoNaka/macli/mal" + + "github.com/spf13/cobra" +) + +// statusCmd represents the status command +var statusCmd = &cobra.Command{ + Use: "status", + Short: "Set an anime/manga's status", + Long: ` +-- help/description to be added later +`, + Run: func(cmd *cobra.Command, args []string) { + searchInput := strings.Join(args, " ") + + statusInput, err := cmd.Flags().GetString("status") + if err != nil { + fmt.Println("Error while reading status flag.", err.Error()) + } + + mangaMode, err := cmd.Flags().GetBool("manga") + if err != nil { + fmt.Println("Error while reading manga flag.", err.Error()) + } + + if mangaMode { + // setMangaStatus(statusInput, searchInput) + fmt.Println("Manga mode coming soon") + } else { + setAnimeStatus(statusInput, searchInput) + } + + }, +} + +func setAnimeStatus(statusInput, searchInput string) { + if searchInput == "" { + searchInput = ui.TextInput("Search Anime To Update", "Search can't be blank.") + } + + anime := ui.AnimeSearch("Select Anime:", searchInput) + + if statusInput == "" { + ui.StatusMenu(anime) + } else { + mal.SetStatus(anime.Id, statusInput) + fmt.Printf("Successfully set \"%s\" to \"%s\"", anime.Title, statusInput) + } +} + +func init() { + rootCmd.AddCommand(statusCmd) + statusCmd.Flags().StringP("status", "s", "", "status to be set") +} |