hphones-ruby 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/data/endpoints.yml +31 -0
- data/lib/hphones.rb +1 -1
- data/lib/hphones/endpoint.rb +6 -2
- data/lib/hphones/request.rb +8 -3
- data/lib/hphones/response.rb +36 -5
- data/lib/hphones/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00556e53ee71c148c31b173d0087ec8818fc09b7
|
4
|
+
data.tar.gz: b8fa6073496428027d4d248d2481de0c65991446
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52e5a06556cab0dcefeab73fc80ac516d41d32c5fbb6c317c6d1708ec6d07f13f16c5161900d0d1eef9bfdd57589e9a43dc35417d3a7e8bfd08726c243de64e2
|
7
|
+
data.tar.gz: eb9ca2256f2ae56806700530b9002f9e05755bb9b801089a1949560d3a00323401cc6db14826673b8929213bcd15db2a6469e1ebec4776dbe45bf16581b4d852
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hphones-ruby (0.0.
|
4
|
+
hphones-ruby (0.0.2)
|
5
5
|
faraday
|
6
6
|
hashie
|
7
7
|
|
@@ -13,7 +13,7 @@ GEM
|
|
13
13
|
dotenv (2.2.1)
|
14
14
|
faraday (0.13.1)
|
15
15
|
multipart-post (>= 1.2, < 3)
|
16
|
-
hashie (3.5.
|
16
|
+
hashie (3.5.7)
|
17
17
|
method_source (0.9.0)
|
18
18
|
multipart-post (2.0.0)
|
19
19
|
pry (0.11.3)
|
data/data/endpoints.yml
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
get_index:
|
2
2
|
method: get
|
3
|
+
response: json
|
3
4
|
params:
|
4
5
|
- key: cmd
|
5
6
|
value: getIndex
|
6
7
|
get_artist:
|
7
8
|
method: get
|
9
|
+
response: json
|
8
10
|
params:
|
9
11
|
- key: cmd
|
10
12
|
value: getArtist
|
@@ -12,6 +14,7 @@ get_artist:
|
|
12
14
|
required: true
|
13
15
|
get_album:
|
14
16
|
method: get
|
17
|
+
response: json
|
15
18
|
params:
|
16
19
|
- key: cmd
|
17
20
|
value: getAlbum
|
@@ -19,32 +22,38 @@ get_album:
|
|
19
22
|
required: true
|
20
23
|
get_upcoming:
|
21
24
|
method: get
|
25
|
+
response: json
|
22
26
|
params:
|
23
27
|
- key: cmd
|
24
28
|
value: getUpcoming
|
25
29
|
get_wanted:
|
26
30
|
method: get
|
31
|
+
response: json
|
27
32
|
params:
|
28
33
|
- key: cmd
|
29
34
|
value: getWanted
|
30
35
|
get_similar:
|
31
36
|
method: get
|
37
|
+
response: json
|
32
38
|
params:
|
33
39
|
- key: cmd
|
34
40
|
value: getSimilar
|
35
41
|
get_history:
|
36
42
|
method: get
|
43
|
+
response: json
|
37
44
|
params:
|
38
45
|
- key: cmd
|
39
46
|
value: getHistory
|
40
47
|
# NOT WORKING YET
|
41
48
|
# get_logs:
|
42
49
|
# method: get
|
50
|
+
# response: json
|
43
51
|
# params:
|
44
52
|
# - key: cmd
|
45
53
|
# value: getLogs
|
46
54
|
find_artist:
|
47
55
|
method: get
|
56
|
+
response: json
|
48
57
|
params:
|
49
58
|
- key: cmd
|
50
59
|
value: findArtist
|
@@ -54,6 +63,7 @@ find_artist:
|
|
54
63
|
required: false
|
55
64
|
find_album:
|
56
65
|
method: get
|
66
|
+
response: json
|
57
67
|
params:
|
58
68
|
- key: cmd
|
59
69
|
value: findAlbum
|
@@ -63,6 +73,7 @@ find_album:
|
|
63
73
|
required: false
|
64
74
|
add_artist:
|
65
75
|
method: get
|
76
|
+
response: status
|
66
77
|
params:
|
67
78
|
- key: cmd
|
68
79
|
value: addArtist
|
@@ -70,6 +81,7 @@ add_artist:
|
|
70
81
|
required: true
|
71
82
|
add_album:
|
72
83
|
method: get
|
84
|
+
response: status
|
73
85
|
params:
|
74
86
|
- key: cmd
|
75
87
|
value: addAlbum
|
@@ -77,6 +89,7 @@ add_album:
|
|
77
89
|
required: true
|
78
90
|
del_artist:
|
79
91
|
method: get
|
92
|
+
response: status
|
80
93
|
params:
|
81
94
|
- key: cmd
|
82
95
|
value: delArtist
|
@@ -84,6 +97,7 @@ del_artist:
|
|
84
97
|
required: true
|
85
98
|
pause_artist:
|
86
99
|
method: get
|
100
|
+
response: status
|
87
101
|
params:
|
88
102
|
- key: cmd
|
89
103
|
value: pauseArtist
|
@@ -91,6 +105,7 @@ pause_artist:
|
|
91
105
|
required: true
|
92
106
|
resume_artist:
|
93
107
|
method: get
|
108
|
+
response: status
|
94
109
|
params:
|
95
110
|
- key: cmd
|
96
111
|
value: resumeArtist
|
@@ -98,6 +113,7 @@ resume_artist:
|
|
98
113
|
required: true
|
99
114
|
refresh_artist:
|
100
115
|
method: get
|
116
|
+
response: status
|
101
117
|
params:
|
102
118
|
- key: cmd
|
103
119
|
value: refreshArtist
|
@@ -105,6 +121,7 @@ refresh_artist:
|
|
105
121
|
required: true
|
106
122
|
queue_album:
|
107
123
|
method: get
|
124
|
+
response: status
|
108
125
|
params:
|
109
126
|
- key: cmd
|
110
127
|
value: queueAlbum
|
@@ -116,6 +133,7 @@ queue_album:
|
|
116
133
|
required: false
|
117
134
|
unqueue_album:
|
118
135
|
method: get
|
136
|
+
response: status
|
119
137
|
params:
|
120
138
|
- key: cmd
|
121
139
|
value: unqueueAlbum
|
@@ -123,11 +141,13 @@ unqueue_album:
|
|
123
141
|
required: true
|
124
142
|
force_search:
|
125
143
|
method: get
|
144
|
+
response: status
|
126
145
|
params:
|
127
146
|
- key: cmd
|
128
147
|
value: forceSearch
|
129
148
|
force_process:
|
130
149
|
method: get
|
150
|
+
response: status
|
131
151
|
params:
|
132
152
|
- key: cmd
|
133
153
|
value: forceProcess
|
@@ -135,6 +155,7 @@ force_process:
|
|
135
155
|
required: false
|
136
156
|
force_active_artists_update:
|
137
157
|
method: get
|
158
|
+
response: status
|
138
159
|
params:
|
139
160
|
- key: cmd
|
140
161
|
value: forceActiveArtistsUpdate
|
@@ -145,26 +166,31 @@ get_version:
|
|
145
166
|
value: getVersion
|
146
167
|
check_github:
|
147
168
|
method: get
|
169
|
+
response: status
|
148
170
|
params:
|
149
171
|
- key: cmd
|
150
172
|
value: checkGithub
|
151
173
|
shutdown:
|
152
174
|
method: get
|
175
|
+
response: status
|
153
176
|
params:
|
154
177
|
- key: cmd
|
155
178
|
value: shutdown
|
156
179
|
restart:
|
157
180
|
method: get
|
181
|
+
response: status
|
158
182
|
params:
|
159
183
|
- key: cmd
|
160
184
|
value: restart
|
161
185
|
update:
|
162
186
|
method: get
|
187
|
+
response: status
|
163
188
|
params:
|
164
189
|
- key: cmd
|
165
190
|
value: update
|
166
191
|
get_artist_art:
|
167
192
|
method: get
|
193
|
+
response: path
|
168
194
|
params:
|
169
195
|
- key: cmd
|
170
196
|
value: getArtistArt
|
@@ -172,6 +198,7 @@ get_artist_art:
|
|
172
198
|
required: true
|
173
199
|
get_artist_info:
|
174
200
|
method: get
|
201
|
+
response: json
|
175
202
|
params:
|
176
203
|
- key: cmd
|
177
204
|
value: getArtistInfo
|
@@ -179,6 +206,7 @@ get_artist_info:
|
|
179
206
|
required: true
|
180
207
|
get_album_info:
|
181
208
|
method: get
|
209
|
+
response: json
|
182
210
|
params:
|
183
211
|
- key: cmd
|
184
212
|
value: getAlbumInfo
|
@@ -186,6 +214,7 @@ get_album_info:
|
|
186
214
|
required: true
|
187
215
|
get_artist_thumb:
|
188
216
|
method: get
|
217
|
+
response: path
|
189
218
|
params:
|
190
219
|
- key: cmd
|
191
220
|
value: getArtistThumb
|
@@ -193,6 +222,7 @@ get_artist_thumb:
|
|
193
222
|
required: true
|
194
223
|
get_album_thumb:
|
195
224
|
method: get
|
225
|
+
response: path
|
196
226
|
params:
|
197
227
|
- key: cmd
|
198
228
|
value: getAlbumThumb
|
@@ -200,6 +230,7 @@ get_album_thumb:
|
|
200
230
|
required: true
|
201
231
|
choose_specific_download:
|
202
232
|
method: get
|
233
|
+
response: json
|
203
234
|
params:
|
204
235
|
- key: cmd
|
205
236
|
value: choose_specific_download
|
data/lib/hphones.rb
CHANGED
data/lib/hphones/endpoint.rb
CHANGED
@@ -11,7 +11,7 @@ class Hphones
|
|
11
11
|
class MissingParameterError < StandardError; end
|
12
12
|
|
13
13
|
# The path to the endpoints file.
|
14
|
-
ENDPOINTS_PATH = File.join('data', 'endpoints.yml')
|
14
|
+
ENDPOINTS_PATH = File.join(File.dirname(__FILE__), '..', '..', 'data', 'endpoints.yml')
|
15
15
|
|
16
16
|
class << self
|
17
17
|
def lookup(key)
|
@@ -37,10 +37,14 @@ class Hphones
|
|
37
37
|
|
38
38
|
def fetch
|
39
39
|
api_params = compile_params
|
40
|
-
req = Hphones::Request.new(api)
|
40
|
+
req = Hphones::Request.new(api, self)
|
41
41
|
req.send endpoint_info['method'], api_params
|
42
42
|
end
|
43
43
|
|
44
|
+
def response_type
|
45
|
+
endpoint_info['response']
|
46
|
+
end
|
47
|
+
|
44
48
|
private
|
45
49
|
|
46
50
|
attr_reader :key, :api, :params
|
data/lib/hphones/request.rb
CHANGED
@@ -5,16 +5,21 @@ class Hphones
|
|
5
5
|
# Represents an API request
|
6
6
|
#
|
7
7
|
class Request
|
8
|
-
attr_reader :api
|
8
|
+
attr_reader :api, :endpoint
|
9
9
|
|
10
|
-
def initialize(api)
|
10
|
+
def initialize(api, endpoint)
|
11
11
|
@api = api
|
12
|
+
@endpoint = endpoint
|
12
13
|
end
|
13
14
|
|
14
15
|
def get(params = {})
|
15
16
|
conn = api.connection
|
16
17
|
compiled_params = params.merge('apikey' => api.api_key)
|
17
|
-
Hphones::Response.new(conn.get(api.base_path, compiled_params))
|
18
|
+
Hphones::Response.new(self, conn.get(api.base_path, compiled_params))
|
19
|
+
end
|
20
|
+
|
21
|
+
def response_type
|
22
|
+
endpoint.response_type
|
18
23
|
end
|
19
24
|
end
|
20
25
|
end
|
data/lib/hphones/response.rb
CHANGED
@@ -8,20 +8,51 @@ class Hphones
|
|
8
8
|
# Represents an API response
|
9
9
|
#
|
10
10
|
class Response
|
11
|
-
|
11
|
+
STATUS_OK = 'OK'
|
12
|
+
|
13
|
+
RESPONSE_TYPE_JSON = 'json'
|
14
|
+
RESPONSE_TYPE_STATUS = 'status'
|
15
|
+
RESPONSE_TYPE_PATH = 'path'
|
16
|
+
|
17
|
+
def initialize(request, http_response)
|
12
18
|
@http_response = http_response
|
19
|
+
@request = request
|
13
20
|
end
|
14
21
|
|
15
22
|
def data
|
16
|
-
@data ||=
|
23
|
+
@data ||= parse_data http_response.body
|
17
24
|
end
|
18
25
|
|
19
26
|
private
|
20
27
|
|
21
|
-
attr_reader :http_response
|
28
|
+
attr_reader :request, :http_response
|
29
|
+
|
30
|
+
def parse_data(body)
|
31
|
+
case request.response_type
|
32
|
+
when RESPONSE_TYPE_JSON
|
33
|
+
parse_json body
|
34
|
+
when RESPONSE_TYPE_STATUS
|
35
|
+
parse_status body
|
36
|
+
when RESPONSE_TYPE_PATH
|
37
|
+
parse_path body
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def parse_json(body)
|
42
|
+
JSON.parse body
|
43
|
+
end
|
44
|
+
|
45
|
+
def parse_status(body)
|
46
|
+
case body
|
47
|
+
when STATUS_OK
|
48
|
+
true
|
49
|
+
else
|
50
|
+
false
|
51
|
+
end
|
52
|
+
end
|
22
53
|
|
23
|
-
def
|
24
|
-
|
54
|
+
def parse_path(body)
|
55
|
+
body
|
25
56
|
end
|
26
57
|
end
|
27
58
|
end
|
data/lib/hphones/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hphones-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Guillen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|