Compare commits
2 Commits
3d39132646
...
e4ccbddb0c
Author | SHA1 | Date |
---|---|---|
Jef Roosens | e4ccbddb0c | |
Jef Roosens | 7efa42f1e5 |
|
@ -0,0 +1,28 @@
|
||||||
|
# =====CONFIG=====
|
||||||
|
V_PATH ?= v
|
||||||
|
V := $(V_PATH) -showcc
|
||||||
|
|
||||||
|
all: aur
|
||||||
|
|
||||||
|
|
||||||
|
# =====COMPILATION=====
|
||||||
|
.PHONY: aur
|
||||||
|
aur:
|
||||||
|
$(V) -g -shared .
|
||||||
|
|
||||||
|
|
||||||
|
# =====DOCS=====
|
||||||
|
.PHONY: api-docs
|
||||||
|
api-docs:
|
||||||
|
rm -rf '_docs'
|
||||||
|
v doc -f html -m -readme .
|
||||||
|
|
||||||
|
|
||||||
|
# =====OTHER=====
|
||||||
|
.PHONY: lint
|
||||||
|
lint:
|
||||||
|
$(V) fmt -verify .
|
||||||
|
|
||||||
|
.PHONY: fmt
|
||||||
|
fmt:
|
||||||
|
$(V) fmt -w .
|
22
aur.v
22
aur.v
|
@ -28,3 +28,25 @@ pub:
|
||||||
license []string [json: License]
|
license []string [json: License]
|
||||||
keywords []string [json: Keywords]
|
keywords []string [json: Keywords]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub enum SearchType {
|
||||||
|
name
|
||||||
|
name_desc
|
||||||
|
maintainer
|
||||||
|
depends
|
||||||
|
make_depends
|
||||||
|
opt_depends
|
||||||
|
check_depends
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (st SearchType) str() string {
|
||||||
|
return match st {
|
||||||
|
.name { 'name' }
|
||||||
|
.name_desc { 'name-desc' }
|
||||||
|
.maintainer { 'maintainer' }
|
||||||
|
.depends { 'depends' }
|
||||||
|
.make_depends { 'makedepends' }
|
||||||
|
.opt_depends { 'optdepends' }
|
||||||
|
.check_depends { 'checkdepends' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
49
client.v
49
client.v
|
@ -24,21 +24,20 @@ pub fn new_with_url(url string) &Client {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SuccessResponse {
|
struct Response {
|
||||||
result_count int [json: resultCount]
|
@type string [json: 'type']
|
||||||
results []Package
|
error string
|
||||||
|
results []Package
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (c Client) request(params map[string]string) ?[]Package {
|
fn (c Client) request(params map[string][]string) ?[]Package {
|
||||||
mut params_escaped := map[string]string{}
|
mut param_strings := []string{}
|
||||||
|
|
||||||
for k, v in params {
|
for k, v in params {
|
||||||
params_escaped[k] = urllib.query_escape(v)
|
param_strings << v.map(urllib.query_escape(it)).map('$k=$it')
|
||||||
}
|
}
|
||||||
|
|
||||||
params_str := params_escaped.keys().map('$it=${params[it]}').join('&')
|
url := '$c.url?${param_strings.join('&')}'
|
||||||
|
|
||||||
url := '$c.url?$params_str'
|
|
||||||
|
|
||||||
res := http.get(url)?
|
res := http.get(url)?
|
||||||
|
|
||||||
|
@ -47,7 +46,37 @@ fn (c Client) request(params map[string]string) ?[]Package {
|
||||||
return error('error')
|
return error('error')
|
||||||
}
|
}
|
||||||
|
|
||||||
data := json.decode(SuccessResponse, res.body)?
|
data := json.decode(Response, res.body)?
|
||||||
|
|
||||||
|
if data.@type == 'error' {
|
||||||
|
return error('Server responded with an error: $data.error')
|
||||||
|
}
|
||||||
|
|
||||||
return data.results
|
return data.results
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (c Client) search_by(arg string, st SearchType) ?[]Package {
|
||||||
|
params := {
|
||||||
|
'v': ['5']
|
||||||
|
'type': ['search']
|
||||||
|
'by': ['$st']
|
||||||
|
'arg': [arg]
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.request(params)
|
||||||
|
}
|
||||||
|
|
||||||
|
// search performs a search by name_desc.
|
||||||
|
pub fn (c Client) search(arg string) ?[]Package {
|
||||||
|
return c.search_by(arg, .name_desc)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (c Client) info(pkgs []string) ?[]Package {
|
||||||
|
params := {
|
||||||
|
'v': ['5']
|
||||||
|
'type': ['info']
|
||||||
|
'arg[]': pkgs
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.request(params)
|
||||||
|
}
|
||||||
|
|
39
search.v
39
search.v
|
@ -1,39 +0,0 @@
|
||||||
module aur
|
|
||||||
|
|
||||||
pub enum SearchType {
|
|
||||||
name
|
|
||||||
name_desc
|
|
||||||
maintainer
|
|
||||||
depends
|
|
||||||
make_depends
|
|
||||||
opt_depends
|
|
||||||
check_depends
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn (st SearchType) str() string {
|
|
||||||
return match st {
|
|
||||||
.name { 'name' }
|
|
||||||
.name_desc { 'name-desc' }
|
|
||||||
.maintainer { 'maintainer' }
|
|
||||||
.depends { 'depends' }
|
|
||||||
.make_depends { 'makedepends' }
|
|
||||||
.opt_depends { 'optdepends' }
|
|
||||||
.check_depends { 'checkdepends' }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn (c Client) search_by(arg string, st SearchType) ?[]Package {
|
|
||||||
params := {
|
|
||||||
'v': '5'
|
|
||||||
'type': 'search'
|
|
||||||
'by': '$st'
|
|
||||||
'arg': arg
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.request(params)
|
|
||||||
}
|
|
||||||
|
|
||||||
// search performs a search by name_desc.
|
|
||||||
pub fn (c Client) search(arg string) ?[]Package {
|
|
||||||
return c.search_by(arg, .name_desc)
|
|
||||||
}
|
|
Loading…
Reference in New Issue