dschn-twitter 0.3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. data/History.txt +106 -0
  2. data/License.txt +19 -0
  3. data/Manifest.txt +71 -0
  4. data/README.txt +84 -0
  5. data/Rakefile +4 -0
  6. data/bin/twitter +15 -0
  7. data/config/hoe.rb +74 -0
  8. data/config/requirements.rb +17 -0
  9. data/examples/blocks.rb +15 -0
  10. data/examples/direct_messages.rb +28 -0
  11. data/examples/favorites.rb +20 -0
  12. data/examples/friends_followers.rb +25 -0
  13. data/examples/friendships.rb +13 -0
  14. data/examples/identica_timeline.rb +7 -0
  15. data/examples/location.rb +8 -0
  16. data/examples/posting.rb +9 -0
  17. data/examples/replies.rb +26 -0
  18. data/examples/search.rb +17 -0
  19. data/examples/sent_messages.rb +26 -0
  20. data/examples/timeline.rb +33 -0
  21. data/examples/twitter.rb +27 -0
  22. data/examples/verify_credentials.rb +13 -0
  23. data/lib/twitter.rb +21 -0
  24. data/lib/twitter/base.rb +260 -0
  25. data/lib/twitter/cli.rb +328 -0
  26. data/lib/twitter/cli/config.rb +9 -0
  27. data/lib/twitter/cli/helpers.rb +97 -0
  28. data/lib/twitter/cli/migrations/20080722194500_create_accounts.rb +13 -0
  29. data/lib/twitter/cli/migrations/20080722194508_create_tweets.rb +16 -0
  30. data/lib/twitter/cli/migrations/20080722214605_add_account_id_to_tweets.rb +9 -0
  31. data/lib/twitter/cli/migrations/20080722214606_create_configurations.rb +13 -0
  32. data/lib/twitter/cli/models/account.rb +33 -0
  33. data/lib/twitter/cli/models/configuration.rb +13 -0
  34. data/lib/twitter/cli/models/tweet.rb +20 -0
  35. data/lib/twitter/direct_message.rb +22 -0
  36. data/lib/twitter/easy_class_maker.rb +43 -0
  37. data/lib/twitter/rate_limit_status.rb +19 -0
  38. data/lib/twitter/search.rb +94 -0
  39. data/lib/twitter/status.rb +22 -0
  40. data/lib/twitter/user.rb +37 -0
  41. data/lib/twitter/version.rb +9 -0
  42. data/script/destroy +14 -0
  43. data/script/generate +14 -0
  44. data/script/txt2html +74 -0
  45. data/setup.rb +1585 -0
  46. data/spec/base_spec.rb +109 -0
  47. data/spec/cli/helper_spec.rb +35 -0
  48. data/spec/direct_message_spec.rb +35 -0
  49. data/spec/fixtures/followers.xml +706 -0
  50. data/spec/fixtures/friends.xml +609 -0
  51. data/spec/fixtures/friends_for.xml +584 -0
  52. data/spec/fixtures/friends_lite.xml +192 -0
  53. data/spec/fixtures/friends_timeline.xml +66 -0
  54. data/spec/fixtures/public_timeline.xml +148 -0
  55. data/spec/fixtures/rate_limit_status.xml +7 -0
  56. data/spec/fixtures/search_results.json +1 -0
  57. data/spec/fixtures/status.xml +25 -0
  58. data/spec/fixtures/user.xml +38 -0
  59. data/spec/fixtures/user_timeline.xml +465 -0
  60. data/spec/search_spec.rb +89 -0
  61. data/spec/spec.opts +1 -0
  62. data/spec/spec_helper.rb +12 -0
  63. data/spec/status_spec.rb +40 -0
  64. data/spec/user_spec.rb +42 -0
  65. data/tasks/deployment.rake +50 -0
  66. data/tasks/environment.rake +7 -0
  67. data/tasks/website.rake +17 -0
  68. data/twitter.gemspec +49 -0
  69. data/website/css/common.css +47 -0
  70. data/website/images/terminal_output.png +0 -0
  71. data/website/index.html +156 -0
  72. metadata +180 -0
