aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/seasonals.go60
-rw-r--r--mal/seasonals.go40
-rw-r--r--util/season.go50
3 files changed, 150 insertions, 0 deletions
diff --git a/cmd/seasonals.go b/cmd/seasonals.go
new file mode 100644
index 0000000..1e3eb20
--- /dev/null
+++ b/cmd/seasonals.go
@@ -0,0 +1,60 @@
+/*
+macli - Unofficial CLI-Based MyAnimeList Client
+Copyright © 2022 Vidhu Kant Sharma <vidhukant@vidhukant.xyz>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package cmd
+
+import (
+ // "os"
+ "fmt"
+ // "strings"
+ "github.com/MikunoNaka/macli/ui"
+ "github.com/MikunoNaka/macli/util"
+ "github.com/MikunoNaka/macli/mal"
+
+ "github.com/spf13/cobra"
+)
+
+// statusCmd represents the status command
+var seasonalsCmd = &cobra.Command{
+ Use: "seasonals",
+ Short: "Get seasonal animes",
+ Long: "" +
+ "" +
+ "",
+
+ Run: func(cmd *cobra.Command, args []string) {
+ mal.Init()
+ currentSeason := util.GetCurrentSeason()
+
+ res := mal.GetSeasonalAnime(currentSeason, "anime_score")
+ for _, i := range res {
+ fmt.Println(i.Title)
+ }
+ },
+}
+
+
+func init() {
+ rootCmd.AddCommand(seasonalsCmd)
+ seasonalsCmd.Flags().IntVarP(&ui.PromptLength, "prompt-length", "l", 5, "Length of select prompt")
+ seasonalsCmd.Flags().BoolVarP(&queryOnlyMode, "query", "q", false, "Query only (don't update data)")
+
+ seasonalsCmd.Flags().IntVarP(&mal.SearchLength, "results-length", "n", 10, "Amount of results to load")
+ seasonalsCmd.Flags().BoolVarP(&mal.SearchNSFW, "include-nsfw", "", false, "Include NSFW-rated items in results")
+ seasonalsCmd.Flags().IntVarP(&mal.SearchOffset, "results-offset", "o", 0, "Offset for the results")
+}
diff --git a/mal/seasonals.go b/mal/seasonals.go
new file mode 100644
index 0000000..3d499fe
--- /dev/null
+++ b/mal/seasonals.go
@@ -0,0 +1,40 @@
+/*
+macli - Unofficial CLI-Based MyAnimeList Client
+Copyright © 2022 Vidhu Kant Sharma <vidhukant@vidhukant.xyz>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package mal
+
+import (
+ "fmt"
+ "os"
+ "strconv"
+ a "github.com/MikunoNaka/MAL2Go/v4/anime"
+)
+
+func GetSeasonalAnime(season a.Season, sort string) []a.Anime {
+ year := strconv.Itoa(season.Year)
+ fields := []string{"title", "id"}
+ fmt.Println(SearchLength, SearchOffset, SearchNSFW)
+
+ res, err := animeClient.GetSeasonalAnime(year, season.Name, sort, SearchLength, SearchOffset, SearchNSFW, fields)
+ if err != nil {
+ fmt.Println("MyAnimeList reported error while getting seasonal animes:", err.Error())
+ os.Exit(1)
+ }
+
+ return res.Animes
+}
diff --git a/util/season.go b/util/season.go
new file mode 100644
index 0000000..62645bf
--- /dev/null
+++ b/util/season.go
@@ -0,0 +1,50 @@
+/*
+macli - Unofficial CLI-Based MyAnimeList Client
+Copyright © 2022 Vidhu Kant Sharma <vidhukant@vidhukant.xyz>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package util
+
+import (
+ "time"
+ "strconv"
+ a "github.com/MikunoNaka/MAL2Go/v4/anime"
+)
+
+
+func GetCurrentSeason() a.Season {
+ today := time.Now()
+
+ month := today.Format("01")
+ year, _ := strconv.Atoi(today.Format("2006"))
+
+ var season string
+ switch month {
+ case "01", "02", "03":
+ season = "winter"
+ case "04", "05", "06":
+ season = "spring"
+ case "07", "08", "09":
+ season = "summer"
+ case "10", "11", "12":
+ season = "fall"
+ }
+
+ return a.Season {
+ Name: season,
+ Year: year,
+ }
+}