t 0.4.0 → 0.5.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.
- data/.gitignore +0 -1
- data/.travis.yml +0 -1
- data/README.md +28 -99
- data/lib/t.rb +0 -13
- data/lib/t/cli.rb +385 -147
- data/lib/t/collectable.rb +1 -1
- data/lib/t/delete.rb +84 -0
- data/lib/t/list.rb +103 -0
- data/lib/t/search.rb +133 -0
- data/lib/t/set.rb +57 -0
- data/lib/t/version.rb +1 -1
- data/spec/cli_spec.rb +330 -201
- data/spec/{cli/delete_spec.rb → delete_spec.rb} +86 -124
- data/spec/fixtures/recommendations.json +1 -1
- data/spec/fixtures/users.json +1 -0
- data/spec/helper.rb +0 -1
- data/spec/{cli/list_spec.rb → list_spec.rb} +77 -6
- data/spec/rcfile_spec.rb +0 -4
- data/spec/{cli/search_spec.rb → search_spec.rb} +1 -1
- data/spec/{cli/set_spec.rb → set_spec.rb} +1 -1
- data/t.gemspec +2 -2
- metadata +26 -36
- data/lib/t/cli/delete.rb +0 -85
- data/lib/t/cli/follow.rb +0 -78
- data/lib/t/cli/list.rb +0 -58
- data/lib/t/cli/list/add.rb +0 -144
- data/lib/t/cli/list/remove.rb +0 -136
- data/lib/t/cli/search.rb +0 -124
- data/lib/t/cli/set.rb +0 -59
- data/lib/t/cli/unfollow.rb +0 -121
- data/spec/cli/follow_spec.rb +0 -240
- data/spec/cli/list/add_spec.rb +0 -518
- data/spec/cli/list/remove_spec.rb +0 -422
- data/spec/cli/unfollow_spec.rb +0 -410
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'helper'
|
3
3
|
|
4
|
-
describe T::
|
4
|
+
describe T::Delete do
|
5
5
|
|
6
6
|
before do
|
7
7
|
rcfile = RCFile.instance
|
@@ -85,7 +85,7 @@ describe T::CLI::Delete do
|
|
85
85
|
@t.options = @t.options.merge(:force => false)
|
86
86
|
end
|
87
87
|
it "should request the correct resource" do
|
88
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
|
88
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
|
89
89
|
$stdin.should_receive(:gets).and_return("yes")
|
90
90
|
@t.delete("dm")
|
91
91
|
a_get("/1/direct_messages/sent.json").
|
@@ -97,7 +97,7 @@ describe T::CLI::Delete do
|
|
97
97
|
end
|
98
98
|
context "yes" do
|
99
99
|
it "should have the correct output" do
|
100
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
|
100
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
|
101
101
|
$stdin.should_receive(:gets).and_return("yes")
|
102
102
|
@t.delete("dm")
|
103
103
|
$stdout.string.chomp.should == "@sferik deleted the direct message sent to @pengwynn: \"Creating a fixture for the Twitter gem\""
|
@@ -105,7 +105,7 @@ describe T::CLI::Delete do
|
|
105
105
|
end
|
106
106
|
context "no" do
|
107
107
|
it "should have the correct output" do
|
108
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? ")
|
108
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the direct message to @hurrycane: \"Sounds good. Meeting Tuesday is fine.\"? [y/N] ")
|
109
109
|
$stdin.should_receive(:gets).and_return("no")
|
110
110
|
@t.delete("dm")
|
111
111
|
$stdout.string.chomp.should == ""
|
@@ -118,76 +118,57 @@ describe T::CLI::Delete do
|
|
118
118
|
describe "#favorite" do
|
119
119
|
before do
|
120
120
|
@t.options = @t.options.merge(:profile => fixture_path + "/.trc")
|
121
|
+
stub_delete("/1/favorites/destroy/28439861609.json").
|
122
|
+
with(:query => {:include_entities => "false"}).
|
123
|
+
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
121
124
|
end
|
122
|
-
context "
|
125
|
+
context ":force => true" do
|
123
126
|
before do
|
124
|
-
|
125
|
-
with(:query => {:count => "1", :include_entities => "false"}).
|
126
|
-
to_return(:body => "[]", :headers => {:content_type => "application/json; charset=utf-8"})
|
127
|
+
@t.options = @t.options.merge(:force => true)
|
127
128
|
end
|
128
|
-
it "should
|
129
|
-
|
130
|
-
|
131
|
-
|
129
|
+
it "should request the correct resource" do
|
130
|
+
@t.delete("favorite", "28439861609")
|
131
|
+
a_delete("/1/favorites/destroy/28439861609.json").
|
132
|
+
with(:query => {:include_entities => "false"}).
|
133
|
+
should have_been_made
|
134
|
+
end
|
135
|
+
it "should have the correct output" do
|
136
|
+
@t.delete("favorite", "28439861609")
|
137
|
+
$stdout.string.should =~ /^@testcli unfavorited @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"$/
|
132
138
|
end
|
133
139
|
end
|
134
|
-
context "
|
140
|
+
context ":force => false" do
|
135
141
|
before do
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
stub_delete("/1/favorites/destroy/28439861609.json").
|
140
|
-
with(:query => {:include_entities => "false"}).
|
142
|
+
@t.options = @t.options.merge(:force => false)
|
143
|
+
stub_get("/1/statuses/show/28439861609.json").
|
144
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
141
145
|
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
142
146
|
end
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
with(:query => {:include_entities => "false"}).
|
154
|
-
should have_been_made
|
155
|
-
end
|
156
|
-
it "should have the correct output" do
|
157
|
-
@t.delete("favorite")
|
158
|
-
$stdout.string.should =~ /^@testcli unfavorited @z's latest status: \"Spilled grilled onions on myself\. I smell delicious!\"$/
|
159
|
-
end
|
147
|
+
it "should request the correct resource" do
|
148
|
+
$stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"? [y/N] ")
|
149
|
+
$stdin.should_receive(:gets).and_return("yes")
|
150
|
+
@t.delete("favorite", "28439861609")
|
151
|
+
a_get("/1/statuses/show/28439861609.json").
|
152
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
153
|
+
should have_been_made
|
154
|
+
a_delete("/1/favorites/destroy/28439861609.json").
|
155
|
+
with(:query => {:include_entities => "false"}).
|
156
|
+
should have_been_made
|
160
157
|
end
|
161
|
-
context "
|
162
|
-
|
163
|
-
|
164
|
-
end
|
165
|
-
it "should request the correct resource" do
|
166
|
-
$stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @z's latest status: \"Spilled grilled onions on myself. I smell delicious!\"? ")
|
158
|
+
context "yes" do
|
159
|
+
it "should have the correct output" do
|
160
|
+
$stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
|
167
161
|
$stdin.should_receive(:gets).and_return("yes")
|
168
|
-
@t.delete("favorite")
|
169
|
-
|
170
|
-
with(:query => {:count => "1", :include_entities => "false"}).
|
171
|
-
should have_been_made
|
172
|
-
a_delete("/1/favorites/destroy/28439861609.json").
|
173
|
-
with(:query => {:include_entities => "false"}).
|
174
|
-
should have_been_made
|
162
|
+
@t.delete("favorite", "28439861609")
|
163
|
+
$stdout.string.should =~ /^@testcli unfavorited @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem\. Twurl is making it easy\. Thank you!\"$/
|
175
164
|
end
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
end
|
184
|
-
context "no" do
|
185
|
-
it "should have the correct output" do
|
186
|
-
$stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @z's latest status: \"Spilled grilled onions on myself. I smell delicious!\"? ")
|
187
|
-
$stdin.should_receive(:gets).and_return("no")
|
188
|
-
@t.delete("favorite")
|
189
|
-
$stdout.string.chomp.should == ""
|
190
|
-
end
|
165
|
+
end
|
166
|
+
context "no" do
|
167
|
+
it "should have the correct output" do
|
168
|
+
$stdout.should_receive(:print).with("Are you sure you want to delete the favorite of @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
|
169
|
+
$stdin.should_receive(:gets).and_return("no")
|
170
|
+
@t.delete("favorite", "28439861609")
|
171
|
+
$stdout.string.chomp.should == ""
|
191
172
|
end
|
192
173
|
end
|
193
174
|
end
|
@@ -224,7 +205,7 @@ describe T::CLI::Delete do
|
|
224
205
|
@t.options = @t.options.merge(:force => false)
|
225
206
|
end
|
226
207
|
it "should request the correct resource" do
|
227
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
|
208
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
228
209
|
$stdin.should_receive(:gets).and_return("yes")
|
229
210
|
@t.delete("list", "presidents")
|
230
211
|
a_get("/1/account/verify_credentials.json").
|
@@ -235,7 +216,7 @@ describe T::CLI::Delete do
|
|
235
216
|
end
|
236
217
|
context "yes" do
|
237
218
|
it "should have the correct output" do
|
238
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
|
219
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
239
220
|
$stdin.should_receive(:gets).and_return("yes")
|
240
221
|
@t.delete("list", "presidents")
|
241
222
|
$stdout.string.chomp.should == "@testcli deleted the list \"presidents\"."
|
@@ -243,7 +224,7 @@ describe T::CLI::Delete do
|
|
243
224
|
end
|
244
225
|
context "no" do
|
245
226
|
it "should have the correct output" do
|
246
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? ")
|
227
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete the list \"presidents\"? [y/N] ")
|
247
228
|
$stdin.should_receive(:gets).and_return("no")
|
248
229
|
@t.delete("list", "presidents")
|
249
230
|
$stdout.string.chomp.should == ""
|
@@ -255,76 +236,57 @@ describe T::CLI::Delete do
|
|
255
236
|
describe "#status" do
|
256
237
|
before do
|
257
238
|
@t.options = @t.options.merge(:profile => fixture_path + "/.trc")
|
239
|
+
stub_delete("/1/statuses/destroy/26755176471724032.json").
|
240
|
+
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
241
|
+
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
258
242
|
end
|
259
|
-
context "
|
243
|
+
context ":force => true" do
|
260
244
|
before do
|
261
|
-
|
262
|
-
with(:query => {:include_entities => "false"}).
|
263
|
-
to_return(:body => "{}", :headers => {:content_type => "application/json; charset=utf-8"})
|
245
|
+
@t.options = @t.options.merge(:force => true)
|
264
246
|
end
|
265
|
-
it "should
|
266
|
-
|
267
|
-
|
268
|
-
|
247
|
+
it "should request the correct resource" do
|
248
|
+
@t.delete("status", "26755176471724032")
|
249
|
+
a_delete("/1/statuses/destroy/26755176471724032.json").
|
250
|
+
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
251
|
+
should have_been_made
|
252
|
+
end
|
253
|
+
it "should have the correct output" do
|
254
|
+
@t.delete("status", "26755176471724032")
|
255
|
+
$stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
|
269
256
|
end
|
270
257
|
end
|
271
|
-
context "
|
258
|
+
context ":force => false" do
|
272
259
|
before do
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
stub_delete("/1/statuses/destroy/26755176471724032.json").
|
277
|
-
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
260
|
+
@t.options = @t.options.merge(:force => false)
|
261
|
+
stub_get("/1/statuses/show/26755176471724032.json").
|
262
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
278
263
|
to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
279
264
|
end
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
end
|
265
|
+
it "should request the correct resource" do
|
266
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
|
267
|
+
$stdin.should_receive(:gets).and_return("yes")
|
268
|
+
@t.delete("status", "26755176471724032")
|
269
|
+
a_get("/1/statuses/show/26755176471724032.json").
|
270
|
+
with(:query => {:include_entities => "false", :include_my_retweet => "false", :trim_user => "true"}).
|
271
|
+
should have_been_made
|
272
|
+
a_delete("/1/statuses/destroy/26755176471724032.json").
|
273
|
+
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
274
|
+
should have_been_made
|
275
|
+
end
|
276
|
+
context "yes" do
|
293
277
|
it "should have the correct output" do
|
294
|
-
|
278
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
|
279
|
+
$stdin.should_receive(:gets).and_return("yes")
|
280
|
+
@t.delete("status", "26755176471724032")
|
295
281
|
$stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
|
296
282
|
end
|
297
283
|
end
|
298
|
-
context "
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
$stdout.
|
304
|
-
$stdin.should_receive(:gets).and_return("yes")
|
305
|
-
@t.delete("status")
|
306
|
-
a_get("/1/account/verify_credentials.json").
|
307
|
-
with(:query => {:include_entities => "false"}).
|
308
|
-
should have_been_made
|
309
|
-
a_delete("/1/statuses/destroy/26755176471724032.json").
|
310
|
-
with(:query => {:include_entities => "false", :trim_user => "true"}).
|
311
|
-
should have_been_made
|
312
|
-
end
|
313
|
-
context "yes" do
|
314
|
-
it "should have the correct output" do
|
315
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @testcli's latest status: \"RT @tenderlove: [ANN] sqlite3-ruby => sqlite3\"? ")
|
316
|
-
$stdin.should_receive(:gets).and_return("yes")
|
317
|
-
@t.delete("status")
|
318
|
-
$stdout.string.chomp.should == "@testcli deleted the status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\""
|
319
|
-
end
|
320
|
-
end
|
321
|
-
context "no" do
|
322
|
-
it "should have the correct output" do
|
323
|
-
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @testcli's latest status: \"RT @tenderlove: [ANN] sqlite3-ruby => sqlite3\"? ")
|
324
|
-
$stdin.should_receive(:gets).and_return("no")
|
325
|
-
@t.delete("status")
|
326
|
-
$stdout.string.chomp.should == ""
|
327
|
-
end
|
284
|
+
context "no" do
|
285
|
+
it "should have the correct output" do
|
286
|
+
$stdout.should_receive(:print).with("Are you sure you want to permanently delete @sferik's status: \"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!\"? [y/N] ")
|
287
|
+
$stdin.should_receive(:gets).and_return("no")
|
288
|
+
@t.delete("status", "26755176471724032")
|
289
|
+
$stdout.string.chomp.should == ""
|
328
290
|
end
|
329
291
|
end
|
330
292
|
end
|
@@ -1 +1 @@
|
|
1
|
-
[{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"default_profile":true,"profile_use_background_image":true,"name":"John Trupiano","contributors_enabled":false,"created_at":"Sun May 11 19:46:06 +0000 2008","profile_background_color":"C0DEED","listed_count":99,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Owner of @smartlogic. I tweet a mixed stream of incoherence and inside jokes. My tweets make me laugh; your mileage will vary.","verified":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","id_str":"14736332","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":117,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Sat Aug 20 03:27:22 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104756380472324096","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/#!\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","id":104756380472324096,"text":"Jimmy Johns: the best place to go right after getting pepper sprayed."},"friends_count":545,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","screen_name":"jtrupiano","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":false,"location":"Baltimore, MD","notifications":null,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/smartlogicsolutions.com\/john","id":14736332,"follow_request_sent":null,"statuses_count":3850,"following":null,"profile_sidebar_border_color":"C0DEED","followers_count":802},"token":"1"},{"user":{"follow_request_sent":false,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Matt Laroche","created_at":"Sun Apr 20 12:05:38 +0000 2008","profile_background_color":"C6E2EE","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme2\/bg.gif","utc_offset":-28800,"description":"Software engineer, beer advocate, Palo Altan, husband.","listed_count":20,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","id_str":"14451152","lang":"en","favourites_count":10,"profile_text_color":"663B12","status":{"truncated":false,"created_at":"Sun Aug 21 20:59:41 +0000 2011","geo":{"type":"Point","coordinates":[33.8043296,-117.9226607]},"in_reply_to_user_id":20113974,"in_reply_to_status_id":105382259623854081,"favorited":false,"in_reply_to_status_id_str":"105382259623854081","coordinates":{"type":"Point","coordinates":[-117.9226607,33.8043296]},"id_str":"105383592376537088","in_reply_to_screen_name":"chasesterling","in_reply_to_user_id_str":"20113974","place":{"country_code":"US","name":"Anaheim","attributes":{},"full_name":"Anaheim, CA","place_type":"city","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-118.017597,33.788835],[-117.674604,33.788835],[-117.674604,33.881456],[-118.017597,33.881456]]]},"id":"0c2e6999105f8070","url":"http:\/\/api.twitter.com\/1\/geo\/id\/0c2e6999105f8070.json"},"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":105383592376537088,"text":"@chasesterling sadly in a fake vending machine at the Monsters Inc ride at Disney's California Adventure."},"statuses_count":6251,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme2\/bg.gif","profile_sidebar_fill_color":"DAECF4","screen_name":"mlroach","profile_background_tile":false,"friends_count":403,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","location":"Palo Alto, California","default_profile_image":false,"notifications":false,"default_profile":false,"profile_link_color":"1F98C7","url":null,"id":14451152,"is_translator":false,"following":false,"profile_sidebar_border_color":"C6E2EE","followers_count":299},"token":"21"},{"user":{"follow_request_sent":false,"statuses_count":183,"time_zone":"Greenland","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","name":"AntonioPires","created_at":"Sat May 16 18:24:33 +0000 2009","profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","utc_offset":-10800,"description":"","listed_count":2,"contributors_enabled":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1067377349\/s_normal.jpg","id_str":"40514587","lang":"en","favourites_count":2,"profile_text_color":"828282","status":{"truncated":false,"created_at":"Mon Jun 13 16:27:31 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"80310340704931840","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":80310340704931840,"text":"Estou concorrendo a 1 ingresso do Alexandre Wollner no Rio \u2013 http:\/\/t.co\/QlJZUqF Siga @design_blog e @pensoeventos e d\u00ea RT!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"1c1c1c","screen_name":"antpires","profile_background_tile":false,"location":"Rio","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1067377349\/s_normal.jpg","friends_count":198,"profile_link_color":"e86f6f","url":"http:\/\/antpires.carbonmade.com","id":40514587,"is_translator":false,"default_profile":false,"following":false,"profile_sidebar_border_color":"000000","followers_count":158},"token":"14"},{"user":{"time_zone":"London","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Alex MacCaw","created_at":"Fri Mar 23 12:36:14 +0000 2007","profile_background_color":"9ae4e8","contributors_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":0,"description":"Ruby\/JavaScript developer, O'Reilly author and entrepreneur. ","default_profile":false,"verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg","id_str":"2006261","listed_count":171,"lang":"en","favourites_count":9,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 23:54:01 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105427467593981952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/tweetbutton\" rel=\"nofollow\"\u003ETweet Button\u003C\/a\u003E","id":105427467593981952,"text":"Visualizing WebKit's hardware acceleration http:\/\/t.co\/nX5pvPl via @thomasfuchs"},"profile_sidebar_fill_color":"e0ff92","screen_name":"maccman","show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":false,"location":"London","notifications":false,"is_translator":false,"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_link_color":"0000ff","url":"http:\/\/alexmaccaw.co.uk","id":2006261,"statuses_count":4497,"following":false,"friends_count":967,"profile_sidebar_border_color":"87bc44","followers_count":2028,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg"},"token":"11"},{"user":{"follow_request_sent":false,"statuses_count":24,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","name":"stuntmann82","created_at":"Sat Aug 30 08:22:57 +0000 2008","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"","listed_count":1,"contributors_enabled":false,"verified":false,"geo_enabled":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/249396146\/images_normal.jpg","id_str":"16052754","lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Nov 25 06:20:05 +0000 2009","geo":null,"in_reply_to_user_id":2889221,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"6042752864","in_reply_to_screen_name":"vitaminjeff","in_reply_to_user_id_str":"2889221","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\/\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":6042752864,"text":"@vitaminjeff Sup bro!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"stuntmann82","profile_background_tile":false,"location":"","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/249396146\/images_normal.jpg","friends_count":5,"profile_link_color":"0084B4","url":null,"id":16052754,"is_translator":false,"default_profile":true,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":42},"token":"14"},{"user":{"listed_count":921,"time_zone":"Alaska","protected":false,"profile_use_background_image":false,"name":"Loren Brichter","show_all_inline_media":true,"geo_enabled":true,"created_at":"Sun Nov 04 17:48:57 +0000 2007","profile_background_color":"1A1B1F","expanded_url":null,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-32400,"description":"meat popsicle","display_url":null,"default_profile_image":false,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1054030005\/hello_normal.png","id_str":"9943672","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"lang":"en","statuses_count":1092,"favourites_count":197,"friends_count":127,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Tue Aug 16 20:43:45 +0000 2011","geo":null,"in_reply_to_user_id":15048963,"in_reply_to_status_id":103567401634897920,"favorited":false,"in_reply_to_status_id_str":"103567401634897920","coordinates":null,"id_str":"103567644837429250","in_reply_to_screen_name":"jboley","in_reply_to_user_id_str":"15048963","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/itunes.apple.com\/us\/app\/twitter\/id409789998?mt=12\" rel=\"nofollow\"\u003ETwitter for Mac\u003C\/a\u003E","id":103567644837429250,"text":"@jboley could swap out the backend, base TwUI right on top of GL, then we could go nuts."},"is_translator":false,"profile_sidebar_fill_color":"252429","screen_name":"lorenb","follow_request_sent":null,"contributors_enabled":false,"profile_background_tile":false,"location":"Philly","notifications":null,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","default_profile":false,"profile_link_color":"2FC2EF","url":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1054030005\/hello_normal.png","id":9943672,"following":null,"profile_sidebar_border_color":"181A1E","followers_count":13101},"token":"22"},{"user":{"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Craig Hockenberry","default_profile":false,"contributors_enabled":false,"created_at":"Sat Dec 02 03:11:33 +0000 2006","profile_background_color":"CD3300","listed_count":1180,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/17652\/Untitled-1.jpg","utc_offset":-28800,"description":"HAD THE IDEA FOR TWITTERRIFIC IN THE SHOWER","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/838441522\/P9010020_normal.jpg","id_str":"36183","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/17652\/Untitled-1.jpg","favourites_count":1774,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Thu Aug 18 15:10:58 +0000 2011","geo":null,"in_reply_to_user_id":7440462,"in_reply_to_status_id":104193896204075010,"favorited":false,"in_reply_to_status_id_str":"104193896204075010","coordinates":null,"id_str":"104208673303310337","in_reply_to_screen_name":"drance","in_reply_to_user_id_str":"7440462","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific for Mac\u003C\/a\u003E","id":104208673303310337,"text":"@drance $20 x 12 > cost of an iPhone 5"},"friends_count":412,"profile_sidebar_fill_color":"DAFFBE","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/838441522\/P9010020_normal.jpg","screen_name":"chockenberry","default_profile_image":false,"show_all_inline_media":true,"geo_enabled":false,"profile_background_tile":true,"location":"Laguna Beach, CA, USA","notifications":false,"is_translator":false,"profile_link_color":"8C3500","url":"http:\/\/furbo.org","id":36183,"follow_request_sent":false,"statuses_count":17036,"following":false,"profile_sidebar_border_color":"A6CD89","followers_count":12386},"token":"24"},{"user":{"is_translator":false,"show_all_inline_media":false,"geo_enabled":false,"time_zone":"Eastern Time (US & Canada)","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Mike Dalessio","contributors_enabled":false,"created_at":"Fri May 02 14:52:50 +0000 2008","profile_background_color":"C0DEED","statuses_count":658,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Rubyist, Pragmatist, Optimist, One Trick Pony. Co-author of Nokogiri. Superpowers: none (yet).\r\n","verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1167926691\/nokogiri-mother-1-crop_normal.png","id_str":"14626544","listed_count":28,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":255,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Aug 17 22:18:33 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103953891397345280","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":9,"source":"web","retweeted_status":{"truncated":false,"created_at":"Wed Aug 17 21:44:08 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103945228565757952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":9,"source":"\u003Ca href=\"http:\/\/timely.is\" rel=\"nofollow\"\u003ETimely App\u003C\/a\u003E","id":103945228565757952,"text":"SSH Can Do That? Productivity Tips for Working with Remote Servers http:\/\/t.co\/F2X0gnq <- lots of good SSH tricks"},"id":103953891397345280,"text":"RT @assaf: SSH Can Do That? Productivity Tips for Working with Remote Servers http:\/\/t.co\/F2X0gnq <- lots of good SSH tricks"},"default_profile":true,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1167926691\/nokogiri-mother-1-crop_normal.png","screen_name":"flavorjones","profile_background_tile":false,"location":"NYC \/ NJ","notifications":false,"friends_count":351,"default_profile_image":false,"profile_link_color":"0084B4","url":"http:\/\/mike.daless.io\/","id":14626544,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":375},"token":"1"},{"user":{"time_zone":"Pacific Time (US & Canada)","protected":false,"show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_use_background_image":false,"name":"GovFresh","listed_count":633,"created_at":"Sat May 02 22:19:00 +0000 2009","profile_background_color":"ffffff","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"Gov 2.0, open gov news, guides, TV, tech, people. Open air government. (@lukefretwell)","statuses_count":7419,"verified":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/291447950\/icon_normal.png","id_str":"37296570","lang":"en","favourites_count":69,"friends_count":205,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/291447950\/icon_normal.png","status":{"truncated":false,"created_at":"Mon Aug 22 02:00:14 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105459232068993024","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105459232068993024,"text":"RT @adrielhampton: Mention on #g2r: Kundra: Closing IT gap is key to making gov't work better for the American people http:\/\/t.co\/4vywBK0"},"default_profile_image":false,"profile_sidebar_fill_color":"ffffff","screen_name":"govfresh","profile_background_tile":false,"location":"USA","is_translator":false,"notifications":false,"default_profile":false,"follow_request_sent":false,"profile_link_color":"006699","url":"http:\/\/www.govfresh.com","id":37296570,"following":false,"profile_sidebar_border_color":"ffffff","followers_count":4770},"token":"1"},{"user":{"default_profile":false,"profile_background_color":"1A1B1F","protected":false,"show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","name":"Ola Bini","listed_count":446,"created_at":"Mon Jul 23 19:05:23 +0000 2007","id_str":"7665302","utc_offset":3600,"favourites_count":2,"profile_text_color":"666666","description":"Programming language nerd, JRuby core developer, language designer (Ioke), lisp and ruby fanatic.","statuses_count":8222,"verified":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","profile_sidebar_fill_color":"252429","profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/52551367\/ONormal_normal.jpg","lang":"en","profile_background_tile":false,"friends_count":204,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/52551367\/ONormal_normal.jpg","status":{"truncated":false,"in_reply_to_user_id":null,"favorited":false,"in_reply_to_status_id_str":null,"created_at":"Sun Aug 21 02:29:20 +0000 2011","id_str":"105104165822410752","geo":{"type":"Point","coordinates":[41.90894375,-87.67776878]},"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"in_reply_to_user_id_str":null,"coordinates":{"type":"Point","coordinates":[-87.67776878,41.90894375]},"contributors":null,"retweeted":false,"place":{"place_type":"city","country_code":"US","name":"Chicago","attributes":{},"full_name":"Chicago, IL","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-87.940101,41.644582],[-87.523661,41.644582],[-87.523661,42.023019],[-87.940101,42.023019]]]},"id":"1d9a5370a355ab0c","url":"http:\/\/api.twitter.com\/1\/geo\/id\/1d9a5370a355ab0c.json"},"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105104165822410752,"text":"Tonight the violet hour with lots of friends"},"default_profile_image":false,"screen_name":"olabini","profile_link_color":"2FC2EF","location":"iPhone: 40.755951,-73.968864","is_translator":false,"notifications":false,"profile_sidebar_border_color":"181A1E","follow_request_sent":false,"time_zone":"Stockholm","url":"http:\/\/olabini.com\/blog","id":7665302,"following":false,"profile_use_background_image":true,"followers_count":4905},"token":"1"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"friends_count":31485,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1408709905\/at-twitter_bigger_normal.png","name":"Spam Watch","default_profile_image":false,"created_at":"Tue Apr 29 19:55:39 +0000 2008","profile_background_color":"1A1B1F","expanded_url":null,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","utc_offset":-28800,"description":"Suspect Twitter spam? Let us know (http:\/\/bit.ly\/Tweport)! Follow @spam & @safety for helpful info, and check out our favorite tips: http:\/\/bit.ly\/spamfav","display_url":null,"is_translator":false,"show_all_inline_media":false,"verified":true,"geo_enabled":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1408709905\/at-twitter_bigger_normal.png","id_str":"14589771","entities":{"user_mentions":[{"name":"Spam Watch","indices":[67,72],"id_str":"14589771","screen_name":"spam","id":14589771},{"name":"Safety","indices":[75,82],"id_str":"95731075","screen_name":"safety","id":95731075}],"urls":[{"expanded_url":null,"indices":[35,56],"url":"http:\/\/bit.ly\/Tweport"},{"expanded_url":null,"indices":[134,155],"url":"http:\/\/bit.ly\/spamfav"}],"hashtags":[]},"follow_request_sent":false,"lang":"en","favourites_count":13,"profile_text_color":"888888","status":{"truncated":false,"created_at":"Thu Aug 18 17:59:14 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104251017306185728","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":"100+","source":"web","retweeted_status":{"truncated":false,"created_at":"Thu Aug 18 17:58:29 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104250831292993536","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":[139769125],"retweeted":false,"retweet_count":"100+","source":"web","id":104250831292993536,"text":"Seeing Tweets that you need to sign a petition to keep Twitter free? Don't click. It's fake and will steal your password."},"id":104251017306185728,"text":"RT @safety: Seeing Tweets that you need to sign a petition to keep Twitter free? Don't click. It's fake and will steal your password."},"default_profile":false,"profile_sidebar_fill_color":"252429","screen_name":"spam","statuses_count":166,"profile_background_tile":false,"location":"Twitter HQ","contributors_enabled":true,"notifications":false,"listed_count":8679,"profile_link_color":"2FC2EF","url":"http:\/\/help.twitter.com\/entries\/64986","id":14589771,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":627222},"token":"22"},{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Ethan Marcotte","contributors_enabled":false,"created_at":"Wed Nov 15 15:59:51 +0000 2006","profile_background_color":"121212","listed_count":1460,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/224737148\/clint.jpg","utc_offset":-18000,"description":"Designer, developer. Started that whole \u201cresponsive web design\u201d thing.\r\n\r\n\u201cEight? Who taught you math?\u201d","verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1266637465\/sammy-boy_normal.png","id_str":"12534","default_profile":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/224737148\/clint.jpg","favourites_count":25929,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 17:04:59 +0000 2011","geo":null,"in_reply_to_user_id":14318544,"in_reply_to_status_id":105321846462889984,"favorited":false,"in_reply_to_status_id_str":"105321846462889984","coordinates":null,"id_str":"105324529127137280","in_reply_to_screen_name":"blissbat","in_reply_to_user_id_str":"14318544","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific\u003C\/a\u003E","id":105324529127137280,"text":"@blissbat Oh my god. That is lovely. (And positively Templesmithian.)"},"friends_count":398,"profile_sidebar_fill_color":"7D7D7D","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1266637465\/sammy-boy_normal.png","screen_name":"beep","default_profile_image":false,"show_all_inline_media":true,"geo_enabled":false,"profile_background_tile":true,"location":"Cambridge, MA","notifications":false,"is_translator":false,"profile_link_color":"990000","url":"http:\/\/ethanmarcotte.com\/","id":12534,"follow_request_sent":false,"statuses_count":10490,"following":false,"profile_sidebar_border_color":"7D7D7D","followers_count":16264},"token":"22"},{"user":{"follow_request_sent":false,"time_zone":"Central Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"John Clay","created_at":"Sat Mar 14 05:19:35 +0000 2009","profile_background_color":"000000","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/7637392\/twitterbg1.jpg","utc_offset":-21600,"description":"1 Part Artist, 1 Part Geek, With a Splash of Pop Culture","listed_count":6,"verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1112575277\/41220_579052302952_57100648_33412341_4990242_n_normal.jpg","id_str":"24334548","default_profile":false,"lang":"en","favourites_count":2,"profile_text_color":"32332e","status":{"truncated":false,"created_at":"Wed Jul 27 04:23:15 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"96073136679825409","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":96073136679825409,"text":"http:\/\/t.co\/MKMlBcQ Well played @OldSpice - My vote is for #teamoldspiceguy. The writers and marketing team deserve a raise."},"statuses_count":477,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/7637392\/twitterbg1.jpg","profile_sidebar_fill_color":"8c8c88","screen_name":"Clayjm","profile_background_tile":false,"friends_count":103,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1112575277\/41220_579052302952_57100648_33412341_4990242_n_normal.jpg","location":"Missouri","default_profile_image":false,"notifications":false,"profile_link_color":"c6c09f","url":null,"id":24334548,"is_translator":false,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":305},"token":"14"},{"user":{"default_profile":false,"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"KaT","show_all_inline_media":false,"listed_count":1,"geo_enabled":false,"created_at":"Sat Mar 17 01:08:54 +0000 2007","profile_background_color":"1A1B1F","contributors_enabled":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme9\/bg.gif","utc_offset":-18000,"description":"","verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1496023849\/Clipboard01_normal.jpg","id_str":"1325781","lang":"en","statuses_count":1091,"favourites_count":0,"friends_count":71,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Thu Aug 18 20:57:06 +0000 2011","geo":null,"in_reply_to_user_id":251147079,"in_reply_to_status_id":104281588854030336,"favorited":false,"in_reply_to_status_id_str":"104281588854030336","coordinates":null,"id_str":"104295781024010240","in_reply_to_screen_name":"zImperium","in_reply_to_user_id_str":"251147079","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":104295781024010240,"text":"@zImperium when will this be on the market since this is a closed beta ?"},"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme9\/bg.gif","profile_sidebar_fill_color":"252429","screen_name":"katzworld","profile_background_tile":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1496023849\/Clipboard01_normal.jpg","location":"MD,USA","is_translator":false,"notifications":false,"follow_request_sent":false,"profile_link_color":"2FC2EF","url":null,"id":1325781,"following":false,"profile_sidebar_border_color":"181A1E","followers_count":269},"token":"14"},{"user":{"time_zone":"Central Time (US & Canada)","protected":true,"listed_count":2,"statuses_count":47,"profile_use_background_image":true,"name":"Angelika Biteme","contributors_enabled":false,"created_at":"Tue Jun 09 09:54:31 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-21600,"description":"Because I am addictted to Spymaster & can't go up any more levels, I started a new account. I admitted the addiction. Now I need an intervention.","verified":false,"friends_count":375,"profile_image_url":"http:\/\/a0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","id_str":"45805107","default_profile_image":true,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":0,"profile_text_color":"333333","default_profile":true,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","screen_name":"AngelikaSpy","is_translator":false,"show_all_inline_media":false,"profile_background_tile":false,"location":"Um, the computer desk. Duh.","follow_request_sent":false,"notifications":false,"profile_link_color":"0084B4","url":"http:\/\/angelika1972.blogspot.com\/","id":45805107,"following":false,"geo_enabled":false,"profile_sidebar_border_color":"C0DEED","followers_count":131},"token":"14"},{"user":{"time_zone":"Alaska","protected":false,"profile_use_background_image":true,"name":"LikeMinded","contributors_enabled":false,"created_at":"Fri Oct 29 23:32:48 +0000 2010","profile_background_color":"C0DEED","default_profile":false,"listed_count":26,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/168455631\/free_twitter_designer.jpg","utc_offset":-32400,"description":"An online tool for offline community action, built by Craigslist Foundation. Share or discover an idea for change today!","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1159898446\/lm_twitter_normal.gif","id_str":"209802925","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/168455631\/free_twitter_designer.jpg","favourites_count":1,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Thu Aug 18 23:29:09 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104334044203986945","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":4,"source":"\u003Ca href=\"http:\/\/www.hootsuite.com\" rel=\"nofollow\"\u003EHootSuite\u003C\/a\u003E","retweeted_status":{"truncated":false,"created_at":"Wed Aug 17 21:19:09 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"103938943233437696","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":4,"source":"\u003Ca href=\"http:\/\/www.hootsuite.com\" rel=\"nofollow\"\u003EHootSuite\u003C\/a\u003E","id":103938943233437696,"text":"Voting is now open for #SXSW panels! Please go vote for our panel with @Bluecadet @lkmnd on creating offline community http:\/\/ow.ly\/65TMm"},"id":104334044203986945,"text":"RT @atlasobscura: Voting is now open for #SXSW panels! Please go vote for our panel with @Bluecadet @lkmnd on creating offline community ..."},"friends_count":401,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1159898446\/lm_twitter_normal.gif","screen_name":"lkmnd","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":true,"location":"San Francisco, CA","notifications":false,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/likeminded.org","id":209802925,"follow_request_sent":false,"statuses_count":128,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":332},"token":"23"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","time_zone":null,"protected":false,"profile_use_background_image":true,"friends_count":133,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","name":"Jace","default_profile_image":true,"created_at":"Fri Jun 05 00:38:06 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":null,"description":null,"is_translator":false,"verified":false,"profile_image_url":"http:\/\/a0.twimg.com\/sticky\/default_profile_images\/default_profile_5_normal.png","id_str":"44776072","follow_request_sent":false,"lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Jun 17 04:22:09 +0000 2009","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"2202180865","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/playspymaster.com\" rel=\"nofollow\"\u003ESpymaster\u003C\/a\u003E","id":2202180865,"text":"I just wounded @avianto in an assassination attempt. #spymaster http:\/\/bit.ly\/playspy"},"show_all_inline_media":false,"geo_enabled":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"SecretAgent00J","profile_background_tile":false,"location":null,"contributors_enabled":false,"notifications":false,"default_profile":true,"listed_count":2,"statuses_count":44,"profile_link_color":"0084B4","url":null,"id":44776072,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":80},"token":"14"},{"user":{"time_zone":"Central Time (US & Canada)","protected":false,"is_translator":false,"default_profile":true,"profile_use_background_image":true,"name":"Justa Spy","follow_request_sent":false,"statuses_count":34,"created_at":"Mon Jun 08 14:37:58 +0000 2009","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-21600,"description":"My alter-ego... Find the real me: @goneflyin","verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/sticky\/default_profile_images\/default_profile_4_normal.png","id_str":"45577830","contributors_enabled":false,"lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Jul 20 01:04:26 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"93486387462021121","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/shadowcities.com\/\" rel=\"nofollow\"\u003EShadow Cities\u003C\/a\u003E","id":93486387462021121,"text":"Join Me (AufFlaighin) in the Battle for Shadow Cities! http:\/\/bit.ly\/mVYnxv"},"listed_count":3,"profile_sidebar_fill_color":"DDEEF6","screen_name":"gonespyin","profile_background_tile":false,"location":"","notifications":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","friends_count":626,"profile_link_color":"0084B4","url":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_4_normal.png","id":45577830,"default_profile_image":true,"show_all_inline_media":false,"following":false,"geo_enabled":false,"profile_sidebar_border_color":"C0DEED","followers_count":364},"token":"14"},{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Darth Vader","contributors_enabled":false,"created_at":"Tue Jan 09 15:42:04 +0000 2007","profile_background_color":"4B4B4B","listed_count":12900,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/30752\/vader.gif","utc_offset":-18000,"description":"Evil Orphan Annie\u2122","verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/425092539\/vader_normal_normal.png","id_str":"618593","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/30752\/vader.gif","favourites_count":252,"profile_text_color":"8a8a8a","status":{"truncated":false,"created_at":"Thu Aug 18 14:02:38 +0000 2011","geo":null,"in_reply_to_user_id":641333,"in_reply_to_status_id":104190049779851264,"favorited":false,"in_reply_to_status_id_str":"104190049779851264","coordinates":null,"id_str":"104191476291997696","in_reply_to_screen_name":"davidcaolo","in_reply_to_user_id_str":"641333","place":null,"contributors":null,"retweeted":false,"retweet_count":1,"source":"\u003Ca href=\"http:\/\/twitterrific.com\" rel=\"nofollow\"\u003ETwitterrific for Mac\u003C\/a\u003E","id":104191476291997696,"text":"@davidcaolo If this is a consular ship, where is the ambassador?!"},"friends_count":6699,"profile_sidebar_fill_color":"000000","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/425092539\/vader_normal_normal.png","screen_name":"darthvader","default_profile_image":false,"default_profile":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":true,"location":"Empire, CO","notifications":false,"is_translator":false,"profile_link_color":"AA1212","url":null,"id":618593,"follow_request_sent":false,"statuses_count":1454,"following":false,"profile_sidebar_border_color":"AA1212","followers_count":350892},"token":"22"},{"user":{"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/53292788\/twitter_bg2.png","time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"friends_count":254,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1497179992\/skitched-20110815-135946_normal.jpg","name":"Cliff Moon","default_profile_image":false,"created_at":"Mon Mar 24 01:05:35 +0000 2008","profile_background_color":"707070","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/53292788\/twitter_bg2.png","utc_offset":-28800,"description":"Not a real person.","is_translator":false,"show_all_inline_media":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1497179992\/skitched-20110815-135946_normal.jpg","id_str":"14204623","follow_request_sent":null,"lang":"en","favourites_count":320,"profile_text_color":"666666","status":{"truncated":false,"created_at":"Mon Aug 22 01:30:47 +0000 2011","geo":null,"in_reply_to_user_id":15387262,"in_reply_to_status_id":105451772604198912,"favorited":false,"in_reply_to_status_id_str":"105451772604198912","coordinates":null,"id_str":"105451820574457856","in_reply_to_screen_name":"ohlol","in_reply_to_user_id_str":"15387262","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":105451820574457856,"text":"@ohlol what is it?"},"profile_sidebar_fill_color":"000000","screen_name":"moonpolysoft","default_profile":false,"statuses_count":14100,"profile_background_tile":true,"location":"8========D~~~","contributors_enabled":false,"notifications":null,"listed_count":90,"profile_link_color":"66d6ff","url":"http:\/\/github.com\/cliffmoon","id":14204623,"following":null,"profile_sidebar_border_color":"bddcad","followers_count":1193},"token":"1"}]
|
1
|
+
[{"user":{"time_zone":"Eastern Time (US & Canada)","protected":false,"default_profile":true,"profile_use_background_image":true,"name":"John Trupiano","contributors_enabled":false,"created_at":"Sun May 11 19:46:06 +0000 2008","profile_background_color":"C0DEED","listed_count":99,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-18000,"description":"Owner of @smartlogic. I tweet a mixed stream of incoherence and inside jokes. My tweets make me laugh; your mileage will vary.","verified":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","id_str":"14736332","lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":117,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Sat Aug 20 03:27:22 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"104756380472324096","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/#!\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","id":104756380472324096,"text":"Jimmy Johns: the best place to go right after getting pepper sprayed."},"friends_count":545,"profile_sidebar_fill_color":"DDEEF6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/627637055\/thumb_gravatar_normal.jpg","screen_name":"jtrupiano","default_profile_image":false,"show_all_inline_media":false,"geo_enabled":false,"profile_background_tile":false,"location":"Baltimore, MD","notifications":null,"is_translator":false,"profile_link_color":"0084B4","url":"http:\/\/smartlogicsolutions.com\/john","id":14736332,"follow_request_sent":null,"statuses_count":3850,"following":null,"profile_sidebar_border_color":"C0DEED","followers_count":802},"token":"1"},{"user":{"follow_request_sent":false,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"name":"Matt Laroche","created_at":"Sun Apr 20 12:05:38 +0000 2008","profile_background_color":"C6E2EE","show_all_inline_media":false,"contributors_enabled":false,"geo_enabled":true,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme2\/bg.gif","utc_offset":-28800,"description":"Software engineer, beer advocate, Palo Altan, husband.","listed_count":20,"verified":false,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","id_str":"14451152","lang":"en","favourites_count":10,"profile_text_color":"663B12","status":{"truncated":false,"created_at":"Sun Aug 21 20:59:41 +0000 2011","geo":{"type":"Point","coordinates":[33.8043296,-117.9226607]},"in_reply_to_user_id":20113974,"in_reply_to_status_id":105382259623854081,"favorited":false,"in_reply_to_status_id_str":"105382259623854081","coordinates":{"type":"Point","coordinates":[-117.9226607,33.8043296]},"id_str":"105383592376537088","in_reply_to_screen_name":"chasesterling","in_reply_to_user_id_str":"20113974","place":{"country_code":"US","name":"Anaheim","attributes":{},"full_name":"Anaheim, CA","place_type":"city","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-118.017597,33.788835],[-117.674604,33.788835],[-117.674604,33.881456],[-118.017597,33.881456]]]},"id":"0c2e6999105f8070","url":"http:\/\/api.twitter.com\/1\/geo\/id\/0c2e6999105f8070.json"},"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003ETwitter for Android\u003C\/a\u003E","id":105383592376537088,"text":"@chasesterling sadly in a fake vending machine at the Monsters Inc ride at Disney's California Adventure."},"statuses_count":6251,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme2\/bg.gif","profile_sidebar_fill_color":"DAECF4","screen_name":"mlroach","profile_background_tile":false,"friends_count":403,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1255024245\/banana_reasonably_small_normal.jpg","location":"Palo Alto, California","default_profile_image":false,"notifications":false,"default_profile":false,"profile_link_color":"1F98C7","url":null,"id":14451152,"is_translator":false,"following":false,"profile_sidebar_border_color":"C6E2EE","followers_count":299},"token":"21"},{"user":{"follow_request_sent":false,"statuses_count":183,"time_zone":"Greenland","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","name":"AntonioPires","created_at":"Sat May 16 18:24:33 +0000 2009","profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/121725893\/3136259685_ed14d06774.jpg","utc_offset":-10800,"description":"","listed_count":2,"contributors_enabled":false,"verified":false,"geo_enabled":true,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1067377349\/s_normal.jpg","id_str":"40514587","lang":"en","favourites_count":2,"profile_text_color":"828282","status":{"truncated":false,"created_at":"Mon Jun 13 16:27:31 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"80310340704931840","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"web","id":80310340704931840,"text":"Estou concorrendo a 1 ingresso do Alexandre Wollner no Rio \u2013 http:\/\/t.co\/QlJZUqF Siga @design_blog e @pensoeventos e d\u00ea RT!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"1c1c1c","screen_name":"antpires","profile_background_tile":false,"location":"Rio","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1067377349\/s_normal.jpg","friends_count":198,"profile_link_color":"e86f6f","url":"http:\/\/antpires.carbonmade.com","id":40514587,"is_translator":false,"default_profile":false,"following":false,"profile_sidebar_border_color":"000000","followers_count":158},"token":"14"},{"user":{"time_zone":"London","protected":false,"follow_request_sent":false,"profile_use_background_image":true,"name":"Alex MacCaw","created_at":"Fri Mar 23 12:36:14 +0000 2007","profile_background_color":"9ae4e8","contributors_enabled":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":0,"description":"Ruby\/JavaScript developer, O'Reilly author and entrepreneur. ","default_profile":false,"verified":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg","id_str":"2006261","listed_count":171,"lang":"en","favourites_count":9,"profile_text_color":"000000","status":{"truncated":false,"created_at":"Sun Aug 21 23:54:01 +0000 2011","geo":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"105427467593981952","in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/twitter.com\/tweetbutton\" rel=\"nofollow\"\u003ETweet Button\u003C\/a\u003E","id":105427467593981952,"text":"Visualizing WebKit's hardware acceleration http:\/\/t.co\/nX5pvPl via @thomasfuchs"},"profile_sidebar_fill_color":"e0ff92","screen_name":"maccman","show_all_inline_media":false,"geo_enabled":true,"profile_background_tile":false,"location":"London","notifications":false,"is_translator":false,"default_profile_image":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","profile_link_color":"0000ff","url":"http:\/\/alexmaccaw.co.uk","id":2006261,"statuses_count":4497,"following":false,"friends_count":967,"profile_sidebar_border_color":"87bc44","followers_count":2028,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1081483457\/Gravatar_for_info_eribium_normal.jpeg"},"token":"11"},{"user":{"follow_request_sent":false,"statuses_count":24,"time_zone":"Pacific Time (US & Canada)","protected":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","name":"stuntmann82","created_at":"Sat Aug 30 08:22:57 +0000 2008","profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","utc_offset":-28800,"description":"","listed_count":1,"contributors_enabled":false,"verified":false,"geo_enabled":false,"profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/249396146\/images_normal.jpg","id_str":"16052754","lang":"en","favourites_count":0,"profile_text_color":"333333","status":{"truncated":false,"created_at":"Wed Nov 25 06:20:05 +0000 2009","geo":null,"in_reply_to_user_id":2889221,"in_reply_to_status_id":null,"favorited":false,"in_reply_to_status_id_str":null,"coordinates":null,"id_str":"6042752864","in_reply_to_screen_name":"vitaminjeff","in_reply_to_user_id_str":"2889221","place":null,"contributors":null,"retweeted":false,"retweet_count":0,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\/\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","id":6042752864,"text":"@vitaminjeff Sup bro!"},"show_all_inline_media":false,"profile_sidebar_fill_color":"DDEEF6","screen_name":"stuntmann82","profile_background_tile":false,"location":"","default_profile_image":false,"notifications":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/249396146\/images_normal.jpg","friends_count":5,"profile_link_color":"0084B4","url":null,"id":16052754,"is_translator":false,"default_profile":true,"following":false,"profile_sidebar_border_color":"C0DEED","followers_count":42},"token":"14"}]
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"geo_enabled":true,"time_zone":"Pacific Time (US & Canada)","description":"Adventures in hunger and foolishness.","profile_sidebar_fill_color":"DDEEF6","followers_count":898,"verified":false,"notifications":false,"follow_request_sent":false,"profile_use_background_image":true,"profile_sidebar_border_color":"C0DEED","url":null,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","lang":"en","created_at":"Mon Jul 16 12:59:01 +0000 2007","profile_background_color":"000000","location":"San Francisco","listed_count":29,"profile_background_tile":false,"friends_count":88,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/323331048\/me_normal.jpg","statuses_count":2962,"profile_text_color":"333333","name":"Erik Michaels-Ober","show_all_inline_media":true,"following":true,"favourites_count":727,"screen_name":"sferik","id":7505382,"id_str":"7505382","contributors_enabled":false,"utc_offset":-28800,"profile_link_color":"0084B4"},{"geo_enabled":true,"time_zone":"Central Time (US & Canada)","description":"Christian husband and father. Dev Experience @ HP Cloud Services. Co-host of the @changelogshow. Mashup of design & development.","profile_sidebar_fill_color":"dddddd","followers_count":2767,"status":{"place":null,"retweet_count":null,"geo":null,"retweeted":false,"in_reply_to_status_id":28008649044,"source":"\u003Ca href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003ETweetie for Mac\u003C\/a\u003E","truncated":false,"in_reply_to_status_id_str":"28008649044","created_at":"Thu Oct 21 10:33:15 +0000 2010","in_reply_to_user_id":11502142,"favorited":false,"in_reply_to_user_id_str":"11502142","contributors":null,"coordinates":null,"in_reply_to_screen_name":"benfawkes","id":28014236998,"id_str":"28014236998","text":"@benfawkes Surely. Just email wynn at the changelog dot com."},"verified":false,"notifications":false,"follow_request_sent":false,"profile_use_background_image":true,"profile_sidebar_border_color":"cccccc","url":"http:\/\/wynnnetherland.com","profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/61741268\/twitter-small.png","lang":"en","created_at":"Sat Mar 08 16:34:22 +0000 2008","profile_background_color":"efefef","location":"Dallas, TX","listed_count":185,"profile_background_tile":false,"friends_count":1871,"protected":false,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/485575482\/komikazee_normal.png","statuses_count":3913,"profile_text_color":"666666","name":"Wynn Netherland","show_all_inline_media":false,"following":true,"favourites_count":32,"screen_name":"pengwynn","id":14100886,"id_str":"14100886","contributors_enabled":false,"utc_offset":-21600,"profile_link_color":"35abe9"}]
|
data/spec/helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'helper'
|
3
3
|
|
4
|
-
describe T::
|
4
|
+
describe T::List do
|
5
5
|
|
6
6
|
before do
|
7
7
|
rcfile = RCFile.instance
|
@@ -20,6 +20,42 @@ describe T::CLI::List do
|
|
20
20
|
$stdout = @old_stdout
|
21
21
|
end
|
22
22
|
|
23
|
+
describe "#add" do
|
24
|
+
before do
|
25
|
+
@t.options = @t.options.merge(:profile => fixture_path + "/.trc")
|
26
|
+
stub_get("/1/account/verify_credentials.json").
|
27
|
+
to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
28
|
+
stub_post("/1/lists/members/create_all.json").
|
29
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
30
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
31
|
+
end
|
32
|
+
it "should request the correct resource" do
|
33
|
+
@t.list("add", "presidents", "sferik")
|
34
|
+
a_get("/1/account/verify_credentials.json").
|
35
|
+
should have_been_made
|
36
|
+
a_post("/1/lists/members/create_all.json").
|
37
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
38
|
+
should have_been_made
|
39
|
+
end
|
40
|
+
it "should have the correct output" do
|
41
|
+
@t.list("add", "presidents", "sferik")
|
42
|
+
$stdout.string.should =~ /@testcli added 1 user to the list "presidents"\./
|
43
|
+
end
|
44
|
+
context "Twitter is down" do
|
45
|
+
it "should retry 3 times and then raise an error" do
|
46
|
+
stub_post("/1/lists/members/create_all.json").
|
47
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
48
|
+
to_return(:status => 502)
|
49
|
+
lambda do
|
50
|
+
@t.list("add", "presidents", "sferik")
|
51
|
+
end.should raise_error("Twitter is down or being upgraded.")
|
52
|
+
a_post("/1/lists/members/create_all.json").
|
53
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
54
|
+
should have_been_made.times(3)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
23
59
|
describe "#create" do
|
24
60
|
before do
|
25
61
|
@t.options = @t.options.merge(:profile => fixture_path + "/.trc")
|
@@ -39,20 +75,55 @@ describe T::CLI::List do
|
|
39
75
|
end
|
40
76
|
end
|
41
77
|
|
42
|
-
describe "#
|
78
|
+
describe "#remove" do
|
43
79
|
before do
|
80
|
+
@t.options = @t.options.merge(:profile => fixture_path + "/.trc")
|
44
81
|
stub_get("/1/account/verify_credentials.json").
|
45
82
|
to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
83
|
+
end
|
84
|
+
it "should request the correct resource" do
|
85
|
+
stub_post("/1/lists/members/destroy_all.json").
|
86
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
87
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
88
|
+
@t.list("remove", "presidents", "sferik")
|
89
|
+
a_get("/1/account/verify_credentials.json").
|
90
|
+
should have_been_made
|
91
|
+
a_post("/1/lists/members/destroy_all.json").
|
92
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
93
|
+
should have_been_made
|
94
|
+
end
|
95
|
+
it "should have the correct output" do
|
96
|
+
stub_post("/1/lists/members/destroy_all.json").
|
97
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
98
|
+
to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
99
|
+
@t.list("remove", "presidents", "sferik")
|
100
|
+
$stdout.string.should =~ /@testcli removed 1 user from the list "presidents"\./
|
101
|
+
end
|
102
|
+
context "Twitter is down" do
|
103
|
+
it "should retry 3 times and then raise an error" do
|
104
|
+
stub_post("/1/lists/members/destroy_all.json").
|
105
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
106
|
+
to_return(:status => 502)
|
107
|
+
lambda do
|
108
|
+
@t.list("remove", "presidents", "sferik")
|
109
|
+
end.should raise_error("Twitter is down or being upgraded.")
|
110
|
+
a_post("/1/lists/members/destroy_all.json").
|
111
|
+
with(:body => {:screen_name => "sferik", :slug => "presidents", :owner_screen_name => "sferik"}).
|
112
|
+
should have_been_made.times(3)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe "#timeline" do
|
118
|
+
before do
|
46
119
|
stub_get("/1/lists/statuses.json").
|
47
|
-
with(:query => {:owner_screen_name => "
|
120
|
+
with(:query => {:owner_screen_name => "testcli", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
48
121
|
to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
49
122
|
end
|
50
123
|
it "should request the correct resource" do
|
51
124
|
@t.list("timeline", "presidents")
|
52
|
-
a_get("/1/account/verify_credentials.json").
|
53
|
-
should have_been_made
|
54
125
|
a_get("/1/lists/statuses.json").
|
55
|
-
with(:query => {:owner_screen_name => "
|
126
|
+
with(:query => {:owner_screen_name => "testcli", :per_page => "20", :slug => "presidents", :include_entities => "false"}).
|
56
127
|
should have_been_made
|
57
128
|
end
|
58
129
|
it "should have the correct output" do
|
data/spec/rcfile_spec.rb
CHANGED