earl 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.document +5 -0
  2. data/.gitignore +4 -15
  3. data/.rspec +1 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +2 -2
  6. data/Gemfile.lock +60 -0
  7. data/Guardfile +10 -0
  8. data/LICENSE +2 -4
  9. data/README.rdoc +145 -0
  10. data/Rakefile +35 -2
  11. data/earl.gemspec +13 -7
  12. data/lib/earl.rb +7 -22
  13. data/lib/earl/earl.rb +158 -0
  14. data/lib/earl/scraper.rb +93 -0
  15. data/lib/earl/version.rb +2 -2
  16. data/script/console +10 -0
  17. data/spec/fixtures/bicycles.html +490 -0
  18. data/spec/fixtures/bicycles_without_description.html +489 -0
  19. data/spec/fixtures/bicycles_without_images.html +457 -0
  20. data/spec/fixtures/page_as_atom.html +161 -0
  21. data/spec/fixtures/page_as_rss.html +151 -0
  22. data/spec/fixtures/page_with_atom_feed.html +39 -0
  23. data/spec/fixtures/page_with_rss_and_atom_feeds.html +40 -0
  24. data/spec/fixtures/page_with_rss_feed.html +39 -0
  25. data/spec/fixtures/page_without_feeds.html +36 -0
  26. data/spec/fixtures/youtube.html +1839 -0
  27. data/spec/integration/feed_spec.rb +78 -0
  28. data/spec/integration/oembed_spec.rb +40 -0
  29. data/spec/spec_helper.rb +18 -28
  30. data/spec/support/fixtures.rb +10 -0
  31. data/spec/unit/earl/earl_spec.rb +16 -0
  32. data/spec/unit/earl/feed_spec.rb +59 -0
  33. data/spec/unit/earl/oembed_spec.rb +49 -0
  34. data/spec/unit/earl/scraper_spec.rb +48 -0
  35. data/spec/unit/earl_spec.rb +65 -0
  36. metadata +123 -46
  37. data/.rvmrc +0 -48
  38. data/README.md +0 -41
  39. data/lib/earl/email_assembler.rb +0 -11
  40. data/lib/earl/email_entity.rb +0 -27
  41. data/lib/earl/email_parser.tt +0 -58
  42. data/lib/earl/entity_base.rb +0 -37
  43. data/lib/earl/hash_inquirer.rb +0 -16
  44. data/lib/earl/string_inquirer.rb +0 -11
  45. data/lib/earl/url_assembler.rb +0 -15
  46. data/lib/earl/url_entity.rb +0 -23
  47. data/lib/earl/url_parser.tt +0 -163
  48. data/spec/earl/earl_spec.rb +0 -17
  49. data/spec/earl/email_entity_spec.rb +0 -31
  50. data/spec/earl/email_parser_spec.rb +0 -29
  51. data/spec/earl/entity_base_spec.rb +0 -39
  52. data/spec/earl/hash_inquirer_spec.rb +0 -24
  53. data/spec/earl/string_inquirer_spec.rb +0 -9
  54. data/spec/earl/url_entity_spec.rb +0 -45
  55. data/spec/earl/url_parser_spec.rb +0 -189
