aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/root.go4
-rw-r--r--cmd/search.go13
-rw-r--r--cmd/status.go43
-rw-r--r--cmd/version.go2
-rw-r--r--ui/status.go11
5 files changed, 49 insertions, 24 deletions
diff --git a/cmd/root.go b/cmd/root.go
index c1e939c..f1fba18 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -41,7 +41,3 @@ func Execute() {
os.Exit(1)
}
}
-
-func init() {
- rootCmd.PersistentFlags().IntVar(&entryId, "id", -1, "Manually specify the ID of anime/manga (overrides search)")
-}
diff --git a/cmd/search.go b/cmd/search.go
index 92a1b24..0c166b2 100644
--- a/cmd/search.go
+++ b/cmd/search.go
@@ -56,6 +56,12 @@ var searchCmd = &cobra.Command {
}
func searchManga(searchInput string) {
+ if entryId > 0 {
+ selectedManga := mal.GetMangaData(entryId, []string{"my_list_status", "title"})
+ fmt.Println("Selected: \x1b[35m" + selectedManga.Title + "\x1b[0m")
+ ui.MangaActionMenu(selectedManga.MyListStatus.Status != "")(selectedManga)
+ os.Exit(0)
+ }
if searchInput == "" {
searchInput = ui.TextInput("Search Manga: ", "Search can't be blank.")
}
@@ -66,6 +72,12 @@ func searchManga(searchInput string) {
}
func searchAnime(searchInput string) {
+ if entryId > 0 {
+ selectedAnime := mal.GetAnimeData(entryId, []string{"my_list_status"})
+ fmt.Println("Selected: \x1b[35m" + selectedAnime.Title + "\x1b[0m")
+ ui.AnimeActionMenu(selectedAnime.MyListStatus.Status != "")(selectedAnime)
+ os.Exit(0)
+ }
if searchInput == "" {
searchInput = ui.TextInput("Search Anime: ", "Search can't be blank.")
}
@@ -83,4 +95,5 @@ func init() {
searchCmd.Flags().IntVarP(&mal.SearchOffset, "search-offset", "o", 0, "Offset for the search results")
searchCmd.Flags().BoolVarP(&mal.SearchNSFW, "search-nsfw", "", false, "Include NSFW-rated items in search results")
searchCmd.Flags().BoolVarP(&queryOnlyMode, "query", "q", false, "Query only (don't update data)")
+ searchCmd.Flags().IntVarP(&entryId, "id", "i", -1, "Manually specify the ID of anime/manga (overrides search)")
}
diff --git a/cmd/status.go b/cmd/status.go
index 540d84e..ba5d047 100644
--- a/cmd/status.go
+++ b/cmd/status.go
@@ -24,6 +24,8 @@ import (
"strings"
"github.com/MikunoNaka/macli/ui"
"github.com/MikunoNaka/macli/mal"
+ a "github.com/MikunoNaka/MAL2Go/v3/anime"
+ m "github.com/MikunoNaka/MAL2Go/v3/manga"
"github.com/spf13/cobra"
)
@@ -63,7 +65,12 @@ var statusCmd = &cobra.Command{
}
func setAnimeStatus(statusInput, searchInput string) {
- if searchInput == "" {
+ var selectedAnime a.Anime
+ if entryId > 0 {
+ selectedAnime = mal.GetAnimeData(entryId, []string{"my_list_status"})
+ }
+
+ if searchInput == "" && entryId < 1 {
var promptText string
if queryOnlyMode {
promptText = "Search Anime to Get Status of: "
@@ -73,26 +80,31 @@ func setAnimeStatus(statusInput, searchInput string) {
searchInput = ui.TextInput(promptText, "Search can't be blank.")
}
- anime := ui.AnimeSearch("Select Anime:", searchInput)
- selectedAnime := mal.GetAnimeData(anime.Id, []string{"my_list_status"})
+ if entryId < 1 {
+ anime := ui.AnimeSearch("Select Anime:", searchInput)
+ selectedAnime = mal.GetAnimeData(anime.Id, []string{"my_list_status"})
+ }
if queryOnlyMode {
- status := selectedAnime.MyListStatus.Status
- // fmt.Printf("Anime: \x1b[35m%s\x1b[0m, Status: %s%s\x1b[0m\n", anime.Title, ui.GetColorCodeByStatus(status), ui.FormatStatus(status))
- fmt.Printf("\x1b[35m%s\x1b[0m :: %s%s\x1b[0m\n", anime.Title, ui.GetColorCodeByStatus(status), ui.FormatStatus(status))
+ fmt.Println(ui.CreateStatusUpdateConfirmationMessage(selectedAnime.Title, selectedAnime.MyListStatus.Status, ""))
os.Exit(0)
}
if statusInput == "" {
ui.AnimeStatusMenu(selectedAnime)
} else {
- resp := mal.SetAnimeStatus(anime.Id, statusInput)
- fmt.Println(ui.CreateStatusUpdateConfirmationMessage(anime.Title, resp.Status))
+ resp := mal.SetAnimeStatus(selectedAnime.Id, statusInput)
+ fmt.Println(ui.CreateStatusUpdateConfirmationMessage(selectedAnime.Title, resp.Status, selectedAnime.MyListStatus.Status))
}
}
func setMangaStatus(statusInput, searchInput string) {
- if searchInput == "" {
+ var selectedManga m.Manga
+ if entryId > 0 {
+ selectedManga = mal.GetMangaData(entryId, []string{"my_list_status"})
+ }
+
+ if searchInput == "" && entryId < 1 {
var promptText string
if queryOnlyMode {
promptText = "Search Manga to Get Status of: "
@@ -102,13 +114,13 @@ func setMangaStatus(statusInput, searchInput string) {
searchInput = ui.TextInput(promptText, "Search can't be blank.")
}
- manga := ui.MangaSearch("Select Manga:", searchInput)
- selectedManga := mal.GetMangaData(manga.Id, []string{"my_list_status"})
+ if entryId < 1 {
+ manga := ui.MangaSearch("Select Manga:", searchInput)
+ selectedManga = mal.GetMangaData(manga.Id, []string{"my_list_status"})
+ }
if queryOnlyMode {
- status := selectedManga.MyListStatus.Status
- // fmt.Printf("Manga: \x1b[35m%s\x1b[0m, Status: %s%s\x1b[0m\n", manga.Title, ui.GetColorCodeByStatus(status), ui.FormatStatus(status))
- fmt.Printf("\x1b[35m%s\x1b[0m :: %s%s\x1b[0m\n", manga.Title, ui.GetColorCodeByStatus(status), ui.FormatStatus(status))
+ fmt.Println(ui.CreateStatusUpdateConfirmationMessage(selectedManga.Title, selectedManga.MyListStatus.Status, ""))
os.Exit(0)
}
@@ -117,7 +129,7 @@ func setMangaStatus(statusInput, searchInput string) {
} else {
resp := mal.SetMangaStatus(selectedManga.Id, statusInput)
fmt.Println(resp.Status)
- fmt.Println(ui.CreateStatusUpdateConfirmationMessage(manga.Title, resp.Status))
+ fmt.Println(ui.CreateStatusUpdateConfirmationMessage(selectedManga.Title, resp.Status, selectedManga.MyListStatus.Status))
}
}
@@ -130,4 +142,5 @@ func init() {
statusCmd.Flags().BoolVarP(&mal.SearchNSFW, "search-nsfw", "", false, "Include NSFW-rated items in search results")
statusCmd.Flags().BoolVarP(&mangaMode, "manga", "m", false, "Use manga mode")
statusCmd.Flags().BoolVarP(&queryOnlyMode, "query", "q", false, "Query only (don't update data)")
+ statusCmd.Flags().IntVarP(&entryId, "id", "i", -1, "Manually specify the ID of anime/manga (overrides search)")
}
diff --git a/cmd/version.go b/cmd/version.go
index ddca5e4..2721e89 100644
--- a/cmd/version.go
+++ b/cmd/version.go
@@ -24,7 +24,7 @@ import (
"github.com/spf13/cobra"
)
-var version string = "v1.7.2"
+const version string = "v1.7.2"
var versionCmd = &cobra.Command {
Use: "version",
diff --git a/ui/status.go b/ui/status.go
index c3d16e7..f5425b4 100644
--- a/ui/status.go
+++ b/ui/status.go
@@ -77,8 +77,11 @@ func FormatStatus(status string) string {
}
// very short name I know
-func CreateStatusUpdateConfirmationMessage(title, status string) string {
- return "Set \x1b[35m" + title + "\x1b[0m status to " + GetColorCodeByStatus(status) + FormatStatus(status) + "\x1b[0m"
+func CreateStatusUpdateConfirmationMessage(title, status, prevStatus string) string {
+ if prevStatus != "" {
+ return fmt.Sprintf("\x1b[35m%s\x1b[0m Status :: %s%s\x1b[0m -> %s%s\x1b[0m", title, GetColorCodeByStatus(status), FormatStatus(status), GetColorCodeByStatus(prevStatus), FormatStatus(prevStatus))
+ }
+ return "\x1b[35m" + title + "\x1b[0m Status :: " + GetColorCodeByStatus(status) + FormatStatus(status) + "\x1b[0m"
}
func AnimeStatusMenu(anime a.Anime) {
@@ -134,7 +137,7 @@ func AnimeStatusMenu(anime a.Anime) {
}
resp := mal.SetAnimeStatus(anime.Id, options[res].Status)
- fmt.Println(CreateStatusUpdateConfirmationMessage(anime.Title, resp.Status))
+ fmt.Println(CreateStatusUpdateConfirmationMessage(anime.Title, resp.Status, anime.MyListStatus.Status))
}
func MangaStatusMenu(manga m.Manga) {
@@ -190,5 +193,5 @@ func MangaStatusMenu(manga m.Manga) {
}
resp := mal.SetMangaStatus(manga.Id, options[res].Status)
- fmt.Println(CreateStatusUpdateConfirmationMessage(manga.Title, resp.Status))
+ fmt.Println(CreateStatusUpdateConfirmationMessage(manga.Title, resp.Status, manga.MyListStatus.Status))
}