jarvisbot_songfinder 1.0.0 → 1.1.2

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -1
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +15 -13
  5. data/README.md +1 -1
  6. data/Rakefile +3 -1
  7. data/bin/console +5 -1
  8. data/changelog.md +22 -0
  9. data/fixtures/vcr_cassettes/query_customconfig.yml +107 -0
  10. data/fixtures/vcr_cassettes/query_customconfig_short_track.yml +107 -0
  11. data/fixtures/vcr_cassettes/query_text.yml +120 -16
  12. data/fixtures/vcr_cassettes/query_track_delegation.yml +122 -18
  13. data/fixtures/vcr_cassettes/query_youtube_url.yml +8 -8
  14. data/fixtures/vcr_cassettes/search_query_auxiliary_provider.yml +43 -43
  15. data/fixtures/vcr_cassettes/search_query_not_found.yml +9 -9
  16. data/fixtures/vcr_cassettes/search_query_preferred_and_auxiliary.yml +122 -18
  17. data/fixtures/vcr_cassettes/search_query_preferred_provider.yml +122 -18
  18. data/fixtures/vcr_cassettes/spotify_invalid_region_restricted.yml +57 -5
  19. data/fixtures/vcr_cassettes/spotify_invalid_search.yml +5 -5
  20. data/fixtures/vcr_cassettes/spotify_invalid_too_long.yml +57 -5
  21. data/fixtures/vcr_cassettes/spotify_invalid_url_relinked.yml +107 -0
  22. data/fixtures/vcr_cassettes/spotify_valid.yml +56 -4
  23. data/fixtures/vcr_cassettes/spotify_valid_clean_or_unknown.yml +56 -4
  24. data/fixtures/vcr_cassettes/spotify_valid_explicit.yml +57 -5
  25. data/fixtures/vcr_cassettes/spotify_valid_search.yml +61 -9
  26. data/fixtures/vcr_cassettes/url_query_known_provider.yml +14 -14
  27. data/fixtures/vcr_cassettes/youtube_invalid.yml +4 -4
  28. data/fixtures/vcr_cassettes/youtube_invalid_region_restricted.yml +8 -8
  29. data/fixtures/vcr_cassettes/youtube_invalid_search.yml +4 -4
  30. data/fixtures/vcr_cassettes/youtube_invalid_too_long.yml +130 -8
  31. data/fixtures/vcr_cassettes/youtube_invalid_wrong_category.yml +15 -15
  32. data/fixtures/vcr_cassettes/youtube_valid.yml +214 -214
  33. data/fixtures/vcr_cassettes/youtube_valid_search.yml +22 -22
  34. data/jarvisbot_songfinder.gemspec +6 -5
  35. data/lib/jarvisbot_songfinder.rb +3 -0
  36. data/lib/jarvisbot_songfinder/configuration.rb +7 -2
  37. data/lib/jarvisbot_songfinder/helpers/query.rb +23 -15
  38. data/lib/jarvisbot_songfinder/helpers/reply_message.rb +37 -26
  39. data/lib/jarvisbot_songfinder/helpers/search_query.rb +11 -5
  40. data/lib/jarvisbot_songfinder/helpers/url_query.rb +13 -8
  41. data/lib/jarvisbot_songfinder/providers/bandrequest.rb +5 -1
  42. data/lib/jarvisbot_songfinder/providers/provider.rb +25 -6
  43. data/lib/jarvisbot_songfinder/providers/spotify_api.rb +28 -35
  44. data/lib/jarvisbot_songfinder/providers/unknown_provider.rb +4 -0
  45. data/lib/jarvisbot_songfinder/providers/unknown_search_provider.rb +5 -1
  46. data/lib/jarvisbot_songfinder/providers/youtube_api.rb +37 -64
  47. data/lib/jarvisbot_songfinder/version.rb +3 -1
  48. metadata +28 -28
  49. data/fixtures/vcr_cassettes/spotify_vcr_test.yml +0 -55
  50. data/fixtures/vcr_cassettes/youtube_invalid_regionrestricted.yml +0 -147
  51. data/fixtures/vcr_cassettes/youtube_invalid_wrongcategory.yml +0 -254