@@ -0,0 +1,457 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+
5
+ <head>
6
+ <script type="text/javascript">
7
+ //<![CDATA[
8
+ var page={};var onCondition=function(D,C,A,B){D=D;A=A?Math.min(A,5):5;B=B||100;if(D()){C()}else{if(A>1){setTimeout(function(){onCondition(D,C,A-1,B)},B)}}};
9
+ //]]>
10
+ </script>
11
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
12
+ <meta content="en-us" http-equiv="Content-Language" />
13
+ <meta content="no" http-equiv="imagetoolbar" />
14
+ <meta content="width = 780" name="viewport" />
15
+ <meta content="4FTTxY4uvo0RZTMQqIyhh18HsepyJOctQ+XTOu1zsfE=" name="verify-v1" />
16
+ <meta content="1" name="page" />
17
+ <meta content="IE=7" http-equiv="X-UA-Compatible" />
18
+ <meta content="n" name="session-loggedin" />
19
+ <meta content="bicycles" name="page-user-screen_name" />
20
+ <title>bicycles (bicycles) on Twitter</title>
21
+ <link href="http://assets1.twitter.com/images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
22
+ <link href="http://assets1.twitter.com/images/twitter_57.png" rel="apple-touch-icon" />
23
+ <link rel="alternate" href="/statuses/user_timeline/#{@user.id}.rss" title="bicycles's Updates" type="application/rss+xml" />
24
+ <link rel="alternate" href="/favorites/#{current_user.id}.rss" title="bicycles's Favorites" type="application/rss+xml" />
25
+
26
+
27
+ <link href="http://assets3.twitter.com/stylesheets/timeline.css?1241136264" media="screen, projection" rel="stylesheet" type="text/css" />
28
+ <link href="http://assets1.twitter.com/stylesheets/master.css?1241136271" media="screen, projection" rel="stylesheet" type="text/css" />
29
+ <style type="text/css">
30
+ /* begin custom css */
31
+ .top-navigation > li > a,
32
+ a { color: #0000FF; }
33
+ body {
34
+ color: #000000;
35
+ background-color: #9AE4E8;
36
+ background: #9AE4E8 url(http://s3.amazonaws.com/twitter_production/profile_background_images/2837167/untitled.PNG) fixed no-repeat top left;}
37
+ #side_base {
38
+ border-left:1px solid #87BC44;
39
+ background-color: #E0FF92;
40
+ }
41
+ #side div.last { border-top: 1px solid #87BC44; }
42
+ ul#tabMenu li {
43
+ display: block; width: 100%;
44
+ border-top: 1px solid #87BC44;
45
+ }
46
+ ul#tabMenu li a, #side .section h1 { color:#000000; }
47
+ #content tr.hentry:hover a { color:#0000FF; }
48
+ body#profile #content div.hentry:hover a { color:#0000FF;}
49
+ #side .actions { border: 1px solid #87BC44; }
50
+
51
+ #side .promo {
52
+ border: 1px solid #87BC44;
53
+ }
54
+
55
+ #side .stat a {
56
+ color: #000000;
57
+ }
58
+
59
+ #side .stats a span.stats_count {
60
+ color: #000000;
61
+ }
62
+
63
+ #side .stats a:hover span.stats_count {
64
+ color: #0000FF;
65
+ }
66
+
67
+ #side div.section-header h1 { color: #000000; }
68
+ #side div.section-header h3.faq-header {
69
+ border-bottom: 1px solid #87BC44;
70
+ color: #000000;
71
+ }
72
+ #side .stat a {color: #000000; }
73
+
74
+
75
+ #side div.user_icon a, #side div.user_icon a:hover {
76
+ color: #000000;
77
+ }
78
+
79
+ #side div.user_icon a:hover {
80
+ color: #0000FF;
81
+ }
82
+
83
+ #side hr {
84
+ background: #87BC44;
85
+ color: #87BC44;
86
+ }
87
+ #side .notice {
88
+ border: 1px solid #87BC44;
89
+ }
90
+
91
+ #side .promotion .definition strong {
92
+ color: #0000FF;
93
+ }
94
+
95
+
96
+
97
+ ul.sidebar-menu li.loading a {
98
+ background: #F4FFA6 url('http://static.twitter.com/images/spinner.gif') no-repeat 171px 0.5em !important;
99
+ }
100
+
101
+ #side .collapsible h2.sidebar-title {
102
+ background: transparent url('http://static.twitter.com/images/toggle_up_dark.png') no-repeat center right !important;
103
+ }
104
+
105
+ #side .collapsible.collapsed h2.sidebar-title {
106
+ background: transparent url('http://static.twitter.com/images/toggle_down_dark.png') no-repeat center right !important;
107
+ }
108
+
109
+ ul.sidebar-menu li.active a {
110
+ font-weight: bold;
111
+ color: #000000;
112
+ background-color: #F4FFA6;
113
+ }
114
+
115
+ #side .promotion {
116
+ background-color: #F4FFA6;
117
+ }
118
+
119
+ #side .promotion a {
120
+ color: #000000;
121
+ }
122
+
123
+ #side .promotion .definition strong {
124
+ color: #0000FF;
125
+ }
126
+
127
+ #side div#custom_search.active {
128
+ background-color: #F4FFA6;
129
+ }
130
+
131
+ ul.sidebar-menu li:hover a {
132
+ text-decoration: none;
133
+ background-color: #F4FFA6;
134
+ }
135
+
136
+ #search div#custom_search.active {
137
+ background-color: #F4FFA6;
138
+ }
139
+
140
+
141
+ /* end custom css */
142
+
143
+
144
+ .content-bubble-arrow { background-image: url(http://static.twitter.com/images/arr2.gif); }
145
+ .status-btn input.round-btn { background-image: url('http://static.twitter.com/images/round-btn.gif'); }
146
+ .status-btn input.round-btn:hover { background-image: url('http://static.twitter.com/images/round-btn-hover.gif'); }
147
+ .status-btn input.disabled, .status-btn input.disabled:hover { background-image: url('http://static.twitter.com/images/round-btn.gif'); }
148
+ .hentry .actions .fav { background-image: url('http://static.twitter.com/images/icon_star_full.gif'); }
149
+ .hentry .actions .non-fav { background-image: url('http://static.twitter.com/images/icon_star_empty.gif'); }
150
+ .hentry .actions .fav-throb, .hentry .actions a.del-throb { background-image: url('http://static.twitter.com/images/icon_throbber.gif'); }
151
+ .hentry .actions .del { background-image: url('http://static.twitter.com/images/icon_trash.gif'); }
152
+ body#show .reply, .hentry .actions .reply { background-image: url('http://static.twitter.com/images/icon_reply.gif'); }
153
+ .direct_message .actions .reply { background-image: url('http://static.twitter.com/images/icon_direct_reply.gif'); }
154
+ .direct_message .actions .del { background-image: url('http://static.twitter.com/images/icon_trash.gif'); }
155
+ .notify { background-image: url('http://static.twitter.com/images/girl.gif'); }
156
+ ul#tabMenu a#keyword_search_tab.hover, ul#tabMenu a:hover { background-image: url('http://static.twitter.com/images/pale.png'); background-color: transparent; }
157
+ div#follow-toggle.closed { background-image: url('http://static.twitter.com/images/toggle_closed.gif'); }
158
+ div#follow-toggle.opened { background-image: url('http://static.twitter.com/images/toggle_opened.gif'); }
159
+ .follow-actions .following { background-image: url('http://static.twitter.com/images/checkmark.gif'); }
160
+ .more { background-image: url('http://static.twitter.com/images/more.gif'); }
161
+ .more.loading { background-image: url('http://static.twitter.com/images/ajax.gif'); }
162
+ body#show .protected { background-image: url('http://static.twitter.com/images/icon_lock.gif'); }
163
+ .rss { background-image: url('http://static.twitter.com/images/rss.gif'); }
164
+ .bulletin a.close { background: transparent url('http://static.twitter.com/images/close_small.png') no-repeat; }
165
+ #sidebar_search_submit { background: url('http://static.twitter.com/images/nav_search_submit.png') -2px 0px !important ; }
166
+ #sidebar_search_submit:hover { background: url('http://static.twitter.com/images/nav_search_submit.png') -2px -25px !important; }
167
+ #sidebar_search_submit:active { background: url('http://static.twitter.com/images/nav_search_submit.png') -2px -50px !important; }
168
+ #sidebar_search_submit.loading, #sidebar_search_submit.loading:hover, #sidebar_search_submit.loading:active { background: #eee url('http://static.twitter.com/images/spinner.gif') no-repeat 5px 5px !important; }
169
+
170
+ ul.sidebar-menu li.loading a {
171
+ background: #edffe5 url('http://static.twitter.com/images/spinner.gif') no-repeat 171px 0.5em;
172
+ }
173
+
174
+ #side .collapsible.loading h2.sidebar-title { background: transparent url('http://static.twitter.com/images/spinner.gif') no-repeat center right !important; }
175
+ #side .collapsible h2.sidebar-title {
176
+ background: transparent url('http://static.twitter.com/images/toggle_up_dark.png') no-repeat right center;
177
+ width: 157px;
178
+ }
179
+
180
+ #side .collapsible.collapsed h2.sidebar-title {
181
+ background: transparent url('http://static.twitter.com/images/toggle_down_dark.png') no-repeat right center;
182
+ }
183
+
184
+ .save-search-link {
185
+ background: transparent url('http://static.twitter.com/images/icon_add.png') no-repeat left bottom;
186
+ }
187
+
188
+ .delete-search-link {
189
+ background: transparent url('http://static.twitter.com/images/icon_remove.png') no-repeat left bottom;
190
+ }
191
+
192
+ #timeline_heading h1 span.loading {
193
+ background: transparent url('http://static.twitter.com/images/spinner.gif') no-repeat left bottom;
194
+ }
195
+
196
+
197
+ </style>
198
+
199
+ </head>
200
+
201
+ <body class="account" id="profile">
202
+ <div id="dim-screen"></div>
203
+ <ul id="accessibility" class="offscreen">
204
+ <li><a href="#content" accesskey="0">Skip past navigation</a></li>
205
+ <li>On a mobile phone? Check out <a href="http://m.twitter.com/">m.twitter.com</a>!</li>
206
+ <li><a href="#footer" accesskey="2">Skip to navigation</a></li>
207
+ <li><a href="#signin">Skip to sign in form</a></li>
208
+ </ul>
209
+
210
+
211
+
212
+ <div id="container" class="subpage">
213
+ <div id="header">
214
+ <a href="/" title="Twitter: home" accesskey="1" id="logo">
215
+ </a>
216
+ <form method="post" id="sign_out_form" action="/sessions/destroy" style="display:none;">
217
+ <input name="authenticity_token" value="05fa1ba4ad2b0b060a72fff262aba2b3aacf80c6" type="hidden" />
218
+ </form>
219
+ <ul class="top-navigation round">
220
+ <li><a href="/login" accesskey="l">Login</a></li>
221
+ <li class="signup-link"><a href="/signup">Join Twitter!</a></li>
222
+ </ul>
223
+ </div>
224
+
225
+
226
+
227
+ <div id="profilebox_outer">
228
+ <div id="profilebox" class="clearfix">
229
+ <div id="profiletext">
230
+ <h1>Hey there! <strong>bicycles</strong> is using Twitter.</h1>
231
+ <h2>Twitter is a free service that lets you keep in touch with people through the exchange of quick, frequent answers to one simple question: What are you doing? <strong>Join today</strong> to start receiving <strong>bicycles's </strong> updates.</h2>
232
+ </div>
233
+ <div id="profilebutton">
234
+ <form name="account_signup_form" id="account_signup_form" action="/signup">
235
+ <input id="follow" name="follow" type="hidden" value="bicycles" />
236
+ <input class="profilesubmit" id="join" name="commit" type="submit" value="Join today!" />
237
+ </form>
238
+ <p><small>Already using Twitter<br /> from your phone? <a href="/account/complete">Click here</a>.</small></p>
239
+ </div>
240
+ </div>
241
+ </div>
242
+
243
+
244
+
245
+ <div class="content-bubble-arrow"></div>
246
+
247
+ <table cellspacing="0" class="columns">
248
+ <tbody>
249
+ <tr>
250
+ <td id="content" class="round-left column">
251
+ <div class="wrapper">
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <div class="profile-head">
261
+
262
+ <h2 class="thumb clearfix">
263
+
264
+ bicycles
265
+ </h2>
266
+ <div class="clear"></div>
267
+ <div id="follow_actions_11240082" class="follow-actions bicycles">
268
+
269
+ </div>
270
+
271
+ <div class="hentry">
272
+
273
+
274
+ </div>
275
+ </div>
276
+
277
+ <div class="section">
278
+
279
+ <div id="timeline_heading" style="display: none;">
280
+ <h1></h1>
281
+ </div>
282
+
283
+ <ol class="statuses" id="timeline"><li class="hentry status u-bicycles latest-status" id="status_1021338503"><span class="status-body"><span class="entry-content">I sat on a balloon, and it didn't pop.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/1021338503" class="entry-date" rel="bookmark"><span class="published">11:14 AM Nov 24th, 2008</span></a> <span>from web</span> </span></span></li><li class="hentry status u-bicycles" id="status_935287253"><span class="status-body"><span class="entry-content">What am I doing? Tweeting?</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/935287253" class="entry-date" rel="bookmark"><span class="published">9:07 PM Sep 25th, 2008</span></a> <span>from web</span> </span></span></li><li class="hentry status u-bicycles" id="status_914315082"><span class="status-body"><span class="entry-content">Tweet</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/914315082" class="entry-date" rel="bookmark"><span class="published">2:19 PM Sep 8th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_885502724"><span class="status-body"><span class="entry-content">I just realized why it's called "pen pals." Amazing.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/885502724" class="entry-date" rel="bookmark"><span class="published">11:55 AM Aug 12th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_882028714"><span class="status-body"><span class="entry-content">Today I learned about the U.S. market for wine.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/882028714" class="entry-date" rel="bookmark"><span class="published">4:18 PM Aug 8th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_875111099"><span class="status-body"><span class="entry-content">Today I learned about sports contracts.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/875111099" class="entry-date" rel="bookmark"><span class="published">2:34 PM Aug 1st, 2008</span></a> <span>from web</span> </span></span></li><li class="hentry status u-bicycles" id="status_821106491"><span class="status-body"><span class="entry-content">Ms. Pac-Man 134050</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/821106491" class="entry-date" rel="bookmark"><span class="published">11:22 AM May 27th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_794096159"><span class="status-body"><span class="entry-content">At the pixel lounge!</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/794096159" class="entry-date" rel="bookmark"><span class="published">10:55 PM Apr 21st, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_794095970"><span class="status-body"><span class="entry-content">Ms. Pacman 128000</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/794095970" class="entry-date" rel="bookmark"><span class="published">10:55 PM Apr 21st, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_611417982"><span class="status-body"><span class="entry-content">I pack a chainsaw.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/611417982" class="entry-date" rel="bookmark"><span class="published">4:01 PM Jan 17th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_563603172"><span class="status-body"><span class="entry-content">Cattleeyes is now following me on twitter.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/563603172" class="entry-date" rel="bookmark"><span class="published">3:38 PM Jan 4th, 2008</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_543528112"><span class="status-body"><span class="entry-content">Dude, Christof</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/543528112" class="entry-date" rel="bookmark"><span class="published">3:38 AM Dec 29th, 2007</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_508844042"><span class="status-body"><span class="entry-content">All of my Christmas gifts are going to be late.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/508844042" class="entry-date" rel="bookmark"><span class="published">1:36 PM Dec 17th, 2007</span></a> <span>from <a href="http://help.twitter.com/index.php?pg=kb.page&id=75">txt</a></span> </span></span></li><li class="hentry status u-bicycles" id="status_507249672"><span class="status-body"><span class="entry-content">I just lost $1.25 in the laundry machine and had to walk all the way across the street to make my dimes and nickels into two more quarters.</span><span class="meta entry-meta"><a href="http://twitter.com/bicycles/status/507249672" class="entry-date" rel="bookmark"><span class="published">5:23 PM Dec 16th, 2007</span></a> <span>from web</span> </span></span></li></ol>
284
+
285
+ <div id="pagination">
286
+
287
+ </div>
288
+
289
+ </div>
290
+
291
+
292
+
293
+ </div>
294
+ </td>
295
+
296
+ <td id="side_base" class="column round-right">
297
+
298
+ <div id="side">
299
+
300
+ <div id="profile" class="section profile-side">
301
+ <span class="section-links">
302
+ </span>
303
+
304
+ <address>
305
+ <ul class="about vcard entry-author">
306
+ <li><span class="label">Name</span> <span class="fn">bicycles</span></li>
307
+ <li><span class="label">Location</span> <span class="adr">Portland, Oregon</span></li>
308
+ <li><span class="label">Web</span> <a href="http://www.antehero.com/blog" class="url" rel="me nofollow">http://www.antehe...</a></li>
309
+
310
+ <li id="bio"><span class="label">Bio</span> <span class="bio">I write business plans for a living and fiction to stay sane. I also try my hand at all sorts of creative side projects: painting, game dev, whiskey drinking..</span></li>
311
+ </ul>
312
+ </address>
313
+
314
+
315
+ <div class="stats">
316
+ <table>
317
+ <tr>
318
+ <td>
319
+
320
+ <a href="/bicycles/friends" id="following_count_link" class="link-following_page" rel="me" title="See who you’re following">
321
+ <span id="following_count" class="stats_count numeric">7 </span>
322
+ <span class="label">Following</span>
323
+ </a>
324
+
325
+ </td>
326
+ <td>
327
+
328
+ <a href="/bicycles/followers" id="follower_count_link" class="link-followers_page" rel="me" title="See who’s following you">
329
+ <span id="follower_count" class="stats_count numeric">32 </span>
330
+ <span class="label">Followers</span>
331
+ </a>
332
+
333
+ </td>
334
+
335
+ </tr>
336
+ </table>
337
+ </div>
338
+
339
+ </div>
340
+
341
+ <ul id="primary_nav" class="sidebar-menu">
342
+ <li id="profile_tab"><a href="/bicycles" accesskey="u" class="in-page-link"><span id="update_count" class="stat_count">14</span><span>Updates</span></a></li>
343
+ <li id="profile_favorites_tab"><a href="/favourings?user=bicycles" accesskey="f" class="in-page-link"><span>Favorites</span></a></li>
344
+ </ul>
345
+
346
+ <hr/>
347
+
348
+
349
+ <div id="following">
350
+ <h2 class="sidebar-title" id="fm_menu"><span>Following</span></h2>
351
+
352
+ <div class="sidebar-menu">
353
+ <div id="following_list">
354
+
355
+ </div>
356
+
357
+ </div>
358
+
359
+ </div>
360
+
361
+
362
+
363
+
364
+ <div id="rssfeed">
365
+ <hr/>
366
+ <a href="/statuses/user_timeline/11240082.rss" class="xref rss profile-rss" rel="alternate" type="application/rss+xml">RSS feed of bicycles's updates</a>
367
+ </div>
368
+
369
+
370
+
371
+ </div>
372
+ </td>
373
+
374
+ </tr>
375
+ </tbody>
376
+ </table>
377
+
378
+
379
+
380
+ <div id="footer" class="round">
381
+ <h3 class="offscreen">Footer</h3>
382
+
383
+ <ul>
384
+ <li class="first">&copy; 2009 Twitter</li>
385
+ <li><a href="/about#about">About Us</a></li>
386
+ <li><a href="/about#contact">Contact</a></li>
387
+ <li><a href="http://blog.twitter.com">Blog</a></li>
388
+ <li><a href="http://status.twitter.com">Status</a></li>
389
+ <li><a href="/downloads">Apps</a></li>
390
+ <li><a href="http://apiwiki.twitter.com/">API</a></li>
391
+ <li><a href="http://search.twitter.com">Search</a></li>
392
+ <li><a href="http://help.twitter.com">Help</a></li>
393
+ <li><a href="/jobs">Jobs</a></li>
394
+ <li><a href="/tos">Terms</a></li>
395
+ <li><a href="/privacy">Privacy</a></li>
396
+ </ul>
397
+ </div>
398
+
399
+
400
+
401
+ <hr />
402
+
403
+ </div>
404
+
405
+
406
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js" type="text/javascript"></script><script src="http://assets2.twitter.com/javascripts/application.js?1241136213" type="text/javascript"></script><script src="http://assets1.twitter.com/javascripts/jquery.watermarkinput.js?1241136231" type="text/javascript"></script><script src="http://assets3.twitter.com/javascripts/notifications.js?1241136232" type="text/javascript"></script><script src="http://assets0.twitter.com/javascripts/search.js?1241136233" type="text/javascript"></script>
407
+ <script src="http://assets2.twitter.com/javascripts/jquery.cookie.js?1241136222" type="text/javascript"></script><script src="http://assets1.twitter.com/javascripts/jquery.color.js?1241136221" type="text/javascript"></script>
408
+ <script src="http://assets2.twitter.com/javascripts/jquery.livequery.js?1241136226" type="text/javascript"></script>
409
+ <script src="http://assets1.twitter.com/javascripts/timeline.js?1241136238" type="text/javascript"></script><script type="text/javascript">
410
+ //<![CDATA[
411
+ page.user_screenname = 'bicycles';
412
+ page.user_fullname = 'bicycles';
413
+ twttr.form_authenticity_token = '05fa1ba4ad2b0b060a72fff262aba2b3aacf80c6';
414
+ if (window.top !== window.self) { setTimeout(function(){document.body.innerHTML='';},1);window.self.onload=function(evt){document.body.innerHTML='';};}
415
+ //]]>
416
+ </script><script type="text/javascript">
417
+ //<![CDATA[
418
+
419
+ $( function () {
420
+ initializePage();
421
+
422
+ });
423
+
424
+ //]]>
425
+ </script>
426
+
427
+
428
+
429
+ <!-- BEGIN google analytics -->
430
+
431
+ <script type="text/javascript">
432
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
433
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
434
+ </script>
435
+
436
+ <script type="text/javascript">
437
+ try {
438
+ var pageTracker = _gat._getTracker("UA-30775-6");
439
+ pageTracker._setDomainName("twitter.com");
440
+ pageTracker._setVar('Not Logged In');
441
+ pageTracker._setVar('lang: en');
442
+ pageTracker._initData();
443
+ pageTracker._trackPageview('/profile/not_logged_in/bicycles');
444
+ } catch(err) { }
445
+ </script>
446
+
447
+ <!-- END google analytics -->
448
+
449
+
450
+
451
+
452
+
453
+ <div id="notifications"></div>
454
+
455
+ </body>
456
+
457
+ </html>