url_2_event 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +302 -0
  5. data/CONTRIBUTING.md +124 -0
  6. data/Gemfile +2 -0
  7. data/Guardfile +16 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +64 -0
  10. data/Rakefile +2 -0
  11. data/lib/url_2_event.rb +52 -0
  12. data/lib/url_2_event/adapters/eventbrite.rb +68 -0
  13. data/lib/url_2_event/adapters/meetup.rb +72 -0
  14. data/lib/url_2_event/base.rb +43 -0
  15. data/lib/url_2_event/event.rb +4 -0
  16. data/lib/url_2_event/version.rb +3 -0
  17. data/script/console.rb +8 -0
  18. data/spec/cassettes/Url2Event/_parse_event_from_uri/.yml +95 -0
  19. data/spec/cassettes/Url2Event_Eventbrite/get_event/.yml +270 -0
  20. data/spec/cassettes/Url2Event_Eventbrite/get_event/begin_at/.yml +270 -0
  21. data/spec/cassettes/Url2Event_Eventbrite/get_event/description/.yml +270 -0
  22. data/spec/cassettes/Url2Event_Eventbrite/get_event/end_at/.yml +270 -0
  23. data/spec/cassettes/Url2Event_Eventbrite/get_event/link/.yml +270 -0
  24. data/spec/cassettes/Url2Event_Eventbrite/get_event/location/.yml +270 -0
  25. data/spec/cassettes/Url2Event_Eventbrite/get_event/title/.yml +270 -0
  26. data/spec/cassettes/Url2Event_Meetup/get_event/.yml +209 -0
  27. data/spec/cassettes/Url2Event_Meetup/get_event/begin_at/.yml +209 -0
  28. data/spec/cassettes/Url2Event_Meetup/get_event/description/.yml +209 -0
  29. data/spec/cassettes/Url2Event_Meetup/get_event/end_at/.yml +209 -0
  30. data/spec/cassettes/Url2Event_Meetup/get_event/location/.yml +209 -0
  31. data/spec/cassettes/Url2Event_Meetup/get_event/price/.yml +209 -0
  32. data/spec/cassettes/Url2Event_Meetup/get_event/title/.yml +209 -0
  33. data/spec/eventbrite_spec.rb +33 -0
  34. data/spec/meetup_spec.rb +31 -0
  35. data/spec/spec_helper.rb +32 -0
  36. data/spec/url_2_event_spec.rb +33 -0
  37. data/url_2_event.gemspec +35 -0
  38. metadata +295 -0