data/spec/base_spec.rb ADDED
@@ -0,0 +1,109 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "Twitter::Base" do
4
+ before do
5
+ @base = Twitter::Base.new('foo', 'bar')
6
+ end
7
+
8
+ describe "being initialized" do
9
+ it "should require email and password" do
10
+ lambda { Twitter::Base.new }.should raise_error(ArgumentError)
11
+ end
12
+ end
13
+
14
+ describe "timelines" do
15
+ it "should bomb if given invalid timeline" do
16
+ lambda { @base.timeline(:fakeyoutey) }.should raise_error(Twitter::UnknownTimeline)
17
+ end
18
+
19
+ it "should default to friends timeline"
20
+
21
+ it "should be able to retrieve friends timeline" do
22
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_timeline.xml').read
23
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
24
+ @base.timeline(:friends).size.should == 3
25
+ end
26
+
27
+ it "should be able to retrieve public timeline" do
28
+ data = open(File.dirname(__FILE__) + '/fixtures/public_timeline.xml').read
29
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
30
+ @base.timeline(:public).size.should == 6
31
+ end
32
+
33
+ it "should be able to retrieve user timeline" do
34
+ data = open(File.dirname(__FILE__) + '/fixtures/user_timeline.xml').read
35
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
36
+ @base.timeline(:user).size.should == 19
37
+ end
38
+ end
39
+
40
+ describe "friends and followers" do
41
+ it "should be able to get friends" do
42
+ data = open(File.dirname(__FILE__) + '/fixtures/friends.xml').read
43
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
44
+ @base.friends.size.should == 25
45
+ end
46
+
47
+ it "should be able to get friends without latest status" do
48
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_lite.xml').read
49
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
50
+ @base.friends(:lite => true).size.should == 15
51
+ end
52
+
53
+ it "should be able to get friends for another user" do
54
+ data = open(File.dirname(__FILE__) + '/fixtures/friends_for.xml').read
55
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
56
+ timeline = @base.friends_for(20)
57
+ timeline.size.should == 24
58
+ timeline.first.name.should == 'Jack Dorsey'
59
+ end
60
+
61
+ it "should be able to get followers" do
62
+ data = open(File.dirname(__FILE__) + '/fixtures/followers.xml').read
63
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
64
+ timeline = @base.followers
65
+ timeline.size.should == 29
66
+ timeline.first.name.should == 'Blaine Cook'
67
+ end
68
+ end
69
+
70
+ it "should be able to get single status" do
71
+ data = open(File.dirname(__FILE__) + '/fixtures/status.xml').read
72
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
73
+ @base.status(803478581).created_at.should == 'Sun May 04 23:36:14 +0000 2008'
74
+ end
75
+
76
+ it "should be able to get single user" do
77
+ data = open(File.dirname(__FILE__) + '/fixtures/user.xml').read
78
+ @base.should_receive(:request).and_return(Hpricot::XML(data))
79
+ @base.user('4243').name.should == 'John Nunemaker'
80
+ end
81
+
82
+ describe "rate limit status" do
83
+ before do
84
+ @data = open(File.dirname(__FILE__) + '/fixtures/rate_limit_status.xml').read
85
+ @base.stub!(:request).and_return(Hpricot::XML(@data))
86
+ end
87
+
88
+ it "should request the status" do
89
+ @base.should_receive(:request).and_return(Hpricot::XML(@data))
90
+ @base.rate_limit_status
91
+ end
92
+
93
+ it "should have an hourly limit" do
94
+ @base.rate_limit_status.hourly_limit.should == 20
95
+ end
96
+
97
+ it "should have a reset time in seconds" do
98
+ @base.rate_limit_status.reset_time_in_seconds.should == 1214757610
99
+ end
100
+
101
+ it "should have a reset time" do
102
+ @base.rate_limit_status.reset_time.should == Time.parse('2008-06-29T16:40:10+00:00')
103
+ end
104
+
105
+ it "should have remaining hits" do
106
+ @base.rate_limit_status.remaining_hits.should == 5
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,35 @@
1
+ require 'ostruct'
2
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
3
+ require File.dirname(__FILE__) + '/../../lib/twitter/cli/helpers'
4
+
5
+ class Configuration; end
6
+
7
+ def say(str)
8
+ puts str
9
+ end
10
+
11
+ describe Twitter::CLI::Helpers do
12
+ include Twitter::CLI::Helpers
13
+
14
+ describe "outputting tweets" do
15
+ before do
16
+ Configuration.stub!(:[]=).and_return(true)
17
+ @collection = [
18
+ OpenStruct.new(
19
+ :text => 'This is my long message that I want to see formatted ooooh so pretty with a few words on each line so it is easy to scan.',
20
+ :created_at => Time.mktime(2008, 5, 1, 10, 15, 00).strftime('%Y-%m-%d %H:%M:%S'),
21
+ :user => OpenStruct.new(:screen_name => 'jnunemaker')
22
+ ),
23
+ OpenStruct.new(
24
+ :text => 'This is my long message that I want to see formatted ooooh so pretty with a.',
25
+ :created_at => Time.mktime(2008, 4, 1, 10, 15, 00).strftime('%Y-%m-%d %H:%M:%S'),
26
+ :user => OpenStruct.new(:screen_name => 'danielmorrison')
27
+ )
28
+ ]
29
+ end
30
+
31
+ specify "should properly format" do
32
+ output_tweets(@collection)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "Twitter::DirectMessage" do
4
+ it "should create new direct message from xml doc" do
5
+ xml = <<EOF
6
+ <direct_message>
7
+ <id>331681</id>
8
+ <text>thanks for revving the twitter gem! had notice that it was broken but didn't have time to patch.</text>
9
+ <sender_id>18713</sender_id>
10
+ <recipient_id>4243</recipient_id>
11
+ <created_at>Sat Mar 10 22:10:37 +0000 2007</created_at>
12
+ <sender_screen_name>al3x</sender_screen_name>
13
+ <recipient_screen_name>jnunemaker</recipient_screen_name>
14
+ </direct_message>
15
+ EOF
16
+ d = Twitter::DirectMessage.new do |d|
17
+ d.id = '331681'
18
+ d.text = "thanks for revving the twitter gem! had notice that it was broken but didn't have time to patch."
19
+ d.sender_id = '18713'
20
+ d.recipient_id = '4243'
21
+ d.created_at = 'Sat Mar 10 22:10:37 +0000 2007'
22
+ d.sender_screen_name = 'al3x'
23
+ d.recipient_screen_name = 'jnunemaker'
24
+ end
25
+ d2 = Twitter::DirectMessage.new_from_xml(Hpricot.XML(xml))
26
+
27
+ d.id.should == d2.id
28
+ d.text.should == d2.text
29
+ d.sender_id.should == d2.sender_id
30
+ d.recipient_id.should == d2.recipient_id
31
+ d.created_at.should == d2.created_at
32
+ d.sender_screen_name.should == d2.sender_screen_name
33
+ d.recipient_screen_name.should == d2.recipient_screen_name
34
+ end
35
+ end
@@ -0,0 +1,706 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <users type="array">
3
+ <user>
4
+ <id>246</id>
5
+ <name>Blaine Cook</name>
6
+ <screen_name>blaine</screen_name>
7
+ <location>San Francisco</location>
8
+ <description>TwitterInterpreter.</description>
9
+
10
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14022002/171593560_00e00bc7c9_normal.jpg</profile_image_url>
11
+ <url>http://romeda.org/</url>
12
+ <protected>false</protected>
13
+ <followers_count>2765</followers_count>
14
+ <status>
15
+ <created_at>Sun May 04 23:36:14 +0000 2008</created_at>
16
+
17
+ <id>803478581</id>
18
+ <text>Listening to Umberto Eco trashing the lack of intellectual discrimination on the web.</text>
19
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
20
+ <truncated>false</truncated>
21
+ <in_reply_to_status_id></in_reply_to_status_id>
22
+
23
+ <in_reply_to_user_id></in_reply_to_user_id>
24
+ <favorited>false</favorited>
25
+ </status>
26
+ </user>
27
+ <user>
28
+ <id>613</id>
29
+ <name>Jerry Richardson</name>
30
+
31
+ <screen_name>jerry</screen_name>
32
+ <location>Warsaw, Indiana</location>
33
+ <description>Rails-jockey by day and a Dad by Night. </description>
34
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51893022/jerry135x135_normal.jpg</profile_image_url>
35
+ <url>http://tumblelog.jerryr.com</url>
36
+ <protected>false</protected>
37
+
38
+ <followers_count>903</followers_count>
39
+ <status>
40
+ <created_at>Sun May 04 02:47:26 +0000 2008</created_at>
41
+ <id>802958964</id>
42
+ <text>Our Black Sheep concert experience came after my bro saw @mchammer and Vanilla Ice in Indy but before we went to see EPMD in Merrillville.</text>
43
+ <source>web</source>
44
+
45
+ <truncated>false</truncated>
46
+ <in_reply_to_status_id></in_reply_to_status_id>
47
+ <in_reply_to_user_id></in_reply_to_user_id>
48
+ <favorited>false</favorited>
49
+ </status>
50
+ </user>
51
+ <user>
52
+ <id>874</id>
53
+
54
+ <name>Wayne Sutton</name>
55
+ <screen_name>waynesutton</screen_name>
56
+ <location>101 S Greensboro St, Carrboro,</location>
57
+ <description>New/Social Media Technology Evangelist, IT &amp; Mobile Consultant</description>
58
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51627720/twitter-icon4_normal.jpg</profile_image_url>
59
+
60
+ <url>http://wayne-sutton.com</url>
61
+ <protected>false</protected>
62
+ <followers_count>3279</followers_count>
63
+ <status>
64
+ <created_at>Mon May 05 00:10:05 +0000 2008</created_at>
65
+ <id>803493346</id>
66
+
67
+ <text>About to interview @gwenbell from http://www.techstars.org/</text>
68
+ <source>web</source>
69
+ <truncated>false</truncated>
70
+ <in_reply_to_status_id></in_reply_to_status_id>
71
+ <in_reply_to_user_id></in_reply_to_user_id>
72
+ <favorited>false</favorited>
73
+ </status>
74
+
75
+ </user>
76
+ <user>
77
+ <id>1186</id>
78
+ <name>Mr Messina</name>
79
+ <screen_name>factoryjoe</screen_name>
80
+ <location>Cafe 976</location>
81
+ <description>As if concentrating wasn't hard enough already.</description>
82
+
83
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52015547/bus_512_normal.jpg</profile_image_url>
84
+ <url>http://factoryjoe.com/</url>
85
+ <protected>false</protected>
86
+ <followers_count>5472</followers_count>
87
+ <status>
88
+ <created_at>Sun May 04 22:44:16 +0000 2008</created_at>
89
+
90
+ <id>803455663</id>
91
+ <text>Points for effort, but Rummble.com is a dataportability trainwreck that collided with a 30-car pileup that started by running over a kitten.</text>
92
+ <source>web</source>
93
+ <truncated>false</truncated>
94
+ <in_reply_to_status_id></in_reply_to_status_id>
95
+ <in_reply_to_user_id></in_reply_to_user_id>
96
+ <favorited>false</favorited>
97
+
98
+ </status>
99
+ </user>
100
+ <user>
101
+ <id>1418</id>
102
+ <name>Paul Terry Walhus</name>
103
+ <screen_name>springnet</screen_name>
104
+ <location>182 Clover Rd, TX 78612, USA</location>
105
+
106
+ <description>web host and developer, videographer, blogger, vlogger</description>
107
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14044102/paulterrywalhus_normal.jpg</profile_image_url>
108
+ <url>http://austincast.com/blog/</url>
109
+ <protected>false</protected>
110
+ <followers_count>4328</followers_count>
111
+ <status>
112
+
113
+ <created_at>Sun May 04 18:47:02 +0000 2008</created_at>
114
+ <id>803344225</id>
115
+ <text>optimal experience: John Erik Metcalf is a 24 year old entrepreneur living in Austin. What is he interes.. http://blog.think27.com/</text>
116
+ <source>&lt;a href="http://twitterfeed.com"&gt;twitterfeed&lt;/a&gt;</source>
117
+ <truncated>false</truncated>
118
+
119
+ <in_reply_to_status_id></in_reply_to_status_id>
120
+ <in_reply_to_user_id></in_reply_to_user_id>
121
+ <favorited>false</favorited>
122
+ </status>
123
+ </user>
124
+ <user>
125
+ <id>3148</id>
126
+ <name>Chris Prakoso</name>
127
+
128
+ <screen_name>mahadewa</screen_name>
129
+ <location>London, UK</location>
130
+ <description>Self-Proclaimed Geek, Mac Convert, C# by Day, Rails by Night, Cofee Drinker</description>
131
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52041617/avatar-greenteam_normal.jpg</profile_image_url>
132
+ <url>http://blog.prakoso.net</url>
133
+ <protected>false</protected>
134
+
135
+ <followers_count>535</followers_count>
136
+ <status>
137
+ <created_at>Fri May 02 14:21:21 +0000 2008</created_at>
138
+ <id>801897248</id>
139
+ <text>@rahadianagung :D</text>
140
+ <source>&lt;a href="http://www.twhirl.org/"&gt;twhirl&lt;/a&gt;</source>
141
+
142
+ <truncated>false</truncated>
143
+ <in_reply_to_status_id>801895884</in_reply_to_status_id>
144
+ <in_reply_to_user_id>9882862</in_reply_to_user_id>
145
+ <favorited>false</favorited>
146
+ </status>
147
+ </user>
148
+ <user>
149
+
150
+ <id>5567</id>
151
+ <name>Robert Brook</name>
152
+ <screen_name>robertbrook</screen_name>
153
+ <location>London</location>
154
+ <description></description>
155
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
156
+
157
+ <url>http://robertbrook.com/</url>
158
+ <protected>false</protected>
159
+ <followers_count>674</followers_count>
160
+ <status>
161
+ <created_at>Sun May 04 20:00:09 +0000 2008</created_at>
162
+ <id>803379099</id>
163
+
164
+ <text>yeesh - I'm a polluter! http://skitch.com/yikes/k3kj/twitterrific</text>
165
+ <source>web</source>
166
+ <truncated>false</truncated>
167
+ <in_reply_to_status_id></in_reply_to_status_id>
168
+ <in_reply_to_user_id></in_reply_to_user_id>
169
+ <favorited>false</favorited>
170
+ </status>
171
+
172
+ </user>
173
+ <user>
174
+ <id>5765</id>
175
+ <name>Lisa McMillan</name>
176
+ <screen_name>lisamac</screen_name>
177
+ <location>Barrie, ON, Canada</location>
178
+ <description>Want me to follow you back? @ me. I'm not checking my requests due to spam :(</description>
179
+
180
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/50809942/Archives_normal.jpg</profile_image_url>
181
+ <url>http://claimid.com/lisamac</url>
182
+ <protected>false</protected>
183
+ <followers_count>1968</followers_count>
184
+ <status>
185
+ <created_at>Sun May 04 18:39:51 +0000 2008</created_at>
186
+
187
+ <id>803340671</id>
188
+ <text>I'm going to play ball hockey with the girls next year. Mar 09 I'm gonna kick ass.</text>
189
+ <source>web</source>
190
+ <truncated>false</truncated>
191
+ <in_reply_to_status_id></in_reply_to_status_id>
192
+ <in_reply_to_user_id></in_reply_to_user_id>
193
+ <favorited>false</favorited>
194
+
195
+ </status>
196
+ </user>
197
+ <user>
198
+ <id>5977</id>
199
+ <name>raja</name>
200
+ <screen_name>raja</screen_name>
201
+ <location>Toronto, ON</location>
202
+
203
+ <description>computer scientist with a dislike for encapsulation in a single sentence.</description>
204
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14195882/IMG_1236_normal.jpg</profile_image_url>
205
+ <url>http://socalledchange.com</url>
206
+ <protected>false</protected>
207
+ <followers_count>93</followers_count>
208
+ <status>
209
+
210
+ <created_at>Sun May 04 01:22:00 +0000 2008</created_at>
211
+ <id>802921230</id>
212
+ <text>Out for dinner at #houseofchan in the village</text>
213
+ <source>web</source>
214
+ <truncated>false</truncated>
215
+ <in_reply_to_status_id></in_reply_to_status_id>
216
+
217
+ <in_reply_to_user_id></in_reply_to_user_id>
218
+ <favorited>false</favorited>
219
+ </status>
220
+ </user>
221
+ <user>
222
+ <id>8906</id>
223
+ <name>Daniel Morrison</name>
224
+
225
+ <screen_name>danielmorrison</screen_name>
226
+ <location>Holland, MI</location>
227
+ <description>I write code between hanging out at conferences.</description>
228
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51898464/verygreenteam_template_normal.png</profile_image_url>
229
+ <url>http://daniel.collectiveidea.com</url>
230
+ <protected>false</protected>
231
+
232
+ <followers_count>322</followers_count>
233
+ <status>
234
+ <created_at>Sun May 04 01:01:04 +0000 2008</created_at>
235
+ <id>802911879</id>
236
+ <text>won $6.40 on the Derby, betting on Eight Belles to show. Now she's been euthanized. Kinda depressing.</text>
237
+ <source>web</source>
238
+
239
+ <truncated>false</truncated>
240
+ <in_reply_to_status_id></in_reply_to_status_id>
241
+ <in_reply_to_user_id></in_reply_to_user_id>
242
+ <favorited>false</favorited>
243
+ </status>
244
+ </user>
245
+ <user>
246
+ <id>10560</id>
247
+
248
+ <name>David Bax</name>
249
+ <screen_name>davidbax</screen_name>
250
+ <location></location>
251
+ <description></description>
252
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14383112/db_logo80x80_normal.png</profile_image_url>
253
+ <url></url>
254
+ <protected>true</protected>
255
+
256
+ <followers_count>2</followers_count>
257
+ <status>
258
+ <created_at>Sun May 04 14:51:04 +0000 2008</created_at>
259
+ <id>803223094</id>
260
+ <text>Is hoping this week goes a hell of a lot better then last week.</text>
261
+ <source>web</source>
262
+
263
+ <truncated>false</truncated>
264
+ <in_reply_to_status_id></in_reply_to_status_id>
265
+ <in_reply_to_user_id></in_reply_to_user_id>
266
+ <favorited>false</favorited>
267
+ </status>
268
+ </user>
269
+ <user>
270
+ <id>10718</id>
271
+
272
+ <name>Geoffrey Grosenbach</name>
273
+ <screen_name>topfunky</screen_name>
274
+ <location>Seattle</location>
275
+ <description>Independent publisher, senior visionary</description>
276
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14408202/im_normal.gif</profile_image_url>
277
+ <url>http://topfunky.com</url>
278
+
279
+ <protected>false</protected>
280
+ <followers_count>1326</followers_count>
281
+ <status>
282
+ <created_at>Sat May 03 21:08:55 +0000 2008</created_at>
283
+ <id>802811701</id>
284
+ <text>The organic vegetable delivery service I subscribe to can also deliver doughnuts on request. This is dangerous. http://pioneerorganics.com</text>
285
+
286
+ <source>web</source>
287
+ <truncated>false</truncated>
288
+ <in_reply_to_status_id></in_reply_to_status_id>
289
+ <in_reply_to_user_id></in_reply_to_user_id>
290
+ <favorited>false</favorited>
291
+ </status>
292
+ </user>
293
+
294
+ <user>
295
+ <id>12543</id>
296
+ <name>Scott Raymond</name>
297
+ <screen_name>sco</screen_name>
298
+ <location>Kansas City</location>
299
+ <description>I am sco, plain sco, in the morning, standing five foot ten in one sock.</description>
300
+
301
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52622133/scott-face-128_normal.jpg</profile_image_url>
302
+ <url>http://scottraymond.net/</url>
303
+ <protected>false</protected>
304
+ <followers_count>481</followers_count>
305
+ <status>
306
+ <created_at>Mon May 05 00:07:24 +0000 2008</created_at>
307
+
308
+ <id>803492235</id>
309
+ <text>mmm... flaming cheese.</text>
310
+ <source>web</source>
311
+ <truncated>false</truncated>
312
+ <in_reply_to_status_id></in_reply_to_status_id>
313
+ <in_reply_to_user_id></in_reply_to_user_id>
314
+ <favorited>false</favorited>
315
+
316
+ </status>
317
+ </user>
318
+ <user>
319
+ <id>12551</id>
320
+ <name>Brian Corrigan</name>
321
+ <screen_name>bcorrigan78</screen_name>
322
+ <location>Ballston Spa, NY</location>
323
+
324
+ <description></description>
325
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52504423/41411337_d70e4d90eb_o_normal.jpg</profile_image_url>
326
+ <url>http://www.generalexception.com</url>
327
+ <protected>false</protected>
328
+ <followers_count>9</followers_count>
329
+ <status>
330
+ <created_at>Fri Apr 11 04:46:06 +0000 2008</created_at>
331
+
332
+ <id>786952307</id>
333
+ <text>going to bed</text>
334
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
335
+ <truncated>false</truncated>
336
+ <in_reply_to_status_id></in_reply_to_status_id>
337
+ <in_reply_to_user_id></in_reply_to_user_id>
338
+
339
+ <favorited>false</favorited>
340
+ </status>
341
+ </user>
342
+ <user>
343
+ <id>12587</id>
344
+ <name>Luke Dorny</name>
345
+ <screen_name>luxuryluke</screen_name>
346
+
347
+ <location>Long Beach, Calif</location>
348
+ <description>Look, sir. Droids!</description>
349
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53621570/RedMeatYourself-stubbo_normal.png</profile_image_url>
350
+ <url>http://lukedorny.com</url>
351
+ <protected>false</protected>
352
+ <followers_count>810</followers_count>
353
+
354
+ <status>
355
+ <created_at>Sun May 04 23:37:04 +0000 2008</created_at>
356
+ <id>803478963</id>
357
+ <text>@keasone &amp; @aetherworld thanks! Enjoying my GET OLD DAY!</text>
358
+ <source>web</source>
359
+ <truncated>false</truncated>
360
+
361
+ <in_reply_to_status_id>803424420</in_reply_to_status_id>
362
+ <in_reply_to_user_id>5630102</in_reply_to_user_id>
363
+ <favorited>false</favorited>
364
+ </status>
365
+ </user>
366
+ <user>
367
+ <id>12606</id>
368
+
369
+ <name>Bill</name>
370
+ <screen_name>billturner</screen_name>
371
+ <location>Pittsburgh, PA</location>
372
+ <description></description>
373
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14743882/_yearbook__bturner_normal.jpg</profile_image_url>
374
+ <url>http://brilliantcorners.org/</url>
375
+
376
+ <protected>false</protected>
377
+ <followers_count>128</followers_count>
378
+ <status>
379
+ <created_at>Mon Apr 14 20:56:50 +0000 2008</created_at>
380
+ <id>789127310</id>
381
+ <text>@artwells: sorry to hear! hope she pulls through fine!</text>
382
+
383
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
384
+ <truncated>false</truncated>
385
+ <in_reply_to_status_id>789119412</in_reply_to_status_id>
386
+ <in_reply_to_user_id>1552371</in_reply_to_user_id>
387
+ <favorited>false</favorited>
388
+
389
+ </status>
390
+ </user>
391
+ <user>
392
+ <id>12661</id>
393
+ <name>Adam Keys</name>
394
+ <screen_name>therealadam</screen_name>
395
+ <location>Dallas, TX</location>
396
+
397
+ <description>Telling a joke, trying to or making a joke of myself.</description>
398
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52539922/shadesorange_normal.jpg</profile_image_url>
399
+ <url>http://therealadam.com</url>
400
+ <protected>false</protected>
401
+ <followers_count>515</followers_count>
402
+ <status>
403
+
404
+ <created_at>Sun May 04 15:39:40 +0000 2008</created_at>
405
+ <id>803247750</id>
406
+ <text>Seriously writing JavaScript for the first time in a long time. Prototypes abound!</text>
407
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
408
+ <truncated>false</truncated>
409
+
410
+ <in_reply_to_status_id></in_reply_to_status_id>
411
+ <in_reply_to_user_id></in_reply_to_user_id>
412
+ <favorited>false</favorited>
413
+ </status>
414
+ </user>
415
+ <user>
416
+ <id>12707</id>
417
+ <name>Garrett Dimon</name>
418
+
419
+ <screen_name>garrettdimon</screen_name>
420
+ <location>Dallas, TX</location>
421
+ <description>Building a bug and issue tracker to make life more pleasant for developers.</description>
422
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53317937/SmallAvatar_normal.jpg</profile_image_url>
423
+ <url>http://www.garrettdimon.com</url>
424
+ <protected>false</protected>
425
+
426
+ <followers_count>723</followers_count>
427
+ <status>
428
+ <created_at>Fri May 02 15:30:41 +0000 2008</created_at>
429
+ <id>801949097</id>
430
+ <text>It looks like a banana peel to me. Bananas are yellow too. http://tinyurl.com/64gjx3</text>
431
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
432
+
433
+ <truncated>false</truncated>
434
+ <in_reply_to_status_id></in_reply_to_status_id>
435
+ <in_reply_to_user_id></in_reply_to_user_id>
436
+ <favorited>false</favorited>
437
+ </status>
438
+ </user>
439
+ <user>
440
+ <id>12741</id>
441
+
442
+ <name>Dan Rubin</name>
443
+ <screen_name>danrubin</screen_name>
444
+ <location>Ft Lauderdale Int'L Airport</location>
445
+ <description>designer, singer, human. note to clients: follow me at your own risk...</description>
446
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/53213051/happy-webbies-headshot_normal.png</profile_image_url>
447
+ <url>http://superfluousbanter.org</url>
448
+
449
+ <protected>false</protected>
450
+ <followers_count>1490</followers_count>
451
+ <status>
452
+ <created_at>Mon May 05 00:05:49 +0000 2008</created_at>
453
+ <id>803491554</id>
454
+ <text>@stefsull I usually try to, but I couldn't coordinate these flights without a) packing for two trips (tough w/quartet stuff) and b) waiting.</text>
455
+
456
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
457
+ <truncated>false</truncated>
458
+ <in_reply_to_status_id>803471563</in_reply_to_status_id>
459
+ <in_reply_to_user_id>82433</in_reply_to_user_id>
460
+ <favorited>false</favorited>
461
+
462
+ </status>
463
+ </user>
464
+ <user>
465
+ <id>12796</id>
466
+ <name>William H Harle Jr.</name>
467
+ <screen_name>wharle</screen_name>
468
+ <location>South Bend, IN</location>
469
+
470
+ <description></description>
471
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14786702/smirking-bill_normal.jpg</profile_image_url>
472
+ <url>http://90percentgravity.com</url>
473
+ <protected>false</protected>
474
+ <followers_count>42</followers_count>
475
+ <status>
476
+ <created_at>Sat May 03 02:18:52 +0000 2008</created_at>
477
+
478
+ <id>802341537</id>
479
+ <text>Ironman was everything transformers wasnt. The most important thing being awesome.</text>
480
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
481
+ <truncated>false</truncated>
482
+ <in_reply_to_status_id></in_reply_to_status_id>
483
+
484
+ <in_reply_to_user_id></in_reply_to_user_id>
485
+ <favorited>false</favorited>
486
+ </status>
487
+ </user>
488
+ <user>
489
+ <id>12938</id>
490
+ <name>Steve Smith</name>
491
+
492
+ <screen_name>orderedlist</screen_name>
493
+ <location></location>
494
+ <description></description>
495
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52246800/avatar_normal.jpg</profile_image_url>
496
+ <url>http://orderedlist.com</url>
497
+ <protected>false</protected>
498
+ <followers_count>697</followers_count>
499
+
500
+ <status>
501
+ <created_at>Fri May 02 21:05:37 +0000 2008</created_at>
502
+ <id>802178798</id>
503
+ <text>Am in need of beer and Mario Kart style relaxation.</text>
504
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
505
+
506
+ <truncated>false</truncated>
507
+ <in_reply_to_status_id></in_reply_to_status_id>
508
+ <in_reply_to_user_id></in_reply_to_user_id>
509
+ <favorited>false</favorited>
510
+ </status>
511
+ </user>
512
+ <user>
513
+ <id>13229</id>
514
+
515
+ <name>Sandy</name>
516
+ <screen_name>s</screen_name>
517
+ <location>Portland, OR</location>
518
+ <description>I'm Sandy, your personal email assistant. I'll remember the details so you can focus on what's important. Twitter me directly with: d s hi</description>
519
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/32694302/sandy_circle_normal.png</profile_image_url>
520
+ <url>http://iwantsandy.com/</url>
521
+
522
+ <protected>false</protected>
523
+ <followers_count>5152</followers_count>
524
+ <status>
525
+ <created_at>Wed Dec 19 23:50:43 +0000 2007</created_at>
526
+ <id>515972382</id>
527
+ <text>I'm fully twitterized! (iwantsandy.com/help/twitter) d s reminder leave in 5 mins * d s lookup today * d s update #1 4-5pm * d s forget #1</text>
528
+
529
+ <source>web</source>
530
+ <truncated>false</truncated>
531
+ <in_reply_to_status_id></in_reply_to_status_id>
532
+ <in_reply_to_user_id></in_reply_to_user_id>
533
+ <favorited>false</favorited>
534
+ </status>
535
+ </user>
536
+
537
+ <user>
538
+ <id>13346</id>
539
+ <name>Seth</name>
540
+ <screen_name>mojodna</screen_name>
541
+ <location>Davis, CA</location>
542
+ <description></description>
543
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14880742/avatar_normal.jpg</profile_image_url>
544
+
545
+ <url></url>
546
+ <protected>true</protected>
547
+ <followers_count>73</followers_count>
548
+ <status>
549
+ <created_at>Sun May 04 22:55:17 +0000 2008</created_at>
550
+ <id>803460336</id>
551
+ <text>@rabble is telling me about his 13-month old (Camilo) who plays Wii Tennis.</text>
552
+
553
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
554
+ <truncated>false</truncated>
555
+ <in_reply_to_status_id>803411438</in_reply_to_status_id>
556
+ <in_reply_to_user_id>22</in_reply_to_user_id>
557
+ <favorited>false</favorited>
558
+
559
+ </status>
560
+ </user>
561
+ <user>
562
+ <id>13518</id>
563
+ <name>Jesse Newland</name>
564
+ <screen_name>jnewland</screen_name>
565
+ <location>Atlanta, GA</location>
566
+
567
+ <description>Ruby/Rails hacker, IT Director at LexBlog </description>
568
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14914212/PageImage-79509-344229_normal.jpg</profile_image_url>
569
+ <url>http://jnewland.com</url>
570
+ <protected>false</protected>
571
+ <followers_count>370</followers_count>
572
+ <status>
573
+
574
+ <created_at>Sat May 03 19:09:37 +0000 2008</created_at>
575
+ <id>802757807</id>
576
+ <text>so, does lighthouse really not have RSS/Atom feeds of ticket bins? Or am I just not looking hard enough?</text>
577
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
578
+ <truncated>false</truncated>
579
+
580
+ <in_reply_to_status_id></in_reply_to_status_id>
581
+ <in_reply_to_user_id></in_reply_to_user_id>
582
+ <favorited>false</favorited>
583
+ </status>
584
+ </user>
585
+ <user>
586
+ <id>13647</id>
587
+ <name>Matt Klawitter</name>
588
+
589
+ <screen_name>mattklawitter</screen_name>
590
+ <location></location>
591
+ <description></description>
592
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/14944452/17883645_N00_normal.jpg</profile_image_url>
593
+ <url>http://www.mattklawitter.com</url>
594
+ <protected>true</protected>
595
+ <followers_count>15</followers_count>
596
+
597
+ <status>
598
+ <created_at>Sun May 04 21:02:57 +0000 2008</created_at>
599
+ <id>803409155</id>
600
+ <text>Took 65 home from Indy instead of 31. Was faster. No Kokomo madness.</text>
601
+ <source>&lt;a href="http://help.twitter.com/index.php?pg=kb.page&amp;id=75"&gt;txt&lt;/a&gt;</source>
602
+
603
+ <truncated>false</truncated>
604
+ <in_reply_to_status_id></in_reply_to_status_id>
605
+ <in_reply_to_user_id></in_reply_to_user_id>
606
+ <favorited>false</favorited>
607
+ </status>
608
+ </user>
609
+ <user>
610
+ <id>15323</id>
611
+
612
+ <name>Carrie Smith</name>
613
+ <screen_name>Carrie</screen_name>
614
+ <location>Mishawaka, Indiana</location>
615
+ <description></description>
616
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
617
+ <url></url>
618
+ <protected>false</protected>
619
+
620
+ <followers_count>12</followers_count>
621
+ <status>
622
+ <created_at>Wed Aug 15 01:34:30 +0000 2007</created_at>
623
+ <id>206466992</id>
624
+ <text>mourning the lost of most of the music on my ipod :(</text>
625
+ <source>web</source>
626
+
627
+ <truncated>false</truncated>
628
+ <in_reply_to_status_id></in_reply_to_status_id>
629
+ <in_reply_to_user_id></in_reply_to_user_id>
630
+ <favorited>false</favorited>
631
+ </status>
632
+ </user>
633
+ <user>
634
+ <id>18713</id>
635
+
636
+ <name>Alex Payne</name>
637
+ <screen_name>al3x</screen_name>
638
+ <location>San Francisco, CA</location>
639
+ <description>Oh, hi. No, I just work here.</description>
640
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/51961745/al3x_normal.jpg</profile_image_url>
641
+ <url>http://www.al3x.net</url>
642
+
643
+ <protected>false</protected>
644
+ <followers_count>2891</followers_count>
645
+ <status>
646
+ <created_at>Sun May 04 23:08:51 +0000 2008</created_at>
647
+ <id>803466127</id>
648
+ <text>Automating everything. Ev-er-y-thing. Even that.</text>
649
+
650
+ <source>&lt;a href="http://iconfactory.com/software/twitterrific"&gt;twitterrific&lt;/a&gt;</source>
651
+ <truncated>false</truncated>
652
+ <in_reply_to_status_id></in_reply_to_status_id>
653
+ <in_reply_to_user_id></in_reply_to_user_id>
654
+ <favorited>false</favorited>
655
+ </status>
656
+
657
+ </user>
658
+ <user>
659
+ <id>19413</id>
660
+ <name>Hendy Irawan</name>
661
+ <screen_name>ceefour</screen_name>
662
+ <location>Kediri, Jawa Timur, Indonesia</location>
663
+ <description>Handsome web developer :-)</description>
664
+
665
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/15077872/Hendy_01-09-2006_10-57-04_normal.jpg</profile_image_url>
666
+ <url>http://www.hendyirawan.web.id/</url>
667
+ <protected>false</protected>
668
+ <followers_count>143</followers_count>
669
+ <status>
670
+ <created_at>Sat Apr 26 13:29:32 +0000 2008</created_at>
671
+
672
+ <id>797437821</id>
673
+ <text>@ariekeren is there git submodule? is there piston for git?</text>
674
+ <source>im</source>
675
+ <truncated>false</truncated>
676
+ <in_reply_to_status_id>797417169</in_reply_to_status_id>
677
+ <in_reply_to_user_id>7462822</in_reply_to_user_id>
678
+
679
+ <favorited>false</favorited>
680
+ </status>
681
+ </user>
682
+ <user>
683
+ <id>24013</id>
684
+ <name>Matt Herzberger</name>
685
+ <screen_name>mherzber</screen_name>
686
+
687
+ <location>College Station, TX</location>
688
+ <description>Social Media in Higher Ed Evangelist, Do'er, Organizer</description>
689
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/46971312/Matt_sm_normal.jpg</profile_image_url>
690
+ <url>http://mattherzberger.com</url>
691
+ <protected>false</protected>
692
+ <followers_count>502</followers_count>
693
+
694
+ <status>
695
+ <created_at>Fri May 02 20:48:55 +0000 2008</created_at>
696
+ <id>802168478</id>
697
+ <text>@bradjward i think its funny that everyone thinks u write all the post, i mean u do 90% of them, u need a &amp;lt;h1&amp;gt; with brad didnt wri ...</text>
698
+ <source>web</source>
699
+ <truncated>true</truncated>
700
+
701
+ <in_reply_to_status_id>802167787</in_reply_to_status_id>
702
+ <in_reply_to_user_id>6928362</in_reply_to_user_id>
703
+ <favorited>false</favorited>
704
+ </status>
705
+ </user>
706
+ </users>