wimp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.rspec +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +154 -0
- data/Rakefile +6 -0
- data/lib/gen/README.md +6 -0
- data/lib/gen/client_api_login_service.rb +270 -0
- data/lib/gen/client_api_service.rb +3016 -0
- data/lib/gen/services_constants.rb +13 -0
- data/lib/gen/services_types.rb +1035 -0
- data/lib/wimp.rb +66 -0
- data/lib/wimp/base.rb +30 -0
- data/lib/wimp/error.rb +4 -0
- data/lib/wimp/playlist.rb +93 -0
- data/lib/wimp/simple_artist.rb +10 -0
- data/lib/wimp/track.rb +91 -0
- data/lib/wimp/version.rb +3 -0
- data/resources/skipped-methods.md +44 -0
- data/resources/thrift/services.thrift +396 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_add_my_track_id.yml +263 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_add_tracks_to_playlist.yml +445 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_remove_tracks.yml +452 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_create_a_playlist.yml +98 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_find_by_uuid.yml +49 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_not_crash_on_invalid_pos.yml +372 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Track/.yml +169 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Track/should_be_searchable.yml +169 -0
- data/spec/fixtures/vcr_cassettes/WiMP_Track/should_paginate.yml +61 -0
- data/spec/fixtures/vcr_cassettes/login/should_raise_error_using_invalid_credentials.yml +47 -0
- data/spec/fixtures/vcr_cassettes/login/should_return_sesson_id_on_successfull_login.yml +53 -0
- data/spec/login_spec.rb +21 -0
- data/spec/playlist_spec.rb +37 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/track_spec.rb +26 -0
- data/wimp.gemspec +30 -0
- metadata +207 -0
@@ -0,0 +1,169 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://client.wimpmusic.com/clientapi/servicelogin
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: !binary |-
|
9
|
+
gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAAVdXVhYUByZWFsbHlteW1h
|
10
|
+
aWwuY29tCwACAAAABnFkZ2ZiYgsAAwAAAAZ3aW1wc2ULAAQAAAAJc2xiaDRV
|
11
|
+
VWdICwAFAAAAFUFuZHJvaWRfV0lNUC0yLjUuMi5zZQsABgAAAAo4MjYzMzcx
|
12
|
+
MDg0AA==
|
13
|
+
headers:
|
14
|
+
Content-Type:
|
15
|
+
- application/x-thrift
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
Accept:
|
19
|
+
- '*/*'
|
20
|
+
User-Agent:
|
21
|
+
- Ruby
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx/1.1.19
|
29
|
+
Date:
|
30
|
+
- Tue, 18 Mar 2014 15:49:02 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/x-thrift
|
33
|
+
Transfer-Encoding:
|
34
|
+
- chunked
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
X-Powered-By:
|
38
|
+
- 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
|
39
|
+
Access-Control-Allow-Origin:
|
40
|
+
- '*'
|
41
|
+
body:
|
42
|
+
encoding: ASCII-8BIT
|
43
|
+
string: !binary |-
|
44
|
+
gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAAIAAEANcYACAACAOdHGgoABAAA
|
45
|
+
AUTUnno5CwAFAAAAGEtBVEZiM0lmRnFXSXVnSG9sQU5zOHVTaQsABwAAAAVW
|
46
|
+
QUxJRAgACAAAAD4CAAkAAgAKAQoACwAAAUVxtBr/CAAMAAAAAQgADQAAAAEI
|
47
|
+
AA4AAAABCAAPAAAAAQsAEAAAABV1dWFhQHJlYWxseW15bWFpbC5jb20KABEA
|
48
|
+
AAFE+3jFfwgAEgAAAAMKABMAAAAAAAAAAAsAFAAAAAVJTlRSTwIAFQECABYA
|
49
|
+
CAAXAAAABAoAGAAAAAAAAAAACgAZAAABRNV9xaYKABoAAAAAAAAAAAoAGwAA
|
50
|
+
AAAAAAAACgAcAAABRNV9xaYIAB0AAAABAAA=
|
51
|
+
http_version:
|
52
|
+
recorded_at: Tue, 18 Mar 2014 15:49:02 GMT
|
53
|
+
- request:
|
54
|
+
method: post
|
55
|
+
uri: http://client.wimpmusic.com/clientapi/service
|
56
|
+
body:
|
57
|
+
encoding: ASCII-8BIT
|
58
|
+
string: !binary |-
|
59
|
+
gAEAAQAAAAZzZWFyY2gAAAAACwABAAAAD21hZG9ubmEgaHVuZyB1cAgAAgAA
|
60
|
+
AAAIAAMAAAAACAAEAAAACgsABQAAABhLQVRGYjNJZkZxV0l1Z0hvbEFOczh1
|
61
|
+
U2kIAAYAAAAAAA==
|
62
|
+
headers:
|
63
|
+
Content-Type:
|
64
|
+
- application/x-thrift
|
65
|
+
Accept-Encoding:
|
66
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
67
|
+
Accept:
|
68
|
+
- '*/*'
|
69
|
+
User-Agent:
|
70
|
+
- Ruby
|
71
|
+
response:
|
72
|
+
status:
|
73
|
+
code: 200
|
74
|
+
message: OK
|
75
|
+
headers:
|
76
|
+
Server:
|
77
|
+
- nginx/1.1.19
|
78
|
+
Date:
|
79
|
+
- Tue, 18 Mar 2014 15:49:02 GMT
|
80
|
+
Content-Type:
|
81
|
+
- application/x-thrift
|
82
|
+
Transfer-Encoding:
|
83
|
+
- chunked
|
84
|
+
Connection:
|
85
|
+
- keep-alive
|
86
|
+
X-Powered-By:
|
87
|
+
- 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
|
88
|
+
Access-Control-Allow-Origin:
|
89
|
+
- '*'
|
90
|
+
body:
|
91
|
+
encoding: ASCII-8BIT
|
92
|
+
string: !binary |-
|
93
|
+
gAEAAgAAAAZzZWFyY2gAAAAADAAADwABDAAAAAAPAAIMAAAABQsAAQAAAAdI
|
94
|
+
dW5nIFVwCwACAAAAB01hZG9ubmEIAAMAADy5CAAEAAR2nAsABQAAABRIdW5n
|
95
|
+
IFVwIChJbnQnbCBNYXhpKQsABgAAAGUyMDA1IFdhcm5lciBCcm9zLiBSZWNv
|
96
|
+
cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
|
97
|
+
bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLggABwAAAMsIAAsA
|
98
|
+
BHadCAANAAAAAQgADgAAAAELAA8AAAANUmFkaW8gVmVyc2lvbgoAEAAAAQdY
|
99
|
+
W6WAAgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAA
|
100
|
+
AAJFUAIAGQEIABoAAAABCAAbAADcUQgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
|
101
|
+
AQAAABVXYXJuZXIgQnJvcy4vTWF2ZXJpY2sIAAIAAAOTCwADAAAAA1dNRwgA
|
102
|
+
BAAAAVYLAAUAAAAVV2FybmVyIEJyb3MuL01hdmVyaWNrCAAGAAf0YAAIAB8A
|
103
|
+
AAAACgAgAAABB1hbpYALACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2Rj
|
104
|
+
L3BzZXI/cHJvZHVjdElkPTI5MjUwOSZjb250ZW50VHlwZUlkPTEyJmNjb2Rl
|
105
|
+
PVBUAgAjAAgAJAAAAEwLACUAAAB9MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3Jk
|
106
|
+
cyBJbmMuIGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5j
|
107
|
+
LiBmb3IgdGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJv
|
108
|
+
cy4vTWF2ZXJpY2sACwABAAAADkh1bmcgVXAgW0xpdmVdCwACAAAAB01hZG9u
|
109
|
+
bmEIAAMAADy5CAAEAAYB0QsABQAAABRUaGUgQ29uZmVzc2lvbnMgVG91cgsA
|
110
|
+
BgAAAGUyMDA2IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBV
|
111
|
+
LlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQg
|
112
|
+
b3V0c2lkZSB0aGUgVS5TLggABwAAAk4IAAsABgHeCAANAAAAAQgADgAAAA0L
|
113
|
+
AA8AAAAETGl2ZQoAEAAAARBq77mAAgARAQIAEgEEABMAAAAAAAAAAAIAFQAC
|
114
|
+
ABYACwAXAAAAA1MwMgsAGAAAAAVBbGJ1bQIAGQEIABoAAAABCAAbAAAQvggA
|
115
|
+
HAAAAAAEAB0AAAAAAAAAAAwAHgsAAQAAAA9XYXJuZXIgQnJvdGhlcnMIAAIA
|
116
|
+
AVtZCwADAAAAA1dNRwgABAAAAVYLAAUAAAAITWF2ZXJpY2sIAAYAEQlQAAgA
|
117
|
+
HwAAAAAKACAAAAEQau+5gAsAIQAAAEhodHRwOi8vd2RjLmFzcGlyby5jb20v
|
118
|
+
ZGMvcHNlcj9wcm9kdWN0SWQ9MzkzNjk0JmNvbnRlbnRUeXBlSWQ9MTImY2Nv
|
119
|
+
ZGU9UFQCACMACAAkAAAAFAsAJQAAAHcyMDA2IFdhcm5lciBCcm9zLiBSZWNv
|
120
|
+
cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
|
121
|
+
bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLiAvIFdhcm5lciBC
|
122
|
+
cm90aGVycwALAAEAAAAcSHVuZyBVcCAoU0RQIEV4dGVuZGVkIFZvY2FsKQsA
|
123
|
+
AgAAAAdNYWRvbm5hCAADAAA8uQgABAAEfBULAAUAAAAUSHVuZyBVcCAoREog
|
124
|
+
VmVyc2lvbikLAAYAAABlMjAwNSBXYXJuZXIgQnJvcy4gUmVjb3JkcyBJbmMu
|
125
|
+
IGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5jLiBmb3Ig
|
126
|
+
dGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4IAAcAAAHdCAALAAR8FggADQAA
|
127
|
+
AAEIAA4AAAABCwAPAAAAElNEUCBFeHRlbmRlZCBWb2NhbAoAEAAAAQmZI+WA
|
128
|
+
AgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAAAAVB
|
129
|
+
bGJ1bQIAGQEIABoAAAABCAAbAAAFhAgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
|
130
|
+
AQAAAA9XYXJuZXIgQnJvdGhlcnMIAAIAAVtZCwADAAAAA1dNRwgABAAAAVYL
|
131
|
+
AAUAAAAMV2FybmVyIEJyb3MuCAAGABD3ZQAIAB8AAAAACgAgAAABCZkj5YAL
|
132
|
+
ACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2RjL3BzZXI/cHJvZHVjdElk
|
133
|
+
PTI5MzkxMCZjb250ZW50VHlwZUlkPTEyJmNjb2RlPVBUAgAjAAgAJAAAAA4L
|
134
|
+
ACUAAAB3MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3JkcyBJbmMuIGZvciB0aGUg
|
135
|
+
VS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5jLiBmb3IgdGhlIHdvcmxk
|
136
|
+
IG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJvdGhlcnMACwABAAAAI0h1
|
137
|
+
bmcgVXAgKFNEUCBFeHRlbmRlZCBWb2NhbCkgKEVkaXQpCwACAAAAB01hZG9u
|
138
|
+
bmEIAAMAADy5CAAEABlTwQsABQAAABFIdW5nIFVwIChSZW1peGVzKQsABgAA
|
139
|
+
AGUyMDA1IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMu
|
140
|
+
IGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0
|
141
|
+
c2lkZSB0aGUgVS5TLggABwAAASkIAAsAGVPCCAANAAAAAQgADgAAAAELAA8A
|
142
|
+
AAAZU0RQIEV4dGVuZGVkIFZvY2FsICAgRWRpdAoAEAAAAQb7cj8AAgARAQIA
|
143
|
+
EgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAAAAJFUAIAGQEI
|
144
|
+
ABoAAAABCAAbAAAC3AgAHAAAAAAEAB0AAAAAAAAAAAwAHgsAAQAAAA9XYXJu
|
145
|
+
ZXIgQnJvdGhlcnMIAAIAAVtZCwADAAAAA1dNRwgABAAAAVYLAAUAAAAVV2Fy
|
146
|
+
bmVyIEJyb3MuL01hdmVyaWNrCAAGABELEwAIAB8AAAAACgAgAAABBvtyPwAL
|
147
|
+
ACEAAABJaHR0cDovL3dkYy5hc3Bpcm8uY29tL2RjL3BzZXI/cHJvZHVjdElk
|
148
|
+
PTE2NTk4NDImY29udGVudFR5cGVJZD0xMiZjY29kZT1QVAIAIwAIACQAAAAM
|
149
|
+
CwAlAAAAdzIwMDUgV2FybmVyIEJyb3MuIFJlY29yZHMgSW5jLiBmb3IgdGhl
|
150
|
+
IFUuUy4gYW5kIFdFQSBJbnRlcm5hdGlvbmFsIEluYy4gZm9yIHRoZSB3b3Js
|
151
|
+
ZCBvdXRzaWRlIHRoZSBVLlMuIC8gV2FybmVyIEJyb3RoZXJzAAsAAQAAAB9I
|
152
|
+
dW5nIFVwIChDaHVzICYgQ2ViYWxsb3MgUmVtaXgpCwACAAAAB01hZG9ubmEI
|
153
|
+
AAMAADy5CAAEAAR8FQsABQAAABRIdW5nIFVwIChESiBWZXJzaW9uKQsABgAA
|
154
|
+
AGUyMDA1IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMu
|
155
|
+
IGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0
|
156
|
+
c2lkZSB0aGUgVS5TLggABwAAAkQIAAsABHwZCAANAAAAAQgADgAAAAQLAA8A
|
157
|
+
AAAVQ2h1cyAmIENlYmFsbG9zIFJlbWl4CgAQAAAAAAAAAAACABEAAgASAQQA
|
158
|
+
EwAAAAAAAAAAAgAVAQIAFgALABcAAAAACwAYAAAABUFsYnVtAgAZAQgAGgAA
|
159
|
+
AAEIABsAAAGrCAAcAAAAAAQAHQAAAAAAAAAADAAeCwABAAAAD1dhcm5lciBC
|
160
|
+
cm90aGVycwgAAgABW1kLAAMAAAADV01HCAAEAAABVgsABQAAAAxXYXJuZXIg
|
161
|
+
QnJvcy4IAAYAEPdlAAgAHwAAAAAKACAAAAEJmSPlgAsAIQAAAEhodHRwOi8v
|
162
|
+
d2RjLmFzcGlyby5jb20vZGMvcHNlcj9wcm9kdWN0SWQ9MjkzOTEzJmNvbnRl
|
163
|
+
bnRUeXBlSWQ9MTImY2NvZGU9UFQCACMACAAkAAAADAsAJQAAAHcyMDA1IFdh
|
164
|
+
cm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEg
|
165
|
+
SW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUg
|
166
|
+
VS5TLiAvIFdhcm5lciBCcm90aGVycwAPAAMMAAAAAAAA
|
167
|
+
http_version:
|
168
|
+
recorded_at: Tue, 18 Mar 2014 15:49:03 GMT
|
169
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://client.wimpmusic.com/clientapi/service
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: !binary |-
|
9
|
+
gAEAAQAAAAZzZWFyY2gAAAAACwABAAAAD21hZG9ubmEgaHVuZyB1cAgAAgAA
|
10
|
+
AAAIAAMAAAAACAAEAAAAAQsABQAAABh4SVhGVHpTeFhBZUFacnNRa25lajVo
|
11
|
+
N0cIAAYAAAAAAA==
|
12
|
+
headers:
|
13
|
+
Content-Type:
|
14
|
+
- application/x-thrift
|
15
|
+
Accept-Encoding:
|
16
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
17
|
+
Accept:
|
18
|
+
- '*/*'
|
19
|
+
User-Agent:
|
20
|
+
- Ruby
|
21
|
+
response:
|
22
|
+
status:
|
23
|
+
code: 200
|
24
|
+
message: OK
|
25
|
+
headers:
|
26
|
+
Server:
|
27
|
+
- nginx/1.1.19
|
28
|
+
Date:
|
29
|
+
- Tue, 18 Mar 2014 11:49:51 GMT
|
30
|
+
Content-Type:
|
31
|
+
- application/x-thrift
|
32
|
+
Transfer-Encoding:
|
33
|
+
- chunked
|
34
|
+
Connection:
|
35
|
+
- keep-alive
|
36
|
+
X-Powered-By:
|
37
|
+
- 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
|
38
|
+
Access-Control-Allow-Origin:
|
39
|
+
- '*'
|
40
|
+
body:
|
41
|
+
encoding: ASCII-8BIT
|
42
|
+
string: !binary |-
|
43
|
+
gAEAAgAAAAZzZWFyY2gAAAAADAAADwABDAAAAAAPAAIMAAAAAQsAAQAAAAdI
|
44
|
+
dW5nIFVwCwACAAAAB01hZG9ubmEIAAMAADy5CAAEAAR2nAsABQAAABRIdW5n
|
45
|
+
IFVwIChJbnQnbCBNYXhpKQsABgAAAGUyMDA1IFdhcm5lciBCcm9zLiBSZWNv
|
46
|
+
cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
|
47
|
+
bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLggABwAAAMsIAAsA
|
48
|
+
BHadCAANAAAAAQgADgAAAAELAA8AAAANUmFkaW8gVmVyc2lvbgoAEAAAAQdY
|
49
|
+
W6WAAgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAA
|
50
|
+
AAJFUAIAGQEIABoAAAABCAAbAADcUQgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
|
51
|
+
AQAAABVXYXJuZXIgQnJvcy4vTWF2ZXJpY2sIAAIAAAOTCwADAAAAA1dNRwgA
|
52
|
+
BAAAAVYLAAUAAAAVV2FybmVyIEJyb3MuL01hdmVyaWNrCAAGAAf0YAAIAB8A
|
53
|
+
AAAACgAgAAABB1hbpYALACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2Rj
|
54
|
+
L3BzZXI/cHJvZHVjdElkPTI5MjUwOSZjb250ZW50VHlwZUlkPTEyJmNjb2Rl
|
55
|
+
PVBUAgAjAAgAJAAAAEwLACUAAAB9MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3Jk
|
56
|
+
cyBJbmMuIGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5j
|
57
|
+
LiBmb3IgdGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJv
|
58
|
+
cy4vTWF2ZXJpY2sADwADDAAAAAAAAA==
|
59
|
+
http_version:
|
60
|
+
recorded_at: Tue, 18 Mar 2014 11:49:53 GMT
|
61
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://client.wimpmusic.com/clientapi/servicelogin
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: !binary |-
|
9
|
+
gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAACLTELAAIAAAACLTELAAMA
|
10
|
+
AAAGd2ltcHNlCwAEAAAACXNsYmg0VVVnSAsABQAAABVBbmRyb2lkX1dJTVAt
|
11
|
+
Mi41LjIuc2ULAAYAAAAKODI2MzM3MTA4NAA=
|
12
|
+
headers:
|
13
|
+
Content-Type:
|
14
|
+
- application/x-thrift
|
15
|
+
Accept-Encoding:
|
16
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
17
|
+
Accept:
|
18
|
+
- '*/*'
|
19
|
+
User-Agent:
|
20
|
+
- Ruby
|
21
|
+
response:
|
22
|
+
status:
|
23
|
+
code: 200
|
24
|
+
message: OK
|
25
|
+
headers:
|
26
|
+
Server:
|
27
|
+
- nginx/1.1.19
|
28
|
+
Date:
|
29
|
+
- Tue, 18 Mar 2014 10:20:18 GMT
|
30
|
+
Content-Type:
|
31
|
+
- application/x-thrift
|
32
|
+
Transfer-Encoding:
|
33
|
+
- chunked
|
34
|
+
Connection:
|
35
|
+
- keep-alive
|
36
|
+
X-Powered-By:
|
37
|
+
- 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
|
38
|
+
Access-Control-Allow-Origin:
|
39
|
+
- '*'
|
40
|
+
body:
|
41
|
+
encoding: ASCII-8BIT
|
42
|
+
string: !binary |-
|
43
|
+
gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAILAAEAAAAZTm8gcHJvZmlsZSBm
|
44
|
+
b3VuZCBmb3IgWy0xXQAA
|
45
|
+
http_version:
|
46
|
+
recorded_at: Tue, 18 Mar 2014 10:20:21 GMT
|
47
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://client.wimpmusic.com/clientapi/servicelogin
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: !binary |-
|
9
|
+
gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAAVdXVhYUByZWFsbHlteW1h
|
10
|
+
aWwuY29tCwACAAAABnFkZ2ZiYgsAAwAAAAZ3aW1wc2ULAAQAAAAJc2xiaDRV
|
11
|
+
VWdICwAFAAAAFUFuZHJvaWRfV0lNUC0yLjUuMi5zZQsABgAAAAo4MjYzMzcx
|
12
|
+
MDg0AA==
|
13
|
+
headers:
|
14
|
+
Content-Type:
|
15
|
+
- application/x-thrift
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
Accept:
|
19
|
+
- '*/*'
|
20
|
+
User-Agent:
|
21
|
+
- Ruby
|
22
|
+
response:
|
23
|
+
status:
|
24
|
+
code: 200
|
25
|
+
message: OK
|
26
|
+
headers:
|
27
|
+
Server:
|
28
|
+
- nginx/1.1.19
|
29
|
+
Date:
|
30
|
+
- Tue, 18 Mar 2014 10:20:18 GMT
|
31
|
+
Content-Type:
|
32
|
+
- application/x-thrift
|
33
|
+
Transfer-Encoding:
|
34
|
+
- chunked
|
35
|
+
Connection:
|
36
|
+
- keep-alive
|
37
|
+
X-Powered-By:
|
38
|
+
- 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
|
39
|
+
Access-Control-Allow-Origin:
|
40
|
+
- '*'
|
41
|
+
body:
|
42
|
+
encoding: ASCII-8BIT
|
43
|
+
string: !binary |-
|
44
|
+
gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAAIAAEANcYACAACAOdHGgoABAAA
|
45
|
+
AUTUnno5CwAFAAAAGHRtU0ZkQnE5QWE1am83eG14ZVZRWGN6agsABwAAAAVW
|
46
|
+
QUxJRAgACAAAAD4CAAkAAgAKAQoACwAAAUVxtBr/CAAMAAAAAQgADQAAAAEI
|
47
|
+
AA4AAAABCAAPAAAAAQsAEAAAABV1dWFhQHJlYWxseW15bWFpbC5jb20KABEA
|
48
|
+
AAFE+3jFfwgAEgAAAAMKABMAAAAAAAAAAAsAFAAAAAVJTlRSTwIAFQECABYA
|
49
|
+
CAAXAAAABAoAGAAAAAAAAAAACgAZAAAAAAAAAAAKABoAAAAAAAAAAAoAGwAA
|
50
|
+
AAAAAAAACgAcAAAAAAAAAAAIAB0AAAABAAA=
|
51
|
+
http_version:
|
52
|
+
recorded_at: Tue, 18 Mar 2014 10:20:21 GMT
|
53
|
+
recorded_with: VCR 2.8.0
|
data/spec/login_spec.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
describe "login", vcr: {record: :new_episodes} do
|
2
|
+
after(:each) { WiMP.configuration.logout! }
|
3
|
+
|
4
|
+
it "should return sesson id on successfull login" do
|
5
|
+
WiMP.configure do |config|
|
6
|
+
config.username = "uuaa@reallymymail.com"
|
7
|
+
config.password = "qdgfbb"
|
8
|
+
end
|
9
|
+
WiMP.configuration.session.should_not be_empty
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should raise error using invalid credentials" do
|
13
|
+
WiMP.configure do |config|
|
14
|
+
config.username = "-1"
|
15
|
+
config.password = "-1"
|
16
|
+
end
|
17
|
+
expect {
|
18
|
+
WiMP.configuration.session
|
19
|
+
}.to raise_error(WiMP::LoginFailed)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
describe WiMP::Playlist, vcr: {record: :new_episodes} do
|
2
|
+
before(:each) do
|
3
|
+
WiMP.configure do |config|
|
4
|
+
config.username = "uuaa@reallymymail.com"
|
5
|
+
config.password = "qdgfbb"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:uuid) { "83331404-e312-4fe3-a6eb-00843e195c7b" }
|
10
|
+
let(:playlist) { WiMP::Playlist.find(uuid) }
|
11
|
+
|
12
|
+
it "should create a playlist" do
|
13
|
+
playlist = WiMP::Playlist.create("Tjohoo")
|
14
|
+
playlist.url.should match(%r{http://wimpmusic.se/playlist/\w+})
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should find by uuid" do
|
18
|
+
playlist.uuid.should eq(uuid)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should be able to add tracks to playlist" do
|
22
|
+
tracks = WiMP::Track.search("elvis", limit: 5)
|
23
|
+
playlist.add_tracks(tracks, start_position: 100).should be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should add my track id" do
|
27
|
+
playlist.add_tracks_by_id([415672]).should be_true
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should be able to remove tracks" do
|
31
|
+
playlist.remove_tracks_by_indices([1,2,3]).should be_true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should not crash on invalid pos" do
|
35
|
+
playlist.remove_tracks_by_indices([400]).should be_true
|
36
|
+
end
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require "rspec"
|
2
|
+
require "webmock/rspec"
|
3
|
+
require "wimp"
|
4
|
+
require "vcr"
|
5
|
+
require "uri"
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.mock_with :rspec
|
9
|
+
end
|
10
|
+
|
11
|
+
VCR.configure do |c|
|
12
|
+
c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
|
13
|
+
c.hook_into :webmock
|
14
|
+
c.default_cassette_options = {
|
15
|
+
record: :new_episodes
|
16
|
+
}
|
17
|
+
c.allow_http_connections_when_no_cassette = false
|
18
|
+
c.configure_rspec_metadata!
|
19
|
+
end
|
data/spec/track_spec.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
describe WiMP::Track, vcr: {record: :new_episodes} do
|
2
|
+
before(:each) do
|
3
|
+
WiMP.configure do |config|
|
4
|
+
config.username = "uuaa@reallymymail.com"
|
5
|
+
config.password = "qdgfbb"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should be searchable" do
|
10
|
+
tracks = WiMP::Track.search("madonna hung up")
|
11
|
+
tracks.should_not be_empty
|
12
|
+
tracks.each do |track|
|
13
|
+
track.title.should be_a(String)
|
14
|
+
track.id.should be_a(Integer)
|
15
|
+
track.artist_id.should be_a(Integer)
|
16
|
+
track.url.should match(%r{http://wimpmusic.se/track/\d+})
|
17
|
+
track.artist.url.should match(%r{http://wimpmusic.se/artist/\d+})
|
18
|
+
track.artist.name.should be_a(String)
|
19
|
+
track.artist.id.should be_a(Integer)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should paginate" do
|
24
|
+
WiMP::Track.search("madonna hung up", limit: 1).count.should eq(1)
|
25
|
+
end
|
26
|
+
end
|
data/wimp.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "wimp/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "wimp"
|
8
|
+
spec.version = Wimp::VERSION
|
9
|
+
spec.authors = ["Linus Oleander"]
|
10
|
+
spec.email = ["linus@oleander.nu"]
|
11
|
+
spec.summary = %q{Ruby bindings for WiMP}
|
12
|
+
spec.homepage = "https://github.com/oleander/wimp-rb"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
21
|
+
spec.add_development_dependency "rake"
|
22
|
+
|
23
|
+
spec.add_dependency "thrift"
|
24
|
+
spec.add_dependency "rack"
|
25
|
+
spec.add_dependency "thin"
|
26
|
+
|
27
|
+
spec.add_development_dependency "vcr"
|
28
|
+
spec.add_development_dependency "rspec"
|
29
|
+
spec.add_development_dependency "webmock", "1.8.0"
|
30
|
+
end
|