Skip to content

Commit 29df0a3

Browse files
committed
WIP parameters
1 parent d0a864d commit 29df0a3

File tree

13 files changed

+189
-45
lines changed

13 files changed

+189
-45
lines changed

cmd/config/flag.go

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package config
22

33
import (
4-
"fmt"
54
"github.com/spf13/cobra"
65
"jrs/config"
76
)
@@ -12,7 +11,8 @@ var (
1211
)
1312

1413
var Config = &cobra.Command{
15-
Use: "config",
14+
Use: "config",
15+
Short: "Configuration",
1616
}
1717

1818
var set = &cobra.Command{
@@ -21,28 +21,63 @@ var set = &cobra.Command{
2121

2222
var radarr = &cobra.Command{
2323
Use: "radarr",
24+
Run: func(cmd *cobra.Command, args []string) {
25+
if url != "" {
26+
config.Params.ChangeParams("radarr", "path", url)
27+
}
28+
if api != "" {
29+
config.Params.ChangeParams("radarr", "api", api)
30+
}
31+
config.Params.SaveFile(args[0])
32+
33+
},
34+
Args: cobra.ExactArgs(1),
2435
}
2536

2637
var sonarr = &cobra.Command{
2738
Use: "sonarr",
39+
Run: func(cmd *cobra.Command, args []string) {
40+
if url != "" {
41+
config.Params.ChangeParams("sonarr", "path", url)
42+
}
43+
if api != "" {
44+
config.Params.ChangeParams("sonarr", "api", api)
45+
}
46+
config.Params.SaveFile(args[0])
47+
48+
},
49+
Args: cobra.ExactArgs(1),
2850
}
2951

3052
var jackett = &cobra.Command{
3153
Use: "jackett",
32-
}
33-
34-
var save = &cobra.Command{
35-
Use: "save",
3654
Run: func(cmd *cobra.Command, args []string) {
37-
fmt.Println(args[0])
55+
if url != "" {
56+
config.Params.ChangeParams("jackett", "path", url)
57+
}
58+
if api != "" {
59+
config.Params.ChangeParams("jackett", "api", api)
60+
}
3861
config.Params.SaveFile(args[0])
62+
3963
},
64+
Args: cobra.ExactArgs(1),
4065
}
4166

4267
func init() {
43-
radarr.AddCommand(save)
44-
sonarr.AddCommand(save)
45-
jackett.AddCommand(save)
68+
radarr.Flags().StringVarP(&url, "url", "u", "",
69+
"Full address of the application server, i.e. http://192.168.1.1:7878")
70+
radarr.Flags().StringVarP(&api, "api", "a", "",
71+
"API Key of the service.")
72+
sonarr.Flags().StringVarP(&url, "url", "u", "",
73+
"Full address of the application server, i.e. http://192.168.1.1:8989")
74+
sonarr.Flags().StringVarP(&api, "api", "a", "",
75+
"API Key of the service.")
76+
jackett.Flags().StringVarP(&url, "url", "u", "",
77+
"Full address of the application server, i.e. http://192.168.1.1:9117")
78+
jackett.Flags().StringVarP(&api, "api", "a", "",
79+
"API Key of the service.")
80+
4681
set.AddCommand(radarr, sonarr, jackett)
4782
Config.AddCommand(set)
4883
}

cmd/flag.go

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
package cmd
22

33
import (
4-
"github.com/spf13/cobra"
5-
cfg "jrs/cmd/config"
6-
"jrs/cmd/jackett"
7-
"jrs/cmd/radarr"
8-
"jrs/cmd/sonarr"
94
"jrs/config"
5+
"log"
106
)
117

12-
var RootCmd = &cobra.Command{Use: "jrs",
13-
Run: func(cmd *cobra.Command, args []string) {
14-
},
15-
}
8+
func CheckConfig(dest, url, api string) {
9+
app := config.Params.GetDestination(dest)
1610

17-
func init() {
18-
RootCmd.PersistentFlags().StringVarP(&config.ConfPath, "config", "c", "config.toml", "Config file path")
19-
config.ParseConfigFile()
11+
if app.Path == "" && url == "" {
12+
log.Fatalf("There is path specified for %s. Please set config file or provide path with --path option.", dest)
13+
}
14+
if app.Api == "" && api == "" {
15+
log.Fatalf("There is api specified for %s. Please set config file or provide api with --api option.", api)
16+
}
2017

21-
RootCmd.AddCommand(radarr.Cmd)
22-
RootCmd.AddCommand(sonarr.Cmd)
23-
RootCmd.AddCommand(jackett.Cmd)
24-
RootCmd.AddCommand(cfg.Config)
18+
if url != "" {
19+
config.Params.ChangeParams(dest, "path", url)
20+
}
21+
if api != "" {
22+
config.Params.ChangeParams(dest, "api", api)
23+
}
2524
}

cmd/jackett/flag.go

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,81 @@ package jackett
22

33
import (
44
"github.com/spf13/cobra"
5+
cmd2 "jrs/cmd"
6+
"jrs/config"
7+
"jrs/pkg/jackett"
58
)
69

10+
var (
11+
url string
12+
api string
13+
user string
14+
id string
15+
pass string
16+
app *jackett.Jackett
17+
)
18+
19+
func createApp() {
20+
if app == nil {
21+
app = jackett.New(config.Params)
22+
}
23+
}
24+
725
var Cmd = &cobra.Command{
826
Use: "jackett",
927
Short: "Jackett commands",
28+
Run: func(cmd *cobra.Command, args []string) {
29+
cmd2.CheckConfig("jackett", url, api)
30+
},
31+
PersistentPreRun: func(cmd *cobra.Command, args []string) {
32+
createApp()
33+
},
34+
}
35+
36+
var getAllIndexers = &cobra.Command{
37+
Use: "get",
38+
Short: "Command to get all configured indexers.",
39+
Run: func(cmd *cobra.Command, args []string) {
40+
app.GetConfiguredIndexers()
41+
},
42+
}
43+
44+
var listIndexers = &cobra.Command{
45+
Use: "list",
46+
Short: "Command to get all indexers in jackett",
47+
Run: func(cmd *cobra.Command, args []string) {
48+
app.GetAllIndexers()
49+
},
50+
}
51+
52+
var addIndexer = &cobra.Command{
53+
Use: "add",
54+
Short: "Command to add indexer in jackett",
55+
Long: "Please use get command to get id of the indexer before adding it.",
56+
Run: func(cmd *cobra.Command, args []string) {
57+
app.AddIndexer(id, user, pass)
58+
},
59+
}
60+
61+
var addAllPublicIndexers = &cobra.Command{
62+
Use: "addall",
63+
Short: "Command to add all public indexers to jackett",
64+
Run: func(cmd *cobra.Command, args []string) {
65+
app.AddAllPublicIndexers()
66+
},
1067
}
1168

1269
func init() {
13-
Cmd.Flags().StringP("url", "u", "http://localhost:9117", "Sonarr URL")
14-
Cmd.Flags().StringP("api", "a", "", "API Key")
70+
Cmd.PersistentFlags().StringVarP(&url, "url", "u", "http://localhost:9117", "Jackett URL")
71+
Cmd.PersistentFlags().StringVarP(&api, "api", "a", "", "API Key")
72+
73+
addIndexer.Flags().StringVarP(&user, "username", "s", "", "Tracker Username")
74+
addIndexer.Flags().StringVarP(&id, "id", "i", "", "Tracker ID")
75+
addIndexer.Flags().StringVarP(&pass, "password", "p", "", "Tracker Password")
76+
77+
Cmd.AddCommand(addAllPublicIndexers)
78+
Cmd.AddCommand(getAllIndexers)
79+
Cmd.AddCommand(listIndexers)
80+
Cmd.AddCommand(addIndexer)
81+
1582
}

cmd/radarr/flag.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,39 @@
11
package radarr
22

33
import (
4-
"fmt"
54
"github.com/spf13/cobra"
5+
cmd2 "jrs/cmd"
6+
"jrs/config"
7+
"jrs/pkg/radarr"
8+
)
9+
10+
var (
11+
url string
12+
api string
13+
app *radarr.Radarr
614
)
715

816
var Cmd = &cobra.Command{
917
Use: "radarr",
1018
Short: "Radarr commands",
1119
Run: func(cmd *cobra.Command, args []string) {
12-
fmt.Println(cmd.Flag("config").Value)
20+
cmd2.CheckConfig("radarr", url, api)
21+
},
22+
PersistentPreRun: func(cmd *cobra.Command, args []string) {
23+
createApp()
1324
},
1425
}
1526

27+
func createApp() {
28+
if app == nil {
29+
app = radarr.New(config.Params)
30+
}
31+
}
32+
1633
func init() {
17-
// url := Cmd.Flags().StringP("url", "u", "http://localhost:7878", "Radarr URL")
18-
// api := Cmd.Flags().StringP("api", "a", "", "API Key")
34+
url := Cmd.PersistentFlags().StringP("url", "u", "http://localhost:7878", "Radarr URL")
35+
api := Cmd.PersistentFlags().StringP("api", "a", "", "API Key")
36+
1937
//
2038
// if *url != "" {
2139
// matched := utils.SplitUrl(*url)

cmd/root/flag.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package root
2+
3+
import (
4+
"github.com/spf13/cobra"
5+
cfg "jrs/cmd/config"
6+
"jrs/cmd/jackett"
7+
"jrs/cmd/radarr"
8+
"jrs/cmd/sonarr"
9+
"jrs/config"
10+
)
11+
12+
var RootCmd = &cobra.Command{Use: "jrs",
13+
Run: func(cmd *cobra.Command, args []string) {
14+
},
15+
}
16+
17+
func init() {
18+
RootCmd.PersistentFlags().StringVarP(&config.ConfPath, "config", "c", "config.toml", "Config file path")
19+
config.ParseConfigFile()
20+
21+
RootCmd.AddCommand(radarr.Cmd)
22+
RootCmd.AddCommand(sonarr.Cmd)
23+
RootCmd.AddCommand(jackett.Cmd)
24+
RootCmd.AddCommand(cfg.Config)
25+
}

cmd/sonarr/flag.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
var Cmd = &cobra.Command{
88
Use: "sonarr",
99
Short: "Sonarr commands",
10+
Run: func(cmd *cobra.Command, args []string) {
11+
},
1012
}
1113

1214
func init() {

config/config.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ type Config struct {
2020

2121
type Destination struct {
2222
Name string
23-
Ip string
24-
Port uint16
23+
Path string
2524
Api string
2625
}
2726

main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,11 @@
130130
package main
131131

132132
import (
133-
"jrs/cmd"
133+
"jrs/cmd/root"
134134
)
135135

136136
func main() {
137-
cmd.RootCmd.Execute()
137+
root.RootCmd.Execute()
138138
// config.ParseConfigFile()
139139

140140
// main := reflect.ValueOf(config.Params)

pkg/jackett/jackett.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"strings"
77

88
"jrs/config"
9-
"jrs/utils"
109
"net/http/cookiejar"
1110
)
1211

@@ -26,8 +25,10 @@ type Jackett struct {
2625
}
2726

2827
func New(conf *config.Config) *Jackett {
29-
j := &Jackett{version: version, root: root, api: conf.Jackett.API, path: utils.BuildURL(conf.Jackett.IP, conf.Jackett.Port), headers: make(http.Header)}
28+
c := conf.GetDestination("jackett")
29+
j := &Jackett{version: version, root: root, api: c.Api, path: c.Path, headers: make(http.Header)}
3030
j.headers.Add("Content-Type", "application/json")
31+
j.client = new(http.Client)
3132
j.client.Jar, _ = cookiejar.New(nil)
3233
return j
3334
}

pkg/radarr/commands.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ func (c *client) TestAllIndexers() {
2828
req, _ := c.r.GetIndexers()
2929
resp, _ := c.client.Do(req)
3030

31-
defer resp.Body.Close()
3231
body, err := ioutil.ReadAll(resp.Body)
3332
if err != nil {
3433
log.Fatalf("%v", err)
3534
}
35+
defer resp.Body.Close()
3636

3737
json.Unmarshal(body, &schemas)
3838

0 commit comments

Comments
 (0)