Skip to content

Commit 65040fb

Browse files
committed
[toru] add a simple 'latest' sub-command to interactively search for the latest anime
1 parent c8c7479 commit 65040fb

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

cmd/toru/flags.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ type Download struct {
5050
} `positional-args:"yes" positional-arg-name:"TORRENT"`
5151
}
5252

53+
type Latest struct{}
54+
5355
// Non-interactive CLI search options
5456
type Search struct {
5557
SortBy string `short:"b" long:"sort-by" description:"sort results by a category [size|date|seeders|leechers|downloads]"`
@@ -72,3 +74,4 @@ type Search struct {
7274
Query string
7375
} `positional-args:"yes" positional-arg-name:"QUERY"`
7476
}
77+

cmd/toru/main.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var (
2222
searchopts Search
2323
download Download
2424
completions Completions
25+
latest Latest
2526
)
2627

2728
var parser = flags.NewParser(&options, flags.Default)
@@ -41,14 +42,18 @@ func init() {
4142
log.Fatal(err)
4243
}
4344
d, err := parser.AddCommand("download", "download torrents", "download torrent from .torrent file, magnet or URL to a .torrent file", &download)
45+
if err != nil {
46+
log.Fatal(err)
47+
48+
}
49+
_, err = parser.AddCommand("latest", "get the latest anime", "get the latest anime from nyaa.si", &latest)
4450
if err != nil {
4551
log.Fatal(err)
4652
}
4753
_, err = parser.AddCommand("version", "print version and debugging info", "print version and debugging info", &options)
4854
if err != nil {
4955
log.Fatal(err)
5056
}
51-
5257
_, err = parser.AddCommand("init", "source zsh or bash completions", "", &completions)
5358
if err != nil {
5459
log.Fatal(err)
@@ -80,7 +85,7 @@ func main() {
8085
}
8186
}
8287

83-
var optArg string
88+
var optArg string // optional positional search argument
8489
if len(args) > 0 {
8590
optArg = args[0]
8691
} else {
@@ -125,6 +130,12 @@ func main() {
125130
if err := InteractiveSearch(cl, optArg); err != nil {
126131
log.Fatal(err)
127132
}
133+
case "latest":
134+
searchopts.Latest = true
135+
searchopts.Interactive = true
136+
if err := runSearch(cl); err != nil {
137+
log.Fatal(err)
138+
}
128139
case "version":
129140
fmt.Printf("%s %s %s/%s\n", binaryName, version, runtime.GOOS, runtime.GOARCH)
130141
os.Exit(0)

0 commit comments

Comments
 (0)