Skip to content

Commit db45efb

Browse files
committed
update url code
1 parent 977e5fc commit db45efb

File tree

3 files changed

+50
-16
lines changed

3 files changed

+50
-16
lines changed

src/app/urlparser.go

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package app
22

33
import (
44
"fmt"
5+
"net/url"
56

67
"github.com/coderj001/go-wallheven/src"
78
)
@@ -56,8 +57,11 @@ type Resolution struct {
5657

5758
type Param struct {
5859
Page int
60+
Query string
5961
CTage string
6062
PTage string
63+
Sorting string
64+
Color string
6165
Resolutions []Resolution
6266
}
6367

@@ -82,9 +86,24 @@ func (p Param) String() string {
8286
paramStr = rsStr
8387
}
8488

85-
paramStr = fmt.Sprintf("%s&categories=%s", paramStr, p.CTage)
86-
paramStr = fmt.Sprintf("%s&purity=%s", paramStr, p.PTage)
87-
paramStr = fmt.Sprintf("%s&page=%d", paramStr, p.Page)
89+
if p.Query != "" {
90+
paramStr = fmt.Sprintf("%s&q=%s", paramStr, p.Query)
91+
}
92+
if p.Page != 0 {
93+
paramStr = fmt.Sprintf("%s&page=%d", paramStr, p.Page)
94+
}
95+
if p.CTage != "" {
96+
paramStr = fmt.Sprintf("%s&categories=%s", paramStr, p.CTage)
97+
}
98+
if p.PTage != "" {
99+
paramStr = fmt.Sprintf("%s&purity=%s", paramStr, p.PTage)
100+
}
101+
if p.Sorting != "" {
102+
paramStr = fmt.Sprintf("%s&sorting=%s", paramStr, p.Sorting)
103+
}
104+
if p.Color != "" {
105+
paramStr = fmt.Sprintf("%s&colors=%s", paramStr, p.Color)
106+
}
88107

89108
return paramStr
90109
}
@@ -93,11 +112,14 @@ func (p Param) getFullURL() string {
93112
return src.BASE_CONFIG.GetURL(p.String())
94113
}
95114

96-
func GetFullURL(page int, categories string, purity string, sorting string) (string, error) {
115+
func GetFullURL(page int, categories string, purity string, sorting string, color string, query string) (string, error) {
97116
params := Param{
98117
Page: page,
99118
CTage: src.CTAGS[categories],
100119
PTage: src.PTAGS[purity],
120+
Sorting: src.SORTING[sorting],
121+
Color: color,
122+
Query: url.QueryEscape(query),
101123
Resolutions: []Resolution{},
102124
}
103125
return params.getFullURL(), nil

src/cmd/root.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ import (
99
"github.com/spf13/cobra"
1010
)
1111

12-
var page int
13-
var categories string
14-
var purity string
15-
var sorting string
12+
var (
13+
page int
14+
query string
15+
categories string
16+
purity string
17+
sorting string
18+
colors string
19+
)
1620

1721
// var resolutions string
1822

@@ -22,11 +26,7 @@ var rootCmd = &cobra.Command{
2226
Short: "go-wallhaven - A command line tool to easily download wallpapers from wallhaven.cc",
2327
Long: `go-wallhaven: A seamless solution for downloading and managing wallpapers from wallhaven.cc right from your command line`,
2428
Run: func(cmd *cobra.Command, args []string) {
25-
// fmt.Printf("Page: %d\n", page)
26-
// fmt.Printf("Categories: %s\n", categories)
27-
// fmt.Printf("Purity: %s\n", purity)
28-
// fmt.Printf("Sorting: %s\n", sorting)
29-
url, _ := app.GetFullURL(page, categories, purity, sorting)
29+
url, _ := app.GetFullURL(page, categories, purity, sorting, colors, query)
3030
fmt.Println(url)
3131
},
3232
}
@@ -45,7 +45,7 @@ func GetRoot() *cobra.Command {
4545

4646
func init() {
4747
GetRoot().Flags().IntVarP(&page, "page", "n", 1, "Total Numbers Of Pages")
48-
GetRoot().Flags().StringVarP(&categories, "categories", "c", "all", `
48+
GetRoot().Flags().StringVarP(&categories, "categories", "t", "all", `
4949
Categories Filter:
5050
all - Every wallpaper.
5151
general - For 'general' wallpapers only.
@@ -64,7 +64,7 @@ func init() {
6464
sn - For 'Sketchy' and 'NSFW'
6565
all - For 'SFW', 'Sketchy' and 'NSFW'
6666
`)
67-
GetRoot().Flags().StringVarP(&sorting, "sorting", "s", "", `
67+
GetRoot().Flags().StringVarP(&sorting, "sorting", "s", "relevance", `
6868
Sorting Filter:
6969
relevance - For sorting the results based on relevance to the search query
7070
random - For displaying random wallpapers
@@ -75,4 +75,6 @@ func init() {
7575
hot - For sorting the results based on hotness
7676
7777
`)
78+
GetRoot().Flags().StringVarP(&colors, "colors", "c", "", `Select Color Hex Code eg. 663399`)
79+
GetRoot().Flags().StringVarP(&query, "query", "q", "", `Search Image For Query eg. Dark Knight`)
7880
}

src/config.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ var CTAGS = map[string]string{
3636
"gp": "101",
3737
}
3838

39+
var SORTING = map[string]string{
40+
"relevance": "relevance",
41+
"random": "random",
42+
"date_added": "date_added",
43+
"favorites": "favorites",
44+
"views": "views",
45+
"toplist": "toplist",
46+
"hot": "hot",
47+
}
48+
3949
func init() {
4050
err := godotenv.Load()
4151
if err != nil {
@@ -56,6 +66,6 @@ func (c Config) getAPIKey() string {
5666
}
5767

5868
func (c Config) GetURL(query string) string {
59-
return c.getAPIKey() + "&" + query
69+
return c.getAPIKey() + query
6070

6171
}

0 commit comments

Comments
 (0)