aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/root.go2
-rw-r--r--cmd/search.go6
-rw-r--r--cmd/status.go64
-rw-r--r--mal/status.go12
4 files changed, 77 insertions, 7 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")
+}
diff --git a/mal/status.go b/mal/status.go
index 06d7773..422a838 100644
--- a/mal/status.go
+++ b/mal/status.go
@@ -19,12 +19,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package mal
import (
- "log"
+ "fmt"
+ "os"
)
func SetStatus(animeId int, status string) {
- resp, _ := userAnimeClient.SetStatus(animeId, status)
+ resp, err := userAnimeClient.SetStatus(animeId, status)
+ if err != nil {
+ fmt.Println("Error while parsing status:", err.Error())
+ os.Exit(1)
+ }
if resp.Error != "" {
- log.Println("MyAnimeList reported error on SetStatus", resp.Error, resp.Message)
+ fmt.Println("MyAnimeList reported error on SetStatus", resp.Error, resp.Message)
+ os.Exit(1)
}
}