From 98fc0001b80f8fcef09f5dbfec62800f80d7fdd0 Mon Sep 17 00:00:00 2001 From: aQaTL Date: Wed, 31 Oct 2018 22:36:50 +0100 Subject: [PATCH] Default quality filter config option --- anilist_app.go | 7 +++++++ config.go | 14 +++++++++++++- mal_app.go | 7 +++++++ nyaa_cui.go | 12 +++++++++++- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/anilist_app.go b/anilist_app.go index 0dc1334..dae7156 100644 --- a/anilist_app.go +++ b/anilist_app.go @@ -249,6 +249,13 @@ func AniListApp(app *cli.App) *cli.App { SkipFlagParsing: true, Action: configChangeTorrent, }, + cli.Command{ + Name: "nyaa-quality", + Usage: "Sets default quality filter for nyaa search", + UsageText: "mal cfg nyaa-quality [quality_text]", + SkipFlagParsing: true, + Action: configChangeNyaaQuality, + }, }, }, } diff --git a/config.go b/config.go index 6521a90..0694900 100644 --- a/config.go +++ b/config.go @@ -6,13 +6,13 @@ import ( "github.com/aqatl/mal/anilist" "github.com/aqatl/mal/mal" "github.com/fatih/color" + "github.com/urfave/cli" "log" "os" "path/filepath" "strconv" "strings" "time" - "github.com/urfave/cli" ) type Config struct { @@ -26,6 +26,7 @@ type Config struct { BrowserPath string TorrentClientPath string TorrentClientArgs []string + NyaaQuality string SelectedID int Status mal.MyStatus @@ -230,3 +231,14 @@ func configChangeTorrent(ctx *cli.Context) error { return nil } + +func configChangeNyaaQuality(ctx *cli.Context) error { + cfg := LoadConfig() + + cfg.NyaaQuality = strings.Join(ctx.Args(), " ") + cfg.Save() + + fmt.Fprintf(color.Output, "Changed nyaa default quality filter to %s\n", color.HiYellowString("%s", cfg.NyaaQuality)) + + return nil +} diff --git a/mal_app.go b/mal_app.go index 5c28c8a..461f08c 100644 --- a/mal_app.go +++ b/mal_app.go @@ -175,6 +175,13 @@ func MalApp(app *cli.App) *cli.App { SkipFlagParsing: true, Action: configChangeTorrent, }, + cli.Command{ + Name: "nyaa-quality", + Usage: "Sets default quality filter for nyaa search", + UsageText: "mal cfg nyaa-quality [quality_text]", + SkipFlagParsing: true, + Action: configChangeNyaaQuality, + }, }, }, cli.Command{ diff --git a/nyaa_cui.go b/nyaa_cui.go index 9c5912d..607f012 100644 --- a/nyaa_cui.go +++ b/nyaa_cui.go @@ -31,6 +31,7 @@ func malNyaaCui(ctx *cli.Context) error { cfg, entry.Title, fmt.Sprintf("%s %d/%d", entry.Title, entry.WatchedEpisodes, entry.Episodes), + cfg.NyaaQuality, ) } @@ -60,15 +61,22 @@ func alNyaaCui(ctx *cli.Context) error { cfg, searchTerm, fmt.Sprintf("%s %d/%d", searchTerm, entry.Progress, entry.Episodes), + cfg.NyaaQuality, ) } -func startNyaaCui(cfg *Config, searchTerm, displayedInfo string) error { +func startNyaaCui(cfg *Config, searchTerm, displayedInfo, quality string) error { gui, err := gocui.NewGui(gocui.Output256) defer gui.Close() if err != nil { return fmt.Errorf("gocui error: %v", err) } + + qualityRe, err := regexp.Compile(regexp.QuoteMeta(quality)) + if err != nil { + return fmt.Errorf("failed to parse your quality tag") + } + nc := &nyaaCui{ Gui: gui, Cfg: cfg, @@ -77,6 +85,8 @@ func startNyaaCui(cfg *Config, searchTerm, displayedInfo string) error { DisplayedInfo: displayedInfo, Category: ns.AnimeEnglishTranslated, Filter: ns.TrustedOnly, + + QualityFilter: qualityRe, } gui.SetManager(nc) nc.setGuiKeyBindings(gui)