@@ -1,55 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.spotify.com/v1/tracks/1M419iBUjVwPlefiOxxUm2
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - rest-client/2.0.2 (linux-gnu x86_64) ruby/2.5.0p0
16
- Authorization:
17
- - Bearer BQBs5fnYfNTTUJegiXaLnstIoEvAwQct5VXyNb8lGM_MleEZQQN55QI0AZUfl3Y-9WaEHVECpdlpR_vftN8
18
- Host:
19
- - api.spotify.com
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Content-Type:
26
- - application/json; charset=utf-8
27
- Cache-Control:
28
- - public, max-age=7200
29
- Access-Control-Allow-Origin:
30
- - "*"
31
- Access-Control-Allow-Headers:
32
- - Accept, Authorization, Origin, Content-Type, Retry-After
33
- Access-Control-Allow-Methods:
34
- - GET, POST, OPTIONS, PUT, DELETE, PATCH
35
- Access-Control-Allow-Credentials:
36
- - 'true'
37
- Access-Control-Max-Age:
38
- - '604800'
39
- Content-Encoding:
40
- - gzip
41
- Date:
42
- - Fri, 01 Feb 2019 09:46:05 GMT
43
- Via:
44
- - 1.1 google
45
- Alt-Svc:
46
- - clear
47
- Transfer-Encoding:
48
- - chunked
49
- body:
50
- encoding: ASCII-8BIT
51
- string: !binary |-
52
- H4sIAAAAAAAAAOxVTXOjRhC951eodMnFXhhAA6gqlVrJtixbsollOZVNpahmPqxZ87WAZCtb/u+BBklrr7C1lUMu0eEJunveND39pr/+1Ol0IQyWUbfT73wt3zbvfrFORWVs3EeNLytUXuSV488mvrSKp0JkMYT+MgvzHRP68jQplFwj1aIo0ryvaUkq4g+N4wNLIq2m1UxrvvAeJkFxdnnzxYwjeXYvPo+6Ddnz0Wa/RSbkC0JI1Qu+FWko8zbOLZfiyPReWAxRXY5pcv8IaufY1Qk33DmWmUJ7k1e/9vff+sbnzl+bOq9AhRCEwo8gexCbinc/nnSPSjxFvEG8rXCAlsEI8RzxGhFjhmgZThDRPvwD8VOFJ7j25LLC0yEiWk5nFZ6NEZFnNEDE53OMP59XOMasxrhqjLuMce0Yc7vAHS+8Ci9/r3CCPBNknmDMBHkmdxVOMYcp2qeY5xVyXiHP9bRCD/fy8Ls89HoY72H8bx8rvMH4GT7PMH6G9Zlh5re49ha/5RazmuPau6vu9hRa+/rArq6Uo/X4eHgl7pQhF9OZtw7/nq1G9KI58Gajgxq6Ysvb6BqippvfCYrgXrzW8EKo+0VRGamlf9PE4Yu8yqwYj8uUNCTRmAWOblAhuWUCAOFSGlI4IgiMnkksi3NGwGRkJ4tHxYtFs01Tg31JmPrhSUgOEiRljjBtyWzTshnXqQRKXUEFJYyBAU7Q25NEuc0bSVDr4Bx4IIkDtOf0pKFLSe1eYLmEcYuDGwRglRbQiYS9hXgl/u1dc7oS2bozTJZxka1/zjuzZbw5w0yEAnLhcyjqWEMn9rHuHutkX4ifZoKpXCUxBnNYb6KKpCgbvMiAPWBLELJx7B0A391qlbPf3uPY4fvGxr8W1/sj44fUdci4OGhYtIyKlkHx42Oi6ZP/R8R/PyK6XOXMj5dRIDLUTm1cZlCUSvMjPBLTprZO0SOe0lAxhXeLhDAXjbURguLf6KCr8oxhZ4wGo5NPxNbLH9lJqkU+h4kH5a6RqUVcNZh/vnv0QiHV9dPTPDJ2Wxyim/riaKNCmkY0b4bkfpgwCF8WZiukYZKE5VWoYlGHp0m6DCFTBX6mVZe9vOFWSjz6r2/qdHtTR6l53ERpgtqcCsN1iMmh/NfdQAdglAGDwILyyALgts5+ZYr/Qqjjmo7ZEzqhliAGECksCq5tSOCmbtVZYSm+64at7NFdR77WPLr6bcfx/A8AAAD//wMAbaZPwKYLAAA=
53
- http_version:
54
- recorded_at: Fri, 01 Feb 2019 09:46:05 GMT
55
- recorded_with: VCR 4.0.0
@@ -1,147 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://www.googleapis.com/youtube/v3/videos?id=DMFAGv2uKv0&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&part=status
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Length:
11
- - '0'
12
- User-Agent:
13
- - Yt::Request (gzip)
14
- response:
15
- status:
16
- code: 200
17
- message: OK
18
- headers:
19
- Expires:
20
- - Fri, 01 Feb 2019 09:55:51 GMT
21
- Date:
22
- - Fri, 01 Feb 2019 09:55:51 GMT
23
- Cache-Control:
24
- - private, max-age=0, must-revalidate, no-transform
25
- Etag:
26
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/BnJJOyewClyJVcWsjsjGVz_b-E4"'
27
- Vary:
28
- - Origin
29
- - X-Origin
30
- Content-Type:
31
- - application/json; charset=UTF-8
32
- X-Content-Type-Options:
33
- - nosniff
34
- X-Frame-Options:
35
- - SAMEORIGIN
36
- X-Xss-Protection:
37
- - 1; mode=block
38
- Content-Length:
39
- - '491'
40
- Server:
41
- - GSE
42
- Alt-Svc:
43
- - quic=":443"; ma=2592000; v="44,43,39"
44
- body:
45
- encoding: UTF-8
46
- string: |
47
- {
48
- "kind": "youtube#videoListResponse",
49
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/BnJJOyewClyJVcWsjsjGVz_b-E4\"",
50
- "pageInfo": {
51
- "totalResults": 1,
52
- "resultsPerPage": 1
53
- },
54
- "items": [
55
- {
56
- "kind": "youtube#video",
57
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/pep_02DkUKiUnWtH2NsJxzB5ltM\"",
58
- "id": "DMFAGv2uKv0",
59
- "status": {
60
- "uploadStatus": "processed",
61
- "privacyStatus": "public",
62
- "license": "youtube",
63
- "embeddable": true,
64
- "publicStatsViewable": true
65
- }
66
- }
67
- ]
68
- }
69
- http_version:
70
- recorded_at: Fri, 01 Feb 2019 09:55:51 GMT
71
- - request:
72
- method: get
73
- uri: https://www.googleapis.com/youtube/v3/videos?id=DMFAGv2uKv0&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&maxResults=50&part=contentDetails
74
- body:
75
- encoding: US-ASCII
76
- string: ''
77
- headers:
78
- Content-Length:
79
- - '0'
80
- User-Agent:
81
- - Yt::Request (gzip)
82
- response:
83
- status:
84
- code: 200
85
- message: OK
86
- headers:
87
- Expires:
88
- - Fri, 01 Feb 2019 09:55:51 GMT
89
- Date:
90
- - Fri, 01 Feb 2019 09:55:51 GMT
91
- Cache-Control:
92
- - private, max-age=300, must-revalidate, no-transform
93
- Etag:
94
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/a9StzUvLNDQrUJMbUu-XXNDni2w"'
95
- Vary:
96
- - Origin
97
- - X-Origin
98
- Content-Type:
99
- - application/json; charset=UTF-8
100
- X-Content-Type-Options:
101
- - nosniff
102
- X-Frame-Options:
103
- - SAMEORIGIN
104
- X-Xss-Protection:
105
- - 1; mode=block
106
- Content-Length:
107
- - '606'
108
- Server:
109
- - GSE
110
- Alt-Svc:
111
- - quic=":443"; ma=2592000; v="44,43,39"
112
- body:
113
- encoding: UTF-8
114
- string: |
115
- {
116
- "kind": "youtube#videoListResponse",
117
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/a9StzUvLNDQrUJMbUu-XXNDni2w\"",
118
- "pageInfo": {
119
- "totalResults": 1,
120
- "resultsPerPage": 1
121
- },
122
- "items": [
123
- {
124
- "kind": "youtube#video",
125
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/5uIvEzDHWFVAvX1rsmB4TmOXAhA\"",
126
- "id": "DMFAGv2uKv0",
127
- "contentDetails": {
128
- "duration": "PT3M10S",
129
- "dimension": "2d",
130
- "definition": "sd",
131
- "caption": "false",
132
- "licensedContent": true,
133
- "regionRestriction": {
134
- "blocked": [
135
- "PR",
136
- "CA",
137
- "US"
138
- ]
139
- },
140
- "projection": "rectangular"
141
- }
142
- }
143
- ]
144
- }
145
- http_version:
146
- recorded_at: Fri, 01 Feb 2019 09:55:51 GMT
147
- recorded_with: VCR 4.0.0
@@ -1,254 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://www.googleapis.com/youtube/v3/videos?id=lQvcoOzmLqs&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&part=status
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Length:
11
- - '0'
12
- User-Agent:
13
- - Yt::Request (gzip)
14
- response:
15
- status:
16
- code: 200
17
- message: OK
18
- headers:
19
- Expires:
20
- - Fri, 01 Feb 2019 09:55:52 GMT
21
- Date:
22
- - Fri, 01 Feb 2019 09:55:52 GMT
23
- Cache-Control:
24
- - private, max-age=0, must-revalidate, no-transform
25
- Etag:
26
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/aO_Udw6EuqKx4GKSDw4Xu9UUl3I"'
27
- Vary:
28
- - Origin
29
- - X-Origin
30
- Content-Type:
31
- - application/json; charset=UTF-8
32
- X-Content-Type-Options:
33
- - nosniff
34
- X-Frame-Options:
35
- - SAMEORIGIN
36
- X-Xss-Protection:
37
- - 1; mode=block
38
- Content-Length:
39
- - '491'
40
- Server:
41
- - GSE
42
- Alt-Svc:
43
- - quic=":443"; ma=2592000; v="44,43,39"
44
- body:
45
- encoding: UTF-8
46
- string: |
47
- {
48
- "kind": "youtube#videoListResponse",
49
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/aO_Udw6EuqKx4GKSDw4Xu9UUl3I\"",
50
- "pageInfo": {
51
- "totalResults": 1,
52
- "resultsPerPage": 1
53
- },
54
- "items": [
55
- {
56
- "kind": "youtube#video",
57
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/58LfFchRN5HMMeOD6yiH4O76bVo\"",
58
- "id": "lQvcoOzmLqs",
59
- "status": {
60
- "uploadStatus": "processed",
61
- "privacyStatus": "public",
62
- "license": "youtube",
63
- "embeddable": true,
64
- "publicStatsViewable": true
65
- }
66
- }
67
- ]
68
- }
69
- http_version:
70
- recorded_at: Fri, 01 Feb 2019 09:55:52 GMT
71
- - request:
72
- method: get
73
- uri: https://www.googleapis.com/youtube/v3/videos?id=lQvcoOzmLqs&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&maxResults=50&part=contentDetails
74
- body:
75
- encoding: US-ASCII
76
- string: ''
77
- headers:
78
- Content-Length:
79
- - '0'
80
- User-Agent:
81
- - Yt::Request (gzip)
82
- response:
83
- status:
84
- code: 200
85
- message: OK
86
- headers:
87
- Expires:
88
- - Fri, 01 Feb 2019 09:55:52 GMT
89
- Date:
90
- - Fri, 01 Feb 2019 09:55:52 GMT
91
- Cache-Control:
92
- - private, max-age=300, must-revalidate, no-transform
93
- Etag:
94
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/AeiQzK2SSme70r74lyCwVBW8X_s"'
95
- Vary:
96
- - Origin
97
- - X-Origin
98
- Content-Type:
99
- - application/json; charset=UTF-8
100
- X-Content-Type-Options:
101
- - nosniff
102
- X-Frame-Options:
103
- - SAMEORIGIN
104
- X-Xss-Protection:
105
- - 1; mode=block
106
- Content-Length:
107
- - '513'
108
- Server:
109
- - GSE
110
- Alt-Svc:
111
- - quic=":443"; ma=2592000; v="44,43,39"
112
- body:
113
- encoding: UTF-8
114
- string: |
115
- {
116
- "kind": "youtube#videoListResponse",
117
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/AeiQzK2SSme70r74lyCwVBW8X_s\"",
118
- "pageInfo": {
119
- "totalResults": 1,
120
- "resultsPerPage": 1
121
- },
122
- "items": [
123
- {
124
- "kind": "youtube#video",
125
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/qTODa3DmtJlwxKFlCH0UNVYe7HM\"",
126
- "id": "lQvcoOzmLqs",
127
- "contentDetails": {
128
- "duration": "PT8M27S",
129
- "dimension": "2d",
130
- "definition": "hd",
131
- "caption": "false",
132
- "licensedContent": false,
133
- "projection": "rectangular"
134
- }
135
- }
136
- ]
137
- }
138
- http_version:
139
- recorded_at: Fri, 01 Feb 2019 09:55:52 GMT
140
- - request:
141
- method: get
142
- uri: https://www.googleapis.com/youtube/v3/videos?id=lQvcoOzmLqs&key=AIzaSyBopkXxz7Dzi9ZrFYPqjmL_JogByn-BBqI&part=snippet
143
- body:
144
- encoding: US-ASCII
145
- string: ''
146
- headers:
147
- Content-Length:
148
- - '0'
149
- User-Agent:
150
- - Yt::Request (gzip)
151
- response:
152
- status:
153
- code: 200
154
- message: OK
155
- headers:
156
- Expires:
157
- - Fri, 01 Feb 2019 09:55:52 GMT
158
- Date:
159
- - Fri, 01 Feb 2019 09:55:52 GMT
160
- Cache-Control:
161
- - private, max-age=300, must-revalidate, no-transform
162
- Etag:
163
- - '"XpPGQXPnxQJhLgs6enD_n8JR4Qk/P8l0RvbOOiYBdy94g3Q82I-afgY"'
164
- Vary:
165
- - Origin
166
- - X-Origin
167
- Content-Type:
168
- - application/json; charset=UTF-8
169
- X-Content-Type-Options:
170
- - nosniff
171
- X-Frame-Options:
172
- - SAMEORIGIN
173
- X-Xss-Protection:
174
- - 1; mode=block
175
- Content-Length:
176
- - '3444'
177
- Server:
178
- - GSE
179
- Alt-Svc:
180
- - quic=":443"; ma=2592000; v="44,43,39"
181
- body:
182
- encoding: UTF-8
183
- string: |
184
- {
185
- "kind": "youtube#videoListResponse",
186
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/P8l0RvbOOiYBdy94g3Q82I-afgY\"",
187
- "pageInfo": {
188
- "totalResults": 1,
189
- "resultsPerPage": 1
190
- },
191
- "items": [
192
- {
193
- "kind": "youtube#video",
194
- "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/IQSOOWtEUu6PjBnSksDcbl3Nssg\"",
195
- "id": "lQvcoOzmLqs",
196
- "snippet": {
197
- "publishedAt": "2017-01-19T20:13:27.000Z",
198
- "channelId": "UCZsTxqu5B_7bW4AAf0QVtuA",
199
- "title": "Marble Machine - Triple Gears Lift (Three Blocks Marble Race)",
200
- "description": "There are endless ways to lift a ball high enough to get your marble machine running. If you can get it to the top, gravity will do the rest. With a lift that lifts three or more marbles simultaneously, and releases them to three separate tracks. Two of those tracks are connected in series, so a marble will therefore alternate between those tracks. The third track loops back onto itself.The machine has been designed for 10 mm balls as marbles.\n\nModules: independent, interchangeable, such that each contains everything necessary to execute the desired functionality.\n\nFor Specifications and Shopping here\n\nFor Kit\n\nhttps://woodmarblemachine.com\n\nFor Plans\n\nhttps://woodmotion-plan.com\n\nFacebook\n\nhttps://www.facebook.com/woodmarblemachine/\n\nEmail: \n\ncontact@woodmarblemachine.com\n\ncontact@woodmotion-plan.com",
201
- "thumbnails": {
202
- "default": {
203
- "url": "https://i.ytimg.com/vi/lQvcoOzmLqs/default.jpg",
204
- "width": 120,
205
- "height": 90
206
- },
207
- "medium": {
208
- "url": "https://i.ytimg.com/vi/lQvcoOzmLqs/mqdefault.jpg",
209
- "width": 320,
210
- "height": 180
211
- },
212
- "high": {
213
- "url": "https://i.ytimg.com/vi/lQvcoOzmLqs/hqdefault.jpg",
214
- "width": 480,
215
- "height": 360
216
- },
217
- "standard": {
218
- "url": "https://i.ytimg.com/vi/lQvcoOzmLqs/sddefault.jpg",
219
- "width": 640,
220
- "height": 480
221
- },
222
- "maxres": {
223
- "url": "https://i.ytimg.com/vi/lQvcoOzmLqs/maxresdefault.jpg",
224
- "width": 1280,
225
- "height": 720
226
- }
227
- },
228
- "channelTitle": "Wood marble machine",
229
- "tags": [
230
- "amazing marble machine",
231
- "amazing wood toy",
232
- "Wood gear lifting",
233
- "Best way to learn structures",
234
- "how to lift marble",
235
- "how it works",
236
- "amazing marble race",
237
- "Best structure",
238
- "amazing lifting mechanisms",
239
- "Wooden toy"
240
- ],
241
- "categoryId": "28",
242
- "liveBroadcastContent": "none",
243
- "localized": {
244
- "title": "Marble Machine - Triple Gears Lift (Three Blocks Marble Race)",
245
- "description": "There are endless ways to lift a ball high enough to get your marble machine running. If you can get it to the top, gravity will do the rest. With a lift that lifts three or more marbles simultaneously, and releases them to three separate tracks. Two of those tracks are connected in series, so a marble will therefore alternate between those tracks. The third track loops back onto itself.The machine has been designed for 10 mm balls as marbles.\n\nModules: independent, interchangeable, such that each contains everything necessary to execute the desired functionality.\n\nFor Specifications and Shopping here\n\nFor Kit\n\nhttps://woodmarblemachine.com\n\nFor Plans\n\nhttps://woodmotion-plan.com\n\nFacebook\n\nhttps://www.facebook.com/woodmarblemachine/\n\nEmail: \n\ncontact@woodmarblemachine.com\n\ncontact@woodmotion-plan.com"
246
- },
247
- "defaultAudioLanguage": "en"
248
- }
249
- }
250
- ]
251
- }
252
- http_version:
253
- recorded_at: Fri, 01 Feb 2019 09:55:52 GMT
254
- recorded_with: VCR 4.0.0