@@ -0,0 +1,270 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.eventbriteapi.com/v3/events/12095703575
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer <EVENTBRITE_TOKEN>
12
+ response:
13
+ status:
14
+ code: 301
15
+ message: MOVED PERMANENTLY
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Thu, 20 Nov 2014 21:09:54 GMT
21
+ Content-Type:
22
+ - text/html; charset=utf-8
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ Location:
32
+ - https://www.eventbriteapi.com/v3/events/12095703575/
33
+ X-Frame-Options:
34
+ - SAMEORIGIN
35
+ P3p:
36
+ - CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
37
+ X-Ua-Compatible:
38
+ - IE=edge
39
+ Set-Cookie:
40
+ - AN=; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
41
+ - SP=AGQgbbkkUNzjkjuaf8RUVXlIKqgB-Cgx98G9xwj5HOmufHBvO-Bi80Q9AimWIGBJKwb06voQeKNr2YTm5lVdngIb6_KAibHVJcjzCdK5CNKLGJa0jnnEjJZd7S_WMFznT55dmp_R345HbfFAnIG9jOnHexrb3L1K1oQFd4-MTssolfDVy2XXSRPGAWCqH2E6VJKKT7AcmPKG8DERrmOEqStLnrHXFga-F9vFBnoo6iuhpP-EMFxNVrE;
42
+ Domain=.eventbriteapi.com; httponly; Path=/
43
+ - SS=AE3DLHQPwlTP-NOwKkspYG9Gbh0MUvpE4A; Domain=.eventbriteapi.com; httponly;
44
+ Path=/; secure
45
+ - mgref=typeins; Domain=.eventbriteapi.com; expires=Fri, 20-Nov-2015 21:09:53
46
+ GMT; httponly; Max-Age=31536000; Path=/
47
+ - mgrefby=; Domain=.eventbriteapi.com; expires=Fri, 20-Nov-2015 21:09:53 GMT;
48
+ httponly; Max-Age=31536000; Path=/
49
+ body:
50
+ encoding: UTF-8
51
+ string: ''
52
+ http_version:
53
+ recorded_at: Thu, 20 Nov 2014 21:09:54 GMT
54
+ - request:
55
+ method: get
56
+ uri: https://www.eventbriteapi.com/v3/events/12095703575/
57
+ body:
58
+ encoding: US-ASCII
59
+ string: ''
60
+ headers:
61
+ Authorization:
62
+ - Bearer <EVENTBRITE_TOKEN>
63
+ Cookie:
64
+ - SS=AE3DLHQPwlTP-NOwKkspYG9Gbh0MUvpE4A; mgref=typeins; Max-Age=0; mgrefby=;
65
+ SP=AGQgbbkkUNzjkjuaf8RUVXlIKqgB-Cgx98G9xwj5HOmufHBvO-Bi80Q9AimWIGBJKwb06voQeKNr2YTm5lVdngIb6_KAibHVJcjzCdK5CNKLGJa0jnnEjJZd7S_WMFznT55dmp_R345HbfFAnIG9jOnHexrb3L1K1oQFd4-MTssolfDVy2XXSRPGAWCqH2E6VJKKT7AcmPKG8DERrmOEqStLnrHXFga-F9vFBnoo6iuhpP-EMFxNVrE;
66
+ AN=
67
+ response:
68
+ status:
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ Server:
73
+ - nginx
74
+ Date:
75
+ - Thu, 20 Nov 2014 21:09:54 GMT
76
+ Content-Type:
77
+ - application/json
78
+ Transfer-Encoding:
79
+ - chunked
80
+ Connection:
81
+ - keep-alive
82
+ X-Xss-Protection:
83
+ - 1; mode=block
84
+ X-Content-Type-Options:
85
+ - nosniff
86
+ Vary:
87
+ - Accept, Accept-Encoding
88
+ X-Ua-Compatible:
89
+ - IE=edge
90
+ Allow:
91
+ - GET, POST, HEAD, OPTIONS
92
+ X-Frame-Options:
93
+ - SAMEORIGIN
94
+ Access-Control-Allow-Origin:
95
+ - "*"
96
+ Access-Control-Allow-Headers:
97
+ - Authorization
98
+ P3p:
99
+ - CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
100
+ Set-Cookie:
101
+ - AN=; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
102
+ - G=v%3D1%26i%3D45faa762-1aa5-43e5-b67b-9b82d5be33f9%26a%3D513%26s%3DAPDvTK7bWX2ObCgFcFBpPxRdhMnq8YtinA;
103
+ Domain=.eventbriteapi.com; expires=Fri, 20-Nov-2015 21:09:54 GMT; httponly;
104
+ Path=/
105
+ - SP=AGQgbblZQ2pm1xDSdSi049ntsOHBIv2kxWbdh8QoRLmBB3RAye_UoZR8ZQCufUeUuV89ywXJa5ba-7EvzInxJWIlTjjQspsxkgGB0x59P8_irv8cLcJrKgn-v27w8MP5I6ScdAU0PIHbctywfWT6uOlu1Rv3H45FTQerrndx9Ecp6KevqNw7bEW_EVPdcypjAyGnGNiu1GpAL9R0wKBNp3k9X4NGkF8cRiHZOjuud8-ab44vtOeQYxA;
106
+ Domain=.eventbriteapi.com; httponly; Path=/
107
+ - SS=AE3DLHQPwlTP-NOwKkspYG9Gbh0MUvpE4A; Domain=.eventbriteapi.com; httponly;
108
+ Path=/; secure
109
+ - eblang=lo%3Den_US%26la%3Den-us; Domain=.eventbriteapi.com; expires=Fri, 20-Nov-2015
110
+ 21:09:54 GMT; httponly; Path=/
111
+ body:
112
+ encoding: UTF-8
113
+ string: '{"resource_uri": "https://www.eventbriteapi.com/v3/events/12095703575/",
114
+ "name": {"text": "Startup Weekend Seattle 10/3", "html": "Startup Weekend
115
+ Seattle 10/3"}, "description": {"text": "For all event details, please visit
116
+ http://go.up.co/seattle \nThanks, \nStartup Weekend \nRefund Policy:\u00a0\u00a0No
117
+ refunds will be granted within 7 days of the event if food and drink have
118
+ already been ordered. Apologies for any inconvenience this may cause. \nAbout
119
+ Startup Weekend:\u00a0Startup Weekends are 54-hour events designed to provide
120
+ superior experiential education for technical and non-technical entrepreneurs.\u00a0\u00a0Beginning
121
+ with Friday night pitches and continuing through brainstorming, business plan
122
+ development, and basic prototype creation, Startup Weekends culminate in Sunday
123
+ night demos and presentations.\u00a0\u00a0Participants create working startups
124
+ during the event and are able to collaborate with like-minded individuals
125
+ outside of their daily networks.\u00a0All teams hear talks by industry leaders
126
+ and receive valuable feedback from local entrepreneurials.\u00a0The weekend
127
+ is centered around action, innovation, and education. \u00a0Whether you are
128
+ looking for feedback on a idea, a co-founder, specific skill sets, or a team
129
+ to help you execute, Startup Weekends are the perfect environment in which
130
+ to test your idea and take the first steps towards launching your own startup.
131
+ \nTerms of Participation Agreement:\u00a0It is our job to provide you with
132
+ an incredible networking and learning opportunity. Our intention is that you
133
+ meet some amazing people that you might actually start a company with, build
134
+ relationships with coaches, and learn from your peers. The event is intended
135
+ to be a collaborative forum for sharing, learning, building, and having fun.
136
+ As such, by registering as a participant, you acknowledge that any ideas shared
137
+ by you or anyone else over the course of the event are contributions to the
138
+ overall experience and community. If you as a participant are worried about
139
+ someone stealing your ideas, please reconsider your participation in the event
140
+ itself or simply refrain from sharing specifics about your idea.\u00a0 \n\u00a0As
141
+ a member of your startup community, you agree to to be inclusive of any and
142
+ all people and their ideas. You agree to act professionally, treat everyone
143
+ with respect, and treat the event facilities with proper care. You agree that
144
+ you are responsible for any accidents or damages that you cause. You also
145
+ agree to not\u00a0hold\u00a0Startup Weekend, your local volunteer team, or
146
+ any of the event supporters liable for any loss, damage, injury, or any other
147
+ unforeseeable incident.\u00a0 \nBy Participating at the event, you grant Startup
148
+ Weekend permission to capture photo/video of the event. You can find the exact
149
+ legal terms on our FAQ Page but to summarize, we want to share your success
150
+ with the world.", "html": "<P>For all event details, please visit <A HREF=\"http://go.up.co/seattle\"
151
+ TARGET=\"_blank\" REL=\"nofollow\">http://go.up.co/seattle<\/A><\/P>\r\n<P>Thanks,<\/P>\r\n<P><A
152
+ HREF=\"http://startupweekend.org/contact/\" REL=\"nofollow\"><SPAN STYLE=\"font-family:
153
+ Arial; font-size: 13.333333969116211px; line-height: 20.799999237060547px;\">Startup
154
+ Weekend<\/SPAN><\/A><\/P>\r\n<P><STRONG STYLE=\"font-size: 13px; line-height:
155
+ 1.6em;\"><SPAN STYLE=\"font-family: Arial;\">Refund Policy:<\/SPAN><\/STRONG><SPAN
156
+ STYLE=\"font-family: Arial;\">\u00a0\u00a0No refunds will be granted within
157
+ 7 days of the event if food and drink have already been ordered. Apologies
158
+ for any inconvenience this may cause.<\/SPAN><\/P>\r\n<P STYLE=\"background-position:
159
+ initial initial; background-repeat: initial initial;\"><STRONG><SPAN STYLE=\"font-family:
160
+ Arial;\">About Startup Weekend:<\/SPAN><\/STRONG><SPAN STYLE=\"font-family:
161
+ Arial;\">\u00a0Startup Weekends are 54-hour events designed to provide superior
162
+ experiential education for technical and non-technical entrepreneurs.\u00a0\u00a0Beginning
163
+ with Friday night pitches and continuing through brainstorming, business plan
164
+ development, and basic prototype creation, Startup Weekends culminate in Sunday
165
+ night demos and presentations.\u00a0\u00a0Participants create working startups
166
+ during the event and are able to collaborate with like-minded individuals
167
+ outside of their daily networks.\u00a0All teams hear talks by industry leaders
168
+ and receive valuable feedback from local entrepreneurials.\u00a0The weekend
169
+ is centered around action, innovation, and education. \u00a0Whether you are
170
+ looking for feedback on a idea, a co-founder, specific skill sets, or a team
171
+ to help you execute, Startup Weekends are the perfect environment in which
172
+ to test your idea and take the first steps towards launching your own startup.<\/SPAN><\/P>\r\n<P
173
+ STYLE=\"background-position: initial initial; background-repeat: initial initial;\"><STRONG><SPAN
174
+ STYLE=\"font-family: Arial;\">Terms of Participation Agreement:\u00a0<\/SPAN><\/STRONG><SPAN
175
+ STYLE=\"font-family: Arial;\">It is our job to provide you with an incredible
176
+ networking and learning opportunity. Our intention is that you meet some amazing
177
+ people that you might actually start a company with, build relationships with
178
+ coaches, and learn from your peers. The event is intended to be a collaborative
179
+ forum for sharing, learning, building, and having fun. As such, by registering
180
+ as a participant, you acknowledge that any ideas shared by you or anyone else
181
+ over the course of the event are contributions to the overall experience and
182
+ community. If you as a participant are worried about someone stealing your
183
+ ideas, please reconsider your participation in the event itself or simply
184
+ refrain from sharing specifics about your idea.\u00a0<\/SPAN><\/P>\r\n<P STYLE=\"background-position:
185
+ initial initial; background-repeat: initial initial;\"><SPAN STYLE=\"font-family:
186
+ Arial;\">\u00a0As a member of your startup community, you agree to to be inclusive
187
+ of any and all people and their ideas. You agree to act professionally, treat
188
+ everyone with respect, and treat the event facilities with proper care. You
189
+ agree that you are responsible for any accidents or damages that you cause.
190
+ You also agree to not\u00a0hold\u00a0Startup Weekend, your local volunteer
191
+ team, or any of the event supporters liable for any loss, damage, injury,
192
+ or any other unforeseeable incident.\u00a0<\/SPAN><\/P>\r\n<P STYLE=\"background-position:
193
+ initial initial; background-repeat: initial initial;\"><SPAN STYLE=\"font-family:
194
+ Arial;\">By Participating at the event, you grant Startup Weekend permission
195
+ to capture photo/video of the event. You can find the exact legal terms on
196
+ our <A HREF=\"http://startupweekend.org/about/firsttimer/\" REL=\"nofollow\">FAQ
197
+ Page<\/A> but to <SPAN STYLE=\"font-family: Arial; font-size: small; line-height:
198
+ 20.799999237060547px;\">summarize<\/SPAN>, we want to share your success with
199
+ the world.<\/SPAN><\/P>\r\n<P STYLE=\"text-align: justify; background-position:
200
+ initial initial; background-repeat: initial initial;\">\u00a0<\/P>"}, "logo":
201
+ {"id": "7488397", "url": "http://cdn.evbuc.com/images/7488397/106782913403/1/logo.png"},
202
+ "id": "12095703575", "url": "http://swseattle0814.eventbrite.com", "logo_url":
203
+ "http://cdn.evbuc.com/images/7488397/106782913403/1/logo.png", "start": {"timezone":
204
+ "America/Los_Angeles", "local": "2014-10-03T18:00:00", "utc": "2014-10-04T01:00:00Z"},
205
+ "end": {"timezone": "America/Los_Angeles", "local": "2014-10-05T21:00:00",
206
+ "utc": "2014-10-06T04:00:00Z"}, "created": "2014-06-26T20:31:08Z", "changed":
207
+ "2014-11-18T00:38:08Z", "capacity": 300, "status": "completed", "currency":
208
+ "USD", "online_event": false, "organizer_id": "2300226659", "venue_id": "7780387",
209
+ "category_id": "199", "subcategory_id": null, "format_id": "100", "subcategory":
210
+ null, "organizer": {"description": {"text": "UP Global is a non-profit dedicated
211
+ to fostering entrepreneurship, grassroots leadership, and strong communities.\u00a0\r\nUP
212
+ Global is on a mission to make the world a more innovative and prosperous
213
+ place, one community at a time. We believe that entrepreneurs are critical
214
+ to driving a strong global economy and a better world. We do our part by supporting
215
+ the grassroots leaders who are at the core of every strong entrepreneurial
216
+ community.\u00a0\r\nThrough the efforts of its grassroots community leaders,
217
+ UP Global operates programs that foster entrepreneurship in hundreds of cities
218
+ across the world. UP Global''s flagship programs & initatives include Startup
219
+ Weekend, Startup Digest, Startup Next, Startup Education, and Entrepreneurs
220
+ Across Borders.", "html": "<P>UP Global is a non-profit dedicated to fostering
221
+ entrepreneurship, grassroots leadership, and strong communities.\u00a0<\/P>\r\n<P>UP
222
+ Global is on a mission to make the world a more innovative and prosperous
223
+ place, one community at a time. We believe that entrepreneurs are critical
224
+ to driving a strong global economy and a better world. We do our part by supporting
225
+ the grassroots leaders who are at the core of every strong entrepreneurial
226
+ community.\u00a0<\/P>\r\n<P>Through the efforts of its grassroots community
227
+ leaders, UP Global operates programs that foster entrepreneurship in hundreds
228
+ of cities across the world. UP Global''s flagship programs & initatives include
229
+ Startup Weekend, Startup Digest, Startup Next, Startup Education, and Entrepreneurs
230
+ Across Borders.<\/P>"}, "logo": {"id": "7073727", "url": "http://cdn.evbuc.com/images/7073727/1954445013/2/logo.jpg"},
231
+ "resource_uri": "https://www.eventbriteapi.com/v3/organizers/2300226659/",
232
+ "id": "2300226659", "name": "UP Global", "url": "http://www.eventbrite.com/o/up-global-2300226659",
233
+ "num_past_events": 2162, "num_future_events": 136}, "venue": {"address": {"address_1":
234
+ "1301 2nd Ave", "address_2": null, "city": "Seattle", "region": "WA", "postal_code":
235
+ "98101", "country": "US", "latitude": "47.607935", "longitude": "-122.338211"},
236
+ "resource_uri": "https://www.eventbriteapi.com/v3/venues/7780387/", "id":
237
+ "7780387", "name": "Zillow Seattle Headquarters", "latitude": "47.607935",
238
+ "longitude": "-122.338211"}, "category": {"resource_uri": "https://www.eventbriteapi.com/v3/categories/199/",
239
+ "id": "199", "name": "Other", "name_localized": "Other", "short_name": "Other",
240
+ "short_name_localized": "Other"}, "format": {"resource_uri": "https://www.eventbriteapi.com/v3/formats/100/",
241
+ "id": "100", "name": "Other", "name_localized": "Other", "short_name": "Other",
242
+ "short_name_localized": "Other"}, "ticket_classes": [{"resource_uri": "https://www.eventbriteapi.com/v3/events/12095703575/ticket_classes/26719725/",
243
+ "id": "26719725", "name": "Developer", "description": "This ticket type applies
244
+ to software engineers/coders/developers - in short, anybody who can and will
245
+ write code. Students: use code \"STUDENT\" and pay just $49. You will be required
246
+ to show Student ID at the door.", "cost": {"currency": "USD", "display": "$99.00",
247
+ "value": 9900}, "fee": {"currency": "USD", "display": "$0.00", "value": 0},
248
+ "donation": false, "free": false, "minimum_quantity": 1, "maximum_quantity":
249
+ 30, "variants": [], "event_id": "12095703575"}, {"resource_uri": "https://www.eventbriteapi.com/v3/events/12095703575/ticket_classes/26719727/",
250
+ "id": "26719727", "name": "Designer", "description": "This ticket type applies
251
+ to anybody with a background in design (graphics, UX/UI, etc.) Students: use
252
+ code \"STUDENT\" and pay just $49. You will be required to show Student ID
253
+ at the door. ", "cost": {"currency": "USD", "display": "$99.00", "value":
254
+ 9900}, "fee": {"currency": "USD", "display": "$2.24", "value": 224}, "donation":
255
+ false, "free": false, "minimum_quantity": 1, "maximum_quantity": 30, "variants":
256
+ [], "event_id": "12095703575"}, {"resource_uri": "https://www.eventbriteapi.com/v3/events/12095703575/ticket_classes/26719729/",
257
+ "id": "26719729", "name": "Non-Technical", "description": "This ticket type
258
+ applies to business, marketing & PR, and anyone with a non-technical background.
259
+ Students: use code \"STUDENT\" and pay just $49. You will be required to show
260
+ Student ID at the door.", "cost": {"currency": "USD", "display": "$99.00",
261
+ "value": 9900}, "fee": {"currency": "USD", "display": "$0.00", "value": 0},
262
+ "donation": false, "free": false, "minimum_quantity": 1, "maximum_quantity":
263
+ 30, "variants": [], "event_id": "12095703575"}, {"resource_uri": "https://www.eventbriteapi.com/v3/events/12095703575/ticket_classes/26719741/",
264
+ "id": "26719741", "name": "Demo Day", "description": null, "cost": {"currency":
265
+ "USD", "display": "$25.00", "value": 2500}, "fee": {"currency": "USD", "display":
266
+ "$1.13", "value": 113}, "donation": false, "free": false, "minimum_quantity":
267
+ 1, "maximum_quantity": 30, "variants": [], "event_id": "12095703575"}]}'
268
+ http_version:
269
+ recorded_at: Thu, 20 Nov 2014 21:09:55 GMT
270
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,209 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.meetup.com/2/event/187282242?format=json&key=<MEETUP_API_KEY>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Thu, 20 Nov 2014 21:34:42 GMT
23
+ Content-Type:
24
+ - application/json;charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Set-Cookie:
30
+ - __cfduid=ddc2b5e428556f7cb390a65bfd204d8e01416519282; expires=Fri, 20-Nov-15
31
+ 21:34:42 GMT; path=/; domain=.meetup.com; HttpOnly
32
+ X-Meetup-Server:
33
+ - api12.int.meetup.com
34
+ X-Meetup-Request-Id:
35
+ - f40aa1ba-be10-4c4c-84dc-788c80fbeff8
36
+ X-Oauth-Scopes:
37
+ - basic
38
+ X-Accepted-Oauth-Scopes:
39
+ - basic
40
+ Etag:
41
+ - W/"10776f82a09e2b17a382014d89f1686b"
42
+ Vary:
43
+ - Accept-Encoding,User-Agent
44
+ Server:
45
+ - cloudflare-nginx
46
+ Cf-Ray:
47
+ - 18c7c5e8ff3d0c3b-SEA
48
+ body:
49
+ encoding: ASCII-8BIT
50
+ string: !binary |-
51
+ eyJzdGF0dXMiOiJwYXN0IiwidmlzaWJpbGl0eSI6InB1YmxpYyIsIm1heWJl
52
+ X3JzdnBfY291bnQiOjAsInZlbnVlIjp7ImlkIjoxNjE0NjA3MiwibG9uIjot
53
+ MTIyLjMzNDUsInJlcGlubmVkIjpmYWxzZSwibmFtZSI6IkRpY2UgQ2FiYW5h
54
+ IGF0IFNVUkYiLCJhZGRyZXNzXzEiOiI4MjEgMm5kIEF2ZW51ZSAjNDEwIiwi
55
+ bGF0Ijo0Ny42MDQyMSwiY291bnRyeSI6IlVTIiwiY2l0eSI6IlNlYXR0bGUi
56
+ fSwiaWQiOiIxODcyODIyNDIiLCJ1dGNfb2Zmc2V0IjotMjUyMDAwMDAsImR1
57
+ cmF0aW9uIjoxMDgwMDAwMCwidGltZSI6MTQwNjY4MjAwMDAwMCwid2FpdGxp
58
+ c3RfY291bnQiOjAsInVwZGF0ZWQiOjE0MDY2OTM4NTYwMDAsInllc19yc3Zw
59
+ X2NvdW50Ijo3NiwiY3JlYXRlZCI6MTQwMTk1MzQ5NzAwMCwiZXZlbnRfdXJs
60
+ IjoiaHR0cDpcL1wvd3d3Lm1lZXR1cC5jb21cL1N0YXJ0dXAtR3JpbmQtU2Vh
61
+ dHRsZVwvZXZlbnRzXC8xODcyODIyNDJcLyIsImRlc2NyaXB0aW9uIjoiPHA+
62
+ PGI+PGEgaHJlZj1cImh0dHA6XC9cL3d3dy5ldmVudGJyaXRlLmNvbVwvZXZl
63
+ bnRcLzExODY3MTU3OTg5XCI+VEhJUyBJUyBBIFBBSUQgRVZFTlQgUFVSQ0hB
64
+ U0UgWU9VUiBUSUNLRVQgSEVSRTxcL2E+PFwvYj48XC9wPiA8cD48Yj5Sb2Jl
65
+ cnQgU2NvYmxlLCBUZWNoIEdlZWs8XC9iPiwgUmFja3NwYWNlPFwvcD4gPHA+
66
+ PGltZyBzcmM9XCJodHRwOlwvXC9zdGFydHVwZ3JpbmQuY29tXC93cC1jb250
67
+ ZW50XC91cGxvYWRzXC8yMDE0XC8wNlwvc2NvYmxlLnBuZ1wiIFwvPjxcL3A+
68
+ IDxwPkFzIFN0YXJ0dXAgTGlhaXNvbiBmb3IgUmFja3NwYWNlLCB0aGUgT3Bl
69
+ biBDbG91ZCBDb21wdXRpbmcgQ29tcGFueSwgU2NvYmxlIHRyYXZlbHMgdGhl
70
+ IHdvcmxkIGxvb2tpbmcgZm9yIHdoYXQncyBoYXBwZW5pbmcgb24gdGhlIGJs
71
+ ZWVkaW5nIGVkZ2Ugb2YgdGVjaG5vbG9neSBmb3IgUmFja3NwYWNlJ3Mgc3Rh
72
+ cnR1cCBwcm9ncmFtLiBIZSdzIGludGVydmlld2VkIHRob3VzYW5kcyBvZiBl
73
+ eGVjdXRpdmVzIGFuZCB0ZWNobm9sb2d5IGlubm92YXRvcnMgYW5kIHJlcG9y
74
+ dHMgd2hhdCBoZSBsZWFybnMgaW4gYm9va3MgKFwiVGhlIEFnZSBvZiBDb250
75
+ ZXh0LFwiIGEgYm9vayBjb2F1dGhvcmVkIHdpdGggRm9yYmVzIGF1dGhvciBT
76
+ aGVsIElzcmFlbCzCoGhhcyBiZWVuIHJlbGVhc2VkIGF0wqA8YSBocmVmPVwi
77
+ aHR0cDpcL1wvYW16bi50b1wvQWdlT2ZDb250ZXh0XCI+PGEgaHJlZj1cImh0
78
+ dHA6XC9cL2Ftem4udG9cL0FnZU9mQ29udGV4dFwiIGNsYXNzPVwibGlua2lm
79
+ aWVkXCI+aHR0cDpcL1wvYW16bi50b1wvQWdlT2ZDb250ZXh0PFwvYT48XC9h
80
+ PsKgKSwgWW91VHViZSwgYW5kIG1hbnkgc29jaWFsIG1lZGlhIHNpdGVzIHdo
81
+ ZXJlIGhlJ3MgZm9sbG93ZWQgYnkgbWlsbGlvbnPCoG9mIHBlb3BsZS48XC9w
82
+ PiA8cD5JJ20gYSBnZWVrIHdobyBncmV3IHVwIGluIFNpbGljb24gVmFsbGV5
83
+ IChteSBkYWQgd2FzIGFuIGVuZ2luZWVyIGF0IExvY2toZWVkKSBhbmQgc2lu
84
+ Y2UgMTk4NSBJJ3ZlIGJlZW4gYnVpbGRpbmcgb25saW5lIGNvbW11bml0aWVz
85
+ LiBJbiAyMDAwIEkgc3RhcnRlZCBteSB0ZWNobm9sb2d5IGJsb2cswqA8YSBo
86
+ cmVmPVwiaHR0cDpcL1wvc2NvYmxlaXplci5jb21cL1wiPjxhIGhyZWY9XCJo
87
+ dHRwOlwvXC9zY29ibGVpemVyLmNvbVwiIGNsYXNzPVwibGlua2lmaWVkXCI+
88
+ aHR0cDpcL1wvc2NvYmxlaXplci5jb208XC9hPjxcL2E+LCBhbmQgbXkgbGlm
89
+ ZSBoYXMgYmVlbiBvbiBhIHJvY2tldHNoaXAgZXZlciBzaW5jZS4gSW5bbWFz
90
+ a2VkXSBJIHdvcmtlZCBhdCBNaWNyb3NvZnQgYXMgYW4gZXZhbmdlbGlzdCBh
91
+ bmQgb25lIG9mIHRoZSBmaXZlIGd1eXMgd2hvIHN0YXJ0ZWQgTWljcm9zb2Z0
92
+ J3MgZmFtb3VzIENoYW5uZWw5IHZpZGVvIGNvbW11bml0eS48XC9wPiA8cD7C
93
+ oDxiclwvPkknbSBub3cgd29ya2luZyBhdCBSYWNrc3BhY2UgYXPCoFN0YXJ0
94
+ dXAgTGlhaXNvbiBPZmZpY2VyIChJIGdvIGFyb3VuZCB0aGUgd29ybGQgdG8g
95
+ c3R1ZHkgYW5kIG1ha2UgbWVkaWEgYWJvdXQgd29ybGQtY2hhbmdpbmcgc3Rh
96
+ cnR1cHMpLiBZb3UnbGwgYWxzbyBzZWUgbXkgdmlkZW9zIG9uwqA8YSBocmVm
97
+ PVwiaHR0cDpcL1wveW91dHViZS5jb21cL3Njb2JsZWl6ZXJcIj48YSBocmVm
98
+ PVwiaHR0cDpcL1wveW91dHViZS5jb21cL3Njb2JsZWl6ZXJcIiBjbGFzcz1c
99
+ ImVtYmVkZGVkXCI+aHR0cDpcL1wveW91dHViZS5jb21cL3Njb2JsZWl6ZXI8
100
+ XC9hPjxcL2E+wqBidXQgdGhlIGJlc3QgcGxhY2UgdG8gd2F0Y2ggbWUgbm93
101
+ IGlzIG9uwqA8YSBocmVmPVwiaHR0cHM6XC9cL3d3dy5mYWNlYm9vay5jb21c
102
+ L1JvYmVydFNjb2JsZVwiPkZhY2Vib29rPFwvYT4swqA8YSBocmVmPVwiaHR0
103
+ cDpcL1wvdHdpdHRlci5jb21cL3Njb2JsZWl6ZXJcIj5vbiBUd2l0dGVyPFwv
104
+ YT7CoG9yIG9uwqA8YSBocmVmPVwiaHR0cDpcL1wvc2NvYmxlaXplci5jb21c
105
+ L1wiPm15IGJsb2c8XC9hPi4gT3VyIHByb2Zlc3Npb25hbCB2aWRlb3MsIGRv
106
+ bmUgaW4gc3R1ZGlvLCBhcmUgb27CoDxhIGhyZWY9XCJodHRwOlwvXC95b3V0
107
+ dWJlLmNvbVwvYnVpbGRpbmc0M1wiPlJhY2tzcGFjZSdzIFlvdVR1YmUgc2l0
108
+ ZTxcL2E+LjxcL3A+IDxwPkknbSBhbHNvIHRoZSBmYXRoZXIgb2YgdGhyZWUg
109
+ c29ucywgUGF0cmljaywgMjAsIE1pbGFuLCA2LCBhbmQgUnlhbiwgNCAoYXMg
110
+ b2YgMjAxNCkuIExvdHMgb2YgZnVuIGFuZCB0aGV5IGFyZSBhbGwgZ2Vla3Mg
111
+ aW4gdHJhaW5pbmcgdG9vLjxcL3A+IDxwPsKgPFwvcD4gPHA+wqA8XC9wPiA8
112
+ cD48Yj5BZ2VuZGE8XC9iPjxcL3A+IDxwPjxiPjY6MDA8XC9iPiBOZXR3b3Jr
113
+ aW5nIGFuZCBGb29kPGJyXC8+PGI+NzowMDxcL2I+IEZpcmVzaWRlIENoYXQ8
114
+ YnJcLz48Yj44OjAwPFwvYj4gTmV0d29ya2luZzxcL3A+IDxwPsKgPFwvcD4g
115
+ PHA+SG9zdGVkIEJ5IDxiPk1pa2UgR3JhYmhhbTxcL2I+LCBTZWF0dGxlIENo
116
+ YXB0ZXIgRGlyZWN0b3I8XC9wPiA8cD48aW1nIHNyYz1cImh0dHA6XC9cL3N0
117
+ YXJ0dXBncmluZC5jb21cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTNcLzAy
118
+ XC9NaWtlLUdyYWJoYW1fYXZhdGFyXzEtOTZ4OTYuanBnXCIgXC8+PFwvcD4g
119
+ PHA+TWljaGFlbCBpcyBvcHRpbWlzdGljLCBnZW51aW5lIGFuZCBhIHByb2Js
120
+ ZW0gc29sdmVyLiBIZSBpcyBhIHByb2R1Y3QgZ3V5IHRoYXQgZm9jdXNlcyBv
121
+ biB1c2VzIGFuZCDCoHJldmVudWUuwqBIZSBsb3ZlcyBzdGFydGluZyBjb21w
122
+ YW5pZXMgYW5kIGVuam95cyB0aGUgY29sbGFib3JhdGlvbiB3aXRoIHNtYXJ0
123
+ IHBlb3BsZSB0byBmaWd1cmUgb3V0IGhvdyB0byBjcmVhdGUgdmFsdWUgZm9y
124
+ IGEgY3VzdG9tZXIuIEhlIGhhcyBiZWVuIGx1Y2t5IGVub3VnaCB0byBzdGFy
125
+ dCBhIGZldyBjb21wYW5pZXMsIHJhaXNlIGNhcGl0YWwgYW5kIHNlZSB0aGUg
126
+ aGFyZCB3b3JrIHBheW9mZi4gTWljaGFlbCBlbmpveXMgdGhlIGV4cGVyaWVu
127
+ Y2VzIHlvdSBtdXN0IGdvIHRocm91Z2ggdG8gZ2V0IGEgY29tcGFueSBpbnRv
128
+ IGEgZ3Jvd3RoIG1vZGUgYW5kIHNlZSBpdHMgZmlyc3Qgc2VydmljZVwvcHJv
129
+ ZHVjdCBjcmVhdGUgcmV2ZW51ZS4gwqBDdXJyZW50bHkgaGUgaXMgd29ya2lu
130
+ ZyBvbiBhbiBwbGF0Zm9ybSB0byBoZWxwIHRoZSBob21lbGVzcyBpbiB0aGUg
131
+ VVMsIHRoYXQgaGFzIHlldCB0byBiZSByZWxlYXNlZCB0byB0aGUgcHVibGlj
132
+ IGFuZCBoZSBpcyBsb29raW5nIGZvciBhIG5ldyBzdGFydHVwIHRvIGpvaW4g
133
+ YW5kIGhlbHAgZ3JvdyBvciBnZXQgdG8gbWFya2V0LsKgIFlvdSBjYW4gdmlz
134
+ aXQgaGlzIGJsb2cgYXQgPGEgaHJlZj1cImh0dHA6XC9cL3d3dy5taWNoYWVs
135
+ Z3JhYmhhbS5jb21cIj5taWNoYWVsZ3JhYmhhbS5jb208XC9hPiBvciBmb2xs
136
+ b3cgaGltIG9uIHR3aXR0ZXIgQGdyYWJtaWtlPGJyXC8+RW1haWw6IDxhIGhy
137
+ ZWY9XCJtYWlsdG86W21hc2tlZF1cIj5bbWFza2VkXTxcL2E+IHwgVHdpdHRl
138
+ cjogPGEgaHJlZj1cImh0dHA6XC9cL3d3dy5nb29nbGUuY29tXC9lbnRyZXBy
139
+ ZW5ldXJzXC9cIj48aW1nIHNyYz1cImh0dHA6XC9cL3N0YXJ0dXBncmluZC5j
140
+ b21cL21lZGlhXC9pbWFnZXNcL3Nwb25zb3JzXC80M1wvU0dFR05pcUFEalht
141
+ Q0U9XC9Hb29nbGUtZm9yLUVudHJlcHJlbmV1cnMucG5nXCIgXC8+PFwvYT4g
142
+ R29vZ2xlIGlzIGNvbW1pdHRlZCB0byBlbXBvd2VyaW5nIGVudHJlcHJlbmV1
143
+ cnMgYXJvdW5kIHRoZSB3b3JsZCB0aHJvdWdoIHByb2dyYW1zLCBwYXJ0bmVy
144
+ c2hpcHMsIGFuZCBvdXIgcHJvZHVjdHMuPFwvcD4gPHA+wqA8XC9wPiA8cD48
145
+ Yj5Mb2NhbCBQYXJ0bmVyczxcL2I+PFwvcD4gPHA+PGEgaHJlZj1cImh0dHA6
146
+ XC9cL3d3dy5zZWVkaXAuY29tXCI+PGltZyBzcmM9XCJodHRwOlwvXC9zdGFy
147
+ dHVwZ3JpbmQuY29tXC9tZWRpYVwvaW1hZ2VzXC9zcG9uc29yc1wvMTNcL1NH
148
+ RUdOaXFBRGpYbUNFPVwvU2VlZC1JUC5wbmdcIiBcLz48XC9hPiBJUCBsYXcg
149
+ ZnJvbSBzb21lIG9mIHRoZSBiZXN0IG1pbmRzIGluIFNlYXR0bGUuPFwvcD4g
150
+ PHA+PGEgaHJlZj1cImh0dHA6XC9cL3d3dy5zdXJmaW5jdWJhdG9yLmNvbVwi
151
+ PjxpbWcgc3JjPVwiaHR0cDpcL1wvc3RhcnR1cGdyaW5kLmNvbVwvbWVkaWFc
152
+ L2ltYWdlc1wvc3BvbnNvcnNcLzE0XC9TR0VHTmlxQURqWG1DRT1cL1NVUkYt
153
+ SW5jdWJhdG9yLnBuZ1wiIFwvPjxcL2E+IFN0YXJ0aW5nIGEgY29tcGFueT8g
154
+ U3RhcnQgaXQgYXQgU1VSRjxcL3A+IDxwPjxhIGhyZWY9XCJodHRwOlwvXC9n
155
+ cmFzc2hvcHBlci5jb21cL3N0YXJ0dXBncmluZGJcIj48aW1nIHNyYz1cImh0
156
+ dHA6XC9cL3N0YXJ0dXBncmluZC5jb21cL21lZGlhXC9pbWFnZXNcL3Nwb25z
157
+ b3JzXC82MjNcL1NHRUdOaXFBRGpYbUNFPVwvR3Jhc3Nob3BwZXItQi5wbmdc
158
+ IiBcLz48XC9hPiBUdXJuIHRoZSB3b3JsZCBpbnRvIHlvdXIgb2ZmaWNlIHdp
159
+ dGggR3Jhc3Nob3BwZXIsIHRoZSBlbnRyZXByZW5ldXLigJlzIHBob25lIHN5
160
+ c3RlbSB0cnVzdGVkIGJ5IG92ZXIgMTUwLDAwMCBjdXN0b21lcnMuIFdpdGgg
161
+ YSB0b2xsIGZyZWUgb3IgbG9jYWwgbnVtYmVyIGFuZCBmZWF0dXJlcyBsaWtl
162
+ IHVubGltaXRlZCBleHRlbnNpb25zLCBwcm9mZXNzaW9uYWwgZ3JlZXRpbmdz
163
+ LCB2b2ljZW1haWwgdmlhIGVtYWlsIGFuZCBhIGRpYWwgYnkgbmFtZSBkaXJl
164
+ Y3RvcnksIEdyYXNzaG9wcGVyIGhlbHBzIHlvdXIgc21hbGwgYnVzaW5lc3Mg
165
+ c291bmQgcHJvZmVzc2lvbmFsIGFuZCBzdGF5IGNvbm5lY3RlZCBmcm9tIGFu
166
+ eXdoZXJlLjxcL3A+IDxwPsKgPFwvcD4gPHA+VXBjb21pbmcgZXZlbnRzIHlv
167
+ dSBzaG91bGQgYXR0ZW5kITxcL3A+IDxwPjxhIGhyZWY9XCJodHRwOlwvXC93
168
+ d3cuZXZlbnRicml0ZS5jb21cL2V2ZW50XC8xMTUyODg2MDEzMVwiPjxpbWcg
169
+ c3JjPVwiaHR0cDpcL1wvc3RhcnR1cGdyaW5kLmNvbVwvbWVkaWFcL2ltYWdl
170
+ c1wvc3BlYWtlcnNcLzY3MTA4XC9TR0VTU0dwbHVzZG5sRnFmUTBzUXVLU0dw
171
+ bHVzcXRUV3NKaTJ4STBtMFV2YTdxaUVmMDFJT2w3UnZ0aU1vUDI2Z0JRPT1c
172
+ L0p1bGllLVNhbmRsZXIuanBnXCIgXC8+PFwvYT4gU2VhdHRsZSBob3N0cyA8
173
+ YSBocmVmPVwiaHR0cDpcL1wvd3d3LmV2ZW50YnJpdGUuY29tXC9ldmVudFwv
174
+ MTE1Mjg4NjAxMzFcIj48Yj5KdWxpZSBTYW5kbGVyPFwvYj48XC9hPiA8YSBo
175
+ cmVmPVwiaHR0cDpcL1wvd3d3LmV2ZW50YnJpdGUuY29tXC9ldmVudFwvMTE1
176
+ Mjg4NjAxMzFcIj5QcmluY2lwYWwgTWFkcm9uYSBWZW50dXJlPFwvYT4gPGEg
177
+ aHJlZj1cImh0dHA6XC9cL3d3dy5ldmVudGJyaXRlLmNvbVwvZXZlbnRcLzEx
178
+ NTI4ODYwMTMxXCI+PGI+MzB0aCBvZiBTZXB0ZW1iZXIgMjAxNDxcL2I+PFwv
179
+ YT48XC9wPiA8cD48aW1nIHNyYz1cImh0dHA6XC9cL3N0YXJ0dXBncmluZC5j
180
+ b21cL3NndHJhY2tlclwvbXVldmVudF85MzYuZ2lmXCIgXC8+IMKgPFwvcD4g
181
+ PHA+V2hhdCBpcyA8Yj5TdGFydHVwIEdyaW5kPFwvYj4/PFwvcD4gPHA+U3Rh
182
+ cnR1cCBHcmluZCBpcyBhIGdsb2JhbCBzdGFydHVwIGNvbW11bml0eSBkZXNp
183
+ Z25lZCB0byBlZHVjYXRlLCBpbnNwaXJlLCBhbmQgY29ubmVjdCBlbnRyZXBy
184
+ ZW5ldXJzLiBXZSBob3N0IG1vbnRobHkgZXZlbnRzIGluIG1vcmUgdGhhbiAx
185
+ MDAgY2l0aWVzIGFuZCA0MiBjb3VudHJpZXMgZmVhdHVyaW5nIHN1Y2Nlc3Nm
186
+ dWwgbG9jYWwgZm91bmRlcnMsIGlubm92YXRvcnMsIGVkdWNhdG9ycyBhbmQg
187
+ aW52ZXN0b3JzIHdobyBzaGFyZSBwZXJzb25hbCBzdG9yaWVzIGFuZCBsZXNz
188
+ b25zIGxlYXJuZWQgb24gdGhlIHJvYWQgdG8gYnVpbGRpbmcgZ3JlYXQgY29t
189
+ cGFuaWVzLiBPdXIgbW9udGhseSBmaXJlc2lkZSBjaGF0IGludGVydmlld3Ms
190
+ IHN0YXJ0dXAgbWl4ZXJzIGFuZCBhbm51YWwgY29uZmVyZW5jZXMgcHJvdmlk
191
+ ZSBhbXBsZSBvcHBvcnR1bml0aWVzIHRvIGNvbm5lY3Qgd2l0aCBhbWF6aW5n
192
+ IHN0YXJ0dXBzIGFuZCB0aGUgcGVvcGxlIGJlaGluZCB0aGVtLCB0YXAgaW50
193
+ byBhIHN0cm9uZyBzdXBwb3J0IG5ldHdvcmssIGZvcm0gbWVhbmluZ2Z1bCBj
194
+ b25uZWN0aW9ucyBhbmQgZ2FpbiBpbnNwaXJhdGlvbiBmb3IgdGhlIHN0YXJ0
195
+ dXAgam91cm5leSBhaGVhZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQg
196
+ PGEgaHJlZj1cImh0dHA6XC9cL3N0YXJ0dXBncmluZC5jb21cIj5TdGFydHVw
197
+ R3JpbmQuY29tPFwvYT4gb3IgZm9sbG93IHVzIG9uIHR3aXR0ZXIgPGEgaHJl
198
+ Zj1cImh0dHA6XC9cL3R3aXR0ZXIuY29tXC9TdGFydHVwR3JpbmRcIj5AU3Rh
199
+ cnR1cEdyaW5kPFwvYT4uPFwvcD4iLCJuYW1lIjoiU3RhcnR1cCBHcmluZCBT
200
+ ZWF0dGxlIEhvc3RzIFJvYmVydCBTY29ibGUsIFRlY2ggR2VlayAoUmFja3Nw
201
+ YWNlKSIsImhlYWRjb3VudCI6MCwicmF0aW5nIjp7ImNvdW50IjowLCJhdmVy
202
+ YWdlIjowfSwiZ3JvdXAiOnsiaWQiOjQyNDk5MzIsImNyZWF0ZWQiOjEzNDE2
203
+ NDA1ODYwMDAsImdyb3VwX2xhdCI6NDcuNjY5OTk4MTY4OTQ1MzEsIm5hbWUi
204
+ OiJTdGFydHVwIEdyaW5kIFNlYXR0bGUiLCJncm91cF9sb24iOi0xMjIuMzM5
205
+ OTk2MzM3ODkwNjIsImpvaW5fbW9kZSI6Im9wZW4iLCJ1cmxuYW1lIjoiU3Rh
206
+ cnR1cC1HcmluZC1TZWF0dGxlIiwid2hvIjoiRW50cmVwcmVuZXVycyJ9fQo=
207
+ http_version:
208
+ recorded_at: Thu, 20 Nov 2014 21:34:42 GMT
209
+ recorded_with: VCR 2.9.3