From 5eb7a3cd41826fccdc432d049dd85a31b4b56073 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Wed, 15 Jun 2022 00:39:23 +0530 Subject: added status command to directly set status for an anime --- cmd/status.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 cmd/status.go (limited to 'cmd/status.go') 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 + +*/ +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") +} -- cgit v1.2.3