strawman 0.4 → 0.5

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.tar.gz.sig CHANGED
Binary file
data/COPYING ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Matt Colyer
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest CHANGED
@@ -1,10 +1,22 @@
1
- Manifest
1
+ COPYING
2
2
  README.rdoc
3
3
  Rakefile
4
+ examples/cache/proxy_sites.json
5
+ examples/cache/twitter-proxy_sites.json
4
6
  examples/example.rb
7
+ examples/proxies
5
8
  lib/strawman.rb
6
9
  lib/strawman/http_request.rb
7
10
  lib/strawman/proxy.rb
8
11
  lib/strawman/proxy_list.rb
9
12
  lib/strawman/source.rb
10
- strawman.gemspec
13
+ lib/strawman/transport.rb
14
+ spec/fixtures/proxy
15
+ spec/fixtures/twitter
16
+ spec/helper.rb
17
+ spec/http_request_spec.rb
18
+ spec/mock_transport.rb
19
+ spec/proxy_list_spec.rb
20
+ spec/proxy_spec.rb
21
+ spec/source_spec.rb
22
+ Manifest
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'spec/rake/spectask'
3
3
  require 'rake'
4
4
  require 'echoe'
5
5
 
6
- Echoe.new('strawman', '0.4') do |p|
6
+ Echoe.new('strawman', '0.5') do |p|
7
7
  p.description = "Allows you fetch pages using glype proxies."
8
8
  p.url = "http://github.com/mattcolyer/strawman"
9
9
  p.author = "Matt Colyer"
@@ -0,0 +1 @@
1
+ [{"contributors":null,"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sun Feb 14 05:02:31 +0000 2010","geo":null,"favorited":false,"truncated":false,"user":{"notifications":null,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":39,"favourites_count":0,"statuses_count":3705,"verified":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","contributors_enabled":false,"lang":"en","profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"geo_enabled":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"id":9085875527,"text":"New Glype: http://woshi33.tk/"},{"favorited":false,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sun Feb 14 05:01:34 +0000 2010","geo":null,"user":{"verified":false,"description":"","notifications":false,"profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"profile_link_color":"ed3434","followers_count":39,"statuses_count":3704,"profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","friends_count":0,"profile_background_color":"454545","contributors_enabled":false,"time_zone":"Central Time (US & Canada)","favourites_count":0,"profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","geo_enabled":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_screen_name":null,"contributors":null,"in_reply_to_status_id":null,"id":9085843419,"truncated":false,"text":"New Glype: http://unlooking-locks.tk"},{"contributors":null,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"in_reply_to_screen_name":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","truncated":false,"created_at":"Sun Feb 14 04:35:19 +0000 2010","geo":null,"user":{"description":"","statuses_count":3703,"profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"contributors_enabled":false,"profile_link_color":"ed3434","followers_count":39,"profile_background_tile":false,"favourites_count":0,"verified":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"geo_enabled":false,"friends_count":0,"location":"","name":"Proxy Sites","lang":"en","notifications":null,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"favorited":false,"id":9085003889,"text":"New PHProxy: http://proxysite.tk"},{"favorited":false,"in_reply_to_user_id":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"created_at":"Sun Feb 14 04:32:51 +0000 2010","geo":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3702,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"notifications":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9084920018,"truncated":false,"text":"New Glype: http://freesurf-board.tk"},{"truncated":false,"in_reply_to_screen_name":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sun Feb 14 03:08:52 +0000 2010","geo":null,"contributors":null,"user":{"favourites_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","screen_name":"proxy_sites","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"notifications":null,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","followers_count":39,"protected":false,"location":"","name":"Proxy Sites","lang":"en","friends_count":0,"profile_sidebar_border_color":"b8e7ff","id":49118673,"statuses_count":3701,"following":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9081797142,"favorited":false,"in_reply_to_user_id":null,"text":"New Glype: http://new-freeport.tk"},{"truncated":false,"in_reply_to_screen_name":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sun Feb 14 03:07:50 +0000 2010","geo":null,"contributors":null,"user":{"favourites_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","screen_name":"proxy_sites","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"notifications":null,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","followers_count":39,"protected":false,"location":"","name":"Proxy Sites","lang":"en","friends_count":0,"profile_sidebar_border_color":"b8e7ff","id":49118673,"statuses_count":3701,"following":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9081760193,"favorited":false,"in_reply_to_user_id":null,"text":"New Glype: http://the-cyberlocks.tk"},{"in_reply_to_user_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"created_at":"Sun Feb 14 03:06:59 +0000 2010","geo":null,"contributors":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3699,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":false,"notifications":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9081728981,"favorited":false,"truncated":false,"text":"New Glype: http://unlost-freaked.tk"},{"contributors":null,"favorited":false,"in_reply_to_user_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","truncated":false,"created_at":"Sun Feb 14 01:33:39 +0000 2010","geo":null,"in_reply_to_screen_name":null,"user":{"friends_count":0,"description":"","statuses_count":3698,"profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","favourites_count":0,"url":null,"contributors_enabled":false,"profile_link_color":"ed3434","geo_enabled":false,"profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","verified":false,"notifications":null,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","profile_sidebar_border_color":"b8e7ff","followers_count":39,"id":49118673,"following":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9078493732,"text":"New Glype: http://post-proxy.co.cc/"},{"contributors":null,"favorited":false,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sun Feb 14 00:41:15 +0000 2010","geo":null,"truncated":false,"user":{"contributors_enabled":false,"description":"","geo_enabled":false,"profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"verified":false,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":39,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"friends_count":0,"location":"","name":"Proxy Sites","lang":"en","statuses_count":3697,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"utc_offset":-21600,"favourites_count":0,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_screen_name":null,"in_reply_to_user_id":null,"id":9076777816,"text":"New Glype: http://www.iwantforex.co.cc/"},{"favorited":false,"in_reply_to_user_id":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"created_at":"Sun Feb 14 00:40:25 +0000 2010","geo":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3698,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":false,"notifications":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9076751928,"truncated":false,"text":"New Glype: http://proxy-age.tk/"},{"in_reply_to_user_id":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"created_at":"Sun Feb 14 00:33:43 +0000 2010","geo":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3695,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"notifications":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9076541077,"favorited":false,"truncated":false,"text":"New Glype: http://www.freeforex02.co.cc/"},{"favorited":false,"in_reply_to_user_id":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"created_at":"Sun Feb 14 00:28:03 +0000 2010","geo":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3698,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":false,"notifications":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9076354600,"truncated":false,"text":"New Glype: http://abm21.tk"},{"in_reply_to_screen_name":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sat Feb 13 20:51:19 +0000 2010","geo":null,"user":{"geo_enabled":false,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","verified":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"notifications":false,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_fill_color":"DDEEF6","protected":false,"statuses_count":3693,"location":"","name":"Proxy Sites","lang":"en","favourites_count":0,"profile_sidebar_border_color":"b8e7ff","id":49118673,"contributors_enabled":false,"following":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"favorited":false,"in_reply_to_user_id":null,"in_reply_to_status_id":null,"truncated":false,"id":9069755318,"text":"New Glype: http://cloacktunnel.co.cc/"},{"in_reply_to_status_id":null,"truncated":false,"in_reply_to_screen_name":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sat Feb 13 20:12:30 +0000 2010","geo":null,"user":{"contributors_enabled":false,"description":"","geo_enabled":false,"profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"verified":false,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":false,"friends_count":0,"location":"","name":"Proxy Sites","lang":"en","statuses_count":3692,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":true,"utc_offset":-21600,"favourites_count":0,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_user_id":null,"contributors":null,"id":9068590420,"favorited":false,"text":"New Glype: http://anoname.co.cc"},{"contributors":null,"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sat Feb 13 19:03:55 +0000 2010","geo":null,"favorited":false,"truncated":false,"user":{"notifications":false,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"favourites_count":0,"statuses_count":3691,"verified":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","contributors_enabled":false,"lang":"en","profile_sidebar_border_color":"b8e7ff","id":49118673,"following":true,"geo_enabled":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"id":9066467106,"text":"New Glype: http://proxy-power.co.cc/"},{"contributors":null,"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sat Feb 13 19:03:46 +0000 2010","geo":null,"favorited":false,"truncated":false,"user":{"notifications":false,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"favourites_count":0,"statuses_count":3691,"verified":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","contributors_enabled":false,"lang":"en","profile_sidebar_border_color":"b8e7ff","id":49118673,"following":true,"geo_enabled":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"id":9066462549,"text":"New Glype: http://cloackproxie.co.cc/"},{"contributors":null,"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sat Feb 13 18:55:28 +0000 2010","geo":null,"favorited":false,"truncated":false,"user":{"notifications":false,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"favourites_count":0,"statuses_count":3691,"verified":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","contributors_enabled":false,"lang":"en","profile_sidebar_border_color":"b8e7ff","id":49118673,"following":true,"geo_enabled":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"id":9066197171,"text":"New PHProxy: http://hostingproxies.co.cc/"},{"contributors":null,"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"created_at":"Sat Feb 13 18:17:59 +0000 2010","geo":null,"favorited":false,"truncated":false,"user":{"notifications":false,"description":"","profile_text_color":"333333","screen_name":"proxy_sites","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","followers_count":38,"favourites_count":0,"statuses_count":3691,"verified":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","contributors_enabled":false,"lang":"en","profile_sidebar_border_color":"b8e7ff","id":49118673,"following":true,"geo_enabled":false,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"id":9064996868,"text":"New Glype: http://fasthide88.tk/"},{"favorited":false,"in_reply_to_user_id":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sat Feb 13 17:51:33 +0000 2010","geo":null,"user":{"description":"","profile_text_color":"333333","followers_count":39,"screen_name":"proxy_sites","statuses_count":3687,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"friends_count":0,"profile_link_color":"ed3434","contributors_enabled":false,"profile_background_tile":false,"favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","geo_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","protected":false,"location":"","name":"Proxy Sites","lang":"en","verified":false,"profile_sidebar_border_color":"b8e7ff","id":49118673,"following":null,"notifications":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_screen_name":null,"in_reply_to_status_id":null,"id":9064113647,"contributors":null,"truncated":false,"text":"New Glype: http://forexidentiry.tk/"},{"truncated":false,"in_reply_to_screen_name":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","created_at":"Sat Feb 13 17:45:41 +0000 2010","geo":null,"contributors":null,"user":{"favourites_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","screen_name":"proxy_sites","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","url":null,"profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"notifications":null,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_background_color":"454545","time_zone":"Central Time (US & Canada)","profile_sidebar_fill_color":"DDEEF6","followers_count":39,"protected":false,"location":"","name":"Proxy Sites","lang":"en","friends_count":0,"profile_sidebar_border_color":"b8e7ff","id":49118673,"statuses_count":3686,"following":null,"utc_offset":-21600,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg"},"in_reply_to_status_id":null,"id":9063916872,"favorited":false,"in_reply_to_user_id":null,"text":"New Glype: http://fastfreeunblocker.co.cc/"}]
@@ -0,0 +1 @@
1
+ [{"in_reply_to_status_id":null,"in_reply_to_screen_name":null,"truncated":false,"created_at":"Tue Feb 23 21:45:36 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"favorited":false,"user":{"followers_count":43,"description":"","profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","friends_count":0,"statuses_count":4365,"profile_link_color":"ed3434","profile_background_tile":false,"favourites_count":0,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","contributors_enabled":false,"profile_background_color":"454545","lang":"en","geo_enabled":false,"screen_name":"proxy_sites","following":false,"profile_sidebar_fill_color":"DDEEF6","protected":false,"verified":false,"notifications":false,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","id":49118673,"utc_offset":-21600,"url":null},"contributors":null,"geo":null,"id":9544125488,"text":"New Glype: http://metahide.co.cc/"},{"in_reply_to_user_id":null,"created_at":"Tue Feb 23 21:30:49 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_screen_name":null,"favorited":false,"user":{"friends_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","geo_enabled":false,"profile_background_tile":false,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","profile_background_color":"454545","lang":"en","verified":false,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","followers_count":43,"id":49118673,"statuses_count":4364,"utc_offset":-21600,"url":null},"geo":null,"in_reply_to_status_id":null,"id":9543541077,"truncated":false,"text":"New Glype: http://autohope.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"in_reply_to_user_id":null,"created_at":"Tue Feb 23 21:16:10 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"user":{"friends_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","geo_enabled":false,"profile_background_tile":false,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","profile_background_color":"454545","lang":"en","verified":false,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","followers_count":43,"id":49118673,"statuses_count":4363,"utc_offset":-21600,"url":null},"geo":null,"in_reply_to_status_id":null,"id":9542997998,"truncated":false,"text":"New Glype: http://killertunnel.co.cc/"},{"in_reply_to_status_id":null,"in_reply_to_screen_name":null,"truncated":false,"created_at":"Tue Feb 23 21:15:33 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","in_reply_to_user_id":null,"favorited":false,"user":{"followers_count":43,"description":"","profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","friends_count":0,"statuses_count":4362,"profile_link_color":"ed3434","profile_background_tile":false,"favourites_count":0,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","contributors_enabled":false,"profile_background_color":"454545","lang":"en","geo_enabled":false,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"verified":false,"notifications":null,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","id":49118673,"utc_offset":-21600,"url":null},"contributors":null,"geo":null,"id":9542976576,"text":"New Glype: http://freeparty.tk"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 21:15:27 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9542973239,"in_reply_to_user_id":null,"text":"New Glype: http://unblockbeauty.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 21:14:42 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9542949280,"in_reply_to_user_id":null,"text":"New Glype: http://servicebot.tk/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 21:04:29 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9542636803,"in_reply_to_user_id":null,"text":"New Glype: http://moneyhope.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 21:03:06 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9542585371,"in_reply_to_user_id":null,"text":"New Glype: http://applepie2.info"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 20:45:14 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9541917202,"in_reply_to_user_id":null,"text":"New Glype: http://teachadd.co.cc/"},{"in_reply_to_user_id":null,"created_at":"Tue Feb 23 20:00:19 +0000 2010","in_reply_to_screen_name":null,"favorited":false,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"user":{"friends_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","geo_enabled":false,"profile_background_tile":false,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","profile_background_color":"454545","lang":"en","verified":false,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","followers_count":43,"id":49118673,"statuses_count":4356,"utc_offset":-21600,"url":null},"geo":null,"in_reply_to_status_id":null,"id":9540237900,"truncated":false,"text":"New Glype: http://virtueprox.info"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 19:39:38 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9539481425,"in_reply_to_user_id":null,"text":"New Glype: http://pearlunblock.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 19:37:05 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9539388915,"in_reply_to_user_id":null,"text":"New Glype: http://proxyline.tk/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 19:31:10 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9539173494,"in_reply_to_user_id":null,"text":"New Glype: http://greatproxie.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 19:30:45 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9539158478,"in_reply_to_user_id":null,"text":"New Glype: http://machinenew.co.cc/"},{"in_reply_to_status_id":null,"contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","truncated":false,"geo":null,"user":{"following":null,"friends_count":0,"description":"","screen_name":"proxy_sites","statuses_count":4351,"profile_sidebar_fill_color":"DDEEF6","url":null,"favourites_count":0,"contributors_enabled":false,"time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","location":"","geo_enabled":false,"verified":false,"notifications":null,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","protected":false,"lang":"en","profile_link_color":"ed3434","name":"Proxy Sites","profile_background_tile":false,"created_at":"Sat Jun 20 20:58:36 +0000 2009","followers_count":43,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","id":49118673,"utc_offset":-21600,"profile_background_color":"454545"},"in_reply_to_user_id":null,"in_reply_to_screen_name":null,"id":9539119537,"created_at":"Tue Feb 23 19:29:45 +0000 2010","favorited":false,"text":"New Glype: http://resolutionproxy.tk"},{"truncated":false,"contributors":null,"created_at":"Tue Feb 23 19:17:59 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"contributors_enabled":false,"description":"","geo_enabled":false,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","verified":false,"profile_link_color":"ed3434","profile_background_tile":false,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","profile_background_color":"454545","lang":"en","followers_count":43,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"friends_count":0,"location":"","name":"Proxy Sites","statuses_count":4350,"time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"id":9538695108,"in_reply_to_screen_name":null,"favorited":false,"in_reply_to_user_id":null,"text":"New Glype: http://palacebin.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 19:08:39 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9538364253,"in_reply_to_user_id":null,"text":"New Glype: http://gamelow.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 18:54:08 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9537836201,"in_reply_to_user_id":null,"text":"New Glype: http://littletunnel.co.cc/"},{"in_reply_to_screen_name":null,"favorited":false,"created_at":"Tue Feb 23 18:43:41 +0000 2010","contributors":null,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","user":{"profile_text_color":"333333","description":"","geo_enabled":false,"profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","verified":false,"profile_background_tile":false,"profile_background_color":"454545","profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","lang":"en","profile_sidebar_fill_color":"DDEEF6","followers_count":43,"screen_name":"proxy_sites","statuses_count":4364,"following":null,"protected":false,"notifications":null,"time_zone":"Central Time (US & Canada)","friends_count":0,"profile_sidebar_border_color":"b8e7ff","location":"","name":"Proxy Sites","contributors_enabled":false,"id":49118673,"utc_offset":-21600,"favourites_count":0,"url":null},"in_reply_to_status_id":null,"geo":null,"truncated":false,"id":9537461476,"in_reply_to_user_id":null,"text":"New Glype: http://topforex.tk/"},{"in_reply_to_user_id":null,"created_at":"Tue Feb 23 18:37:03 +0000 2010","in_reply_to_screen_name":null,"favorited":false,"source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"user":{"friends_count":0,"description":"","contributors_enabled":false,"profile_text_color":"333333","profile_background_image_url":"http://a3.twimg.com/profile_background_images/67257809/Twitter.jpg","favourites_count":0,"created_at":"Sat Jun 20 20:58:36 +0000 2009","profile_link_color":"ed3434","geo_enabled":false,"profile_background_tile":false,"profile_image_url":"http://a3.twimg.com/profile_images/588447807/ProxySites_normal.jpg","profile_background_color":"454545","lang":"en","verified":false,"screen_name":"proxy_sites","following":null,"profile_sidebar_fill_color":"DDEEF6","protected":false,"notifications":null,"location":"","name":"Proxy Sites","time_zone":"Central Time (US & Canada)","profile_sidebar_border_color":"b8e7ff","followers_count":44,"id":49118673,"statuses_count":4346,"utc_offset":-21600,"url":null},"geo":null,"in_reply_to_status_id":null,"id":9537222669,"truncated":false,"text":"New Glype: http://www.dotadota.co.cc"}]
@@ -0,0 +1,232 @@
1
+ ---
2
+ - !ruby/object:Strawman::GlypeProxy
3
+ root_url: http://zebratunnel.co.cc/
4
+ valid: false
5
+ - !ruby/object:Strawman::GlypeProxy
6
+ root_url: http://hidelater.tk/
7
+ valid: false
8
+ - !ruby/object:Strawman::GlypeProxy
9
+ root_url: http://forexware.tk/
10
+ valid: false
11
+ - !ruby/object:Strawman::GlypeProxy
12
+ root_url: http://www.unlimitedaccessloan.co.cc
13
+ valid: false
14
+ - !ruby/object:Strawman::GlypeProxy
15
+ root_url: http://happy4forex.co.cc
16
+ valid: false
17
+ - !ruby/object:Strawman::GlypeProxy
18
+ root_url: http://forexloans.co.cc
19
+ valid: false
20
+ - !ruby/object:Strawman::GlypeProxy
21
+ root_url: http://anonymouscarinsurance.co.cc
22
+ valid: false
23
+ - !ruby/object:Strawman::GlypeProxy
24
+ root_url: http://forexfiles.tk/
25
+ valid: false
26
+ - !ruby/object:Strawman::GlypeProxy
27
+ root_url: http://www.playsafeproxy.co.cc
28
+ valid: false
29
+ - !ruby/object:Strawman::GlypeProxy
30
+ root_url: http://hideyouripfree.info/
31
+ valid: false
32
+ - !ruby/object:Strawman::GlypeProxy
33
+ root_url: http://proxytimes.tk/
34
+ valid: false
35
+ - !ruby/object:Strawman::GlypeProxy
36
+ root_url: http://forexholder.co.cc/
37
+ valid: false
38
+ - !ruby/object:Strawman::GlypeProxy
39
+ root_url: http://www.hidegate.tk/
40
+ valid: false
41
+ - !ruby/object:Strawman::GlypeProxy
42
+ root_url: http://www.mintuno.co.cc
43
+ valid: false
44
+ - !ruby/object:Strawman::GlypeProxy
45
+ root_url: http://www.savewebproxy.co.cc
46
+ valid: false
47
+ - !ruby/object:Strawman::GlypeProxy
48
+ root_url: http://bypassinternet.tk
49
+ valid: false
50
+ - !ruby/object:Strawman::GlypeProxy
51
+ root_url: http://publicproxyserver.tk
52
+ valid: false
53
+ - !ruby/object:Strawman::GlypeProxy
54
+ root_url: http://www.diamondforexblock.tk/
55
+ valid: false
56
+ - !ruby/object:Strawman::GlypeProxy
57
+ root_url: http://freedom-freeway.co.cc
58
+ valid: false
59
+ - !ruby/object:Strawman::GlypeProxy
60
+ root_url: http://www.forexnewhide.tk/
61
+ valid: false
62
+ - !ruby/object:Strawman::GlypeProxy
63
+ root_url: http://race-proxy.tk/
64
+ valid: false
65
+ - !ruby/object:Strawman::GlypeProxy
66
+ root_url: http://hideup.tk/
67
+ valid: false
68
+ - !ruby/object:Strawman::GlypeProxy
69
+ root_url: http://protectforex.tk/
70
+ valid: false
71
+ - !ruby/object:Strawman::GlypeProxy
72
+ root_url: http://block-hawk-down.co.cc
73
+ valid: false
74
+ - !ruby/object:Strawman::GlypeProxy
75
+ root_url: http://browserhider.info/
76
+ valid: false
77
+ - !ruby/object:Strawman::GlypeProxy
78
+ root_url: http://proxy-money.tk/
79
+ valid: false
80
+ - !ruby/object:Strawman::GlypeProxy
81
+ root_url: http://nonblock-begin.co.cc
82
+ valid: false
83
+ - !ruby/object:Strawman::GlypeProxy
84
+ root_url: http://funproxy.tk
85
+ valid: false
86
+ - !ruby/object:Strawman::GlypeProxy
87
+ root_url: http://block-breaker.co.cc
88
+ valid: false
89
+ - !ruby/object:Strawman::GlypeProxy
90
+ root_url: http://guarantedloans.co.cc
91
+ valid: false
92
+ - !ruby/object:Strawman::GlypeProxy
93
+ root_url: http://superfastloans.co.cc
94
+ valid: false
95
+ - !ruby/object:Strawman::GlypeProxy
96
+ root_url: http://workforex.co.cc/
97
+ valid: false
98
+ - !ruby/object:Strawman::GlypeProxy
99
+ root_url: http://forexearning.tk/
100
+ valid: false
101
+ - !ruby/object:Strawman::GlypeProxy
102
+ root_url: http://hideloan.tk/
103
+ valid: false
104
+ - !ruby/object:Strawman::GlypeProxy
105
+ root_url: http://forexscan.tk/
106
+ valid: false
107
+ - !ruby/object:Strawman::GlypeProxy
108
+ root_url: http://highanonymity.tk/
109
+ valid: false
110
+ - !ruby/object:Strawman::GlypeProxy
111
+ root_url: http://proxy-boost.co.cc/
112
+ valid: false
113
+ - !ruby/object:Strawman::GlypeProxy
114
+ root_url: http://secure-hide.tk/
115
+ valid: false
116
+ - !ruby/object:Strawman::GlypeProxy
117
+ root_url: http://super-faster.co.cc
118
+ valid: false
119
+ - !ruby/object:Strawman::GlypeProxy
120
+ root_url: http://findyoung.tk/
121
+ valid: false
122
+ - !ruby/object:Strawman::GlypeProxy
123
+ root_url: http://ngeroot.co.cc/
124
+ valid: false
125
+ - !ruby/object:Strawman::GlypeProxy
126
+ root_url: http://curangkowe.co.cc/
127
+ valid: false
128
+ - !ruby/object:Strawman::GlypeProxy
129
+ root_url: http://jayuskowe.co.cc/
130
+ valid: false
131
+ - !ruby/object:Strawman::GlypeProxy
132
+ root_url: http://futurecampus.co.cc/
133
+ valid: false
134
+ - !ruby/object:Strawman::GlypeProxy
135
+ root_url: http://springsun.tk/
136
+ valid: false
137
+ - !ruby/object:Strawman::GlypeProxy
138
+ root_url: http://accesscheat.co.cc
139
+ valid: false
140
+ - !ruby/object:Strawman::GlypeProxy
141
+ root_url: http://www.dafeethson.co.cc/
142
+ valid: false
143
+ - !ruby/object:Strawman::GlypeProxy
144
+ root_url: http://privateforex.co.cc/
145
+ valid: false
146
+ - !ruby/object:Strawman::GlypeProxy
147
+ root_url: http://lastforex.tk/
148
+ valid: false
149
+ - !ruby/object:Strawman::GlypeProxy
150
+ root_url: http://block-destroyer.tk
151
+ valid: false
152
+ - !ruby/object:Strawman::GlypeProxy
153
+ root_url: http://www.mumetindas.co.cc/
154
+ valid: false
155
+ - !ruby/object:Strawman::GlypeProxy
156
+ root_url: http://www.makemoneyproxy.co.cc
157
+ valid: false
158
+ - !ruby/object:Strawman::GlypeProxy
159
+ root_url: http://www.unblocksuper.co.cc/
160
+ valid: false
161
+ - !ruby/object:Strawman::GlypeProxy
162
+ root_url: http://cityboss.tk/
163
+ valid: false
164
+ - !ruby/object:Strawman::GlypeProxy
165
+ root_url: http://rockdangduto.tk
166
+ valid: false
167
+ - !ruby/object:Strawman::GlypeProxy
168
+ root_url: http://rockbalado.tk/
169
+ valid: false
170
+ - !ruby/object:Strawman::GlypeProxy
171
+ root_url: http://autohope.co.cc/
172
+ valid: false
173
+ - !ruby/object:Strawman::GlypeProxy
174
+ root_url: http://killertunnel.co.cc/
175
+ valid: false
176
+ - !ruby/object:Strawman::GlypeProxy
177
+ root_url: http://freeparty.tk
178
+ valid: false
179
+ - !ruby/object:Strawman::GlypeProxy
180
+ root_url: http://unblockbeauty.co.cc/
181
+ valid: false
182
+ - !ruby/object:Strawman::GlypeProxy
183
+ root_url: http://servicebot.tk/
184
+ valid: false
185
+ - !ruby/object:Strawman::GlypeProxy
186
+ root_url: http://moneyhope.co.cc/
187
+ valid: false
188
+ - !ruby/object:Strawman::GlypeProxy
189
+ root_url: http://applepie2.info
190
+ valid: false
191
+ - !ruby/object:Strawman::GlypeProxy
192
+ root_url: http://teachadd.co.cc/
193
+ valid: false
194
+ - !ruby/object:Strawman::GlypeProxy
195
+ root_url: http://virtueprox.info
196
+ valid: false
197
+ - !ruby/object:Strawman::GlypeProxy
198
+ root_url: http://pearlunblock.co.cc/
199
+ valid: false
200
+ - !ruby/object:Strawman::GlypeProxy
201
+ root_url: http://proxyline.tk/
202
+ valid: false
203
+ - !ruby/object:Strawman::GlypeProxy
204
+ root_url: http://greatproxie.co.cc/
205
+ valid: false
206
+ - !ruby/object:Strawman::GlypeProxy
207
+ root_url: http://machinenew.co.cc/
208
+ valid: false
209
+ - !ruby/object:Strawman::GlypeProxy
210
+ root_url: http://resolutionproxy.tk
211
+ valid: false
212
+ - !ruby/object:Strawman::GlypeProxy
213
+ root_url: http://palacebin.co.cc/
214
+ valid: false
215
+ - !ruby/object:Strawman::GlypeProxy
216
+ root_url: http://gamelow.co.cc/
217
+ valid: false
218
+ - !ruby/object:Strawman::GlypeProxy
219
+ root_url: http://littletunnel.co.cc/
220
+ valid: false
221
+ - !ruby/object:Strawman::GlypeProxy
222
+ root_url: http://topforex.tk/
223
+ valid: false
224
+ - !ruby/object:Strawman::GlypeProxy
225
+ root_url: http://www.dotadota.co.cc
226
+ valid: false
227
+ - !ruby/object:Strawman::GlypeProxy
228
+ root_url: http://ozindo.co.cc/
229
+ valid: false
230
+ - !ruby/object:Strawman::GlypeProxy
231
+ root_url: http://metahide.co.cc/
232
+ valid: false
@@ -1,6 +1,7 @@
1
1
  require 'base64'
2
- require 'json'
3
2
  require 'cgi'
3
+ require 'uri'
4
+ require 'json'
4
5
  require 'strawman/http_request'
5
6
  require 'strawman/proxy'
6
7
  require 'strawman/proxy_list'
@@ -10,6 +10,7 @@ module Strawman
10
10
  def initialize(url)
11
11
  @root_url = url
12
12
  @valid = false
13
+ @validate_response = ""
13
14
  end
14
15
 
15
16
  #
@@ -35,6 +36,13 @@ module Strawman
35
36
  @valid
36
37
  end
37
38
 
39
+ #
40
+ # Returns the response of the validate request from the proxy.
41
+ #
42
+ def validate_response
43
+ @validate_response
44
+ end
45
+
38
46
  def ==(other)
39
47
  self.class == other.class && self.root_url == other.root_url
40
48
  end
@@ -62,6 +70,7 @@ module Strawman
62
70
  url = proxy_url(verification_url)
63
71
  http = Transport.new(url).get :head => {'referer' => @root_url}
64
72
  http.callback {
73
+ @validate_response = http.response
65
74
  @valid = true if http.response_header.status == 200
66
75
  }
67
76
 
@@ -75,7 +84,7 @@ module Strawman
75
84
  protected
76
85
  def proxy_path(url)
77
86
  encoded_url = CGI.escape(Base64.encode64(url[4..-1]))
78
- "/browse.php?u=#{encoded_url}&f=norefer"
87
+ "/browse.php?b=4&u=#{encoded_url}"
79
88
  end
80
89
  end
81
90
  end
@@ -58,8 +58,8 @@ module Strawman
58
58
  end
59
59
 
60
60
  proxy_response.errback do
61
- @proxies.remove(proxy)
62
- @dead_proxies.add(proxy)
61
+ @proxies.delete(proxy)
62
+ @dead_proxies.push(proxy)
63
63
  end
64
64
 
65
65
  deferrable
@@ -0,0 +1,14 @@
1
+ module Strawman
2
+ #
3
+ # Abstract class proxy used for either EventMachine::HttpRequests in
4
+ # production or EventMachine::MockHttpRequest for testing.
5
+ #
6
+ class Transport
7
+ def initialize(*args)
8
+ @request = EventMachine::HttpRequest.new(*args)
9
+ end
10
+ def method_missing(method, *args)
11
+ @request.send(method, *args)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 18 Feb 2010 17:03:03 GMT
3
+ Server: Apache
4
+ X-Powered-By: PHP/5.2.12
5
+ Cache-Control:
6
+ Set-Cookie: s=baai6teku43gddhod5iegq62b0; path=/
7
+ Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
8
+ Vary: Accept-Encoding
9
+ Content-Length: 14
10
+ Content-Type: text/plain
11
+
12
+ 69.163.160.190
@@ -0,0 +1,23 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 18 Feb 2010 16:56:08 GMT
3
+ Server: hi
4
+ X-RateLimit-Limit: 150
5
+ X-Transaction: 1266512168-57048-20007
6
+ Status: 200 OK
7
+ ETag: "b2edc2ed1a92f08d6d59d84176d0aedc"
8
+ Last-Modified: Thu, 18 Feb 2010 16:56:08 GMT
9
+ X-RateLimit-Remaining: 144
10
+ X-Runtime: 0.02408
11
+ Content-Type: application/json; charset=utf-8
12
+ Pragma: no-cache
13
+ Content-Length: 3486
14
+ X-RateLimit-Class: api
15
+ Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
16
+ Expires: Tue, 31 Mar 1981 05:00:00 GMT
17
+ X-Revision: DEV
18
+ X-RateLimit-Reset: 1266515695
19
+ Set-Cookie: _twitter_sess=BAh7CDoRdHJhbnNfcHJvbXB0MDoHaWQiJTZhZTM4Y2U0YmQ2NTQxMjgwZWYx%250AZWM1MWZjODFiMmJmIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFz%250AaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--bade84ff1717d485945c0bf050947103789f9639; domain=.twitter.com; path=/
20
+ Vary: Accept-Encoding
21
+ Connection: close
22
+
23
+ [{"geo":null,"in_reply_to_user_id":null,"created_at":"Sun Feb 14 14:56:50 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"favorited":false,"truncated":false,"user":{"friends_count":0,"profile_sidebar_border_color":"87bc44","description":"","statuses_count":3,"favourites_count":0,"created_at":"Mon Jan 18 10:12:32 +0000 2010","contributors_enabled":false,"profile_text_color":"000000","geo_enabled":false,"profile_background_image_url":"http://s.twimg.com/a/1266450641/images/themes/theme1/bg.png","profile_image_url":"http://s.twimg.com/a/1266450641/images/default_profile_4_normal.png","notifications":null,"profile_link_color":"0000ff","lang":"en","verified":false,"profile_background_tile":false,"screen_name":"proxy_lists","following":null,"profile_background_color":"9ae4e8","protected":false,"location":"","name":"proxy lists","time_zone":"Hawaii","profile_sidebar_fill_color":"e0ff92","followers_count":0,"id":106051397,"utc_offset":-36000,"url":"http://www.proxies.ws/"},"in_reply_to_screen_name":null,"id":9100430701,"in_reply_to_status_id":null,"text":"New Glype: http://surfproxy.org"},{"geo":null,"in_reply_to_user_id":null,"created_at":"Sun Feb 14 14:56:43 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"favorited":false,"truncated":false,"user":{"friends_count":0,"profile_sidebar_border_color":"87bc44","description":"","statuses_count":3,"favourites_count":0,"created_at":"Mon Jan 18 10:12:32 +0000 2010","contributors_enabled":false,"profile_text_color":"000000","geo_enabled":false,"profile_background_image_url":"http://s.twimg.com/a/1266450641/images/themes/theme1/bg.png","profile_image_url":"http://s.twimg.com/a/1266450641/images/default_profile_4_normal.png","notifications":null,"profile_link_color":"0000ff","lang":"en","verified":false,"profile_background_tile":false,"screen_name":"proxy_lists","following":null,"profile_background_color":"9ae4e8","protected":false,"location":"","name":"proxy lists","time_zone":"Hawaii","profile_sidebar_fill_color":"e0ff92","followers_count":0,"id":106051397,"utc_offset":-36000,"url":"http://www.proxies.ws/"},"in_reply_to_screen_name":null,"id":9100426940,"in_reply_to_status_id":null,"text":"New Glype: http://balikavadhuonline.com"},{"geo":null,"in_reply_to_user_id":null,"created_at":"Sun Feb 14 14:56:35 +0000 2010","source":"<a href=\"http://apiwiki.twitter.com/\" rel=\"nofollow\">API</a>","contributors":null,"favorited":false,"truncated":false,"user":{"friends_count":0,"profile_sidebar_border_color":"87bc44","description":"","statuses_count":3,"favourites_count":0,"created_at":"Mon Jan 18 10:12:32 +0000 2010","contributors_enabled":false,"profile_text_color":"000000","geo_enabled":false,"profile_background_image_url":"http://s.twimg.com/a/1266450641/images/themes/theme1/bg.png","profile_image_url":"http://s.twimg.com/a/1266450641/images/default_profile_4_normal.png","notifications":null,"profile_link_color":"0000ff","lang":"en","verified":false,"profile_background_tile":false,"screen_name":"proxy_lists","following":null,"profile_background_color":"9ae4e8","protected":false,"location":"","name":"proxy lists","time_zone":"Hawaii","profile_sidebar_fill_color":"e0ff92","followers_count":0,"id":106051397,"utc_offset":-36000,"url":"http://www.proxies.ws/"},"in_reply_to_screen_name":null,"id":9100422864,"in_reply_to_status_id":null,"text":"New Glype: http://love2bunk.com"}]
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ require 'eventmachine'
5
+ require 'em-http'
6
+ require 'em-http/mock'
7
+ require 'json'
8
+ require 'cgi'
9
+
10
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib/'
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require 'strawman/http_request'
3
+ require 'strawman/transport'
4
+ require File.dirname(__FILE__) + '/mock_transport'
5
+
6
+ describe Strawman::HttpRequest do
7
+ before(:all) do
8
+ @base_url = "http://example.com:80/"
9
+ proxy_url = "http://proxy.com/"
10
+
11
+ @proxy = mock("Proxy")
12
+ @proxy.should_receive(:referer).and_return(proxy_url)
13
+ @proxy.should_receive(:proxy_url).and_return {|u| u}
14
+ deferrable = mock("Deferrable")
15
+ deferrable.should_receive(:callback).and_return{|b| b.call(@proxy)}
16
+ @proxy_list = mock("ProxyList")
17
+ @proxy_list.should_receive(:proxy).and_return(deferrable)
18
+ end
19
+
20
+ before(:each) do
21
+ EventMachine::MockHttpRequest.reset_registry!
22
+ EventMachine::MockHttpRequest.reset_counts!
23
+ end
24
+
25
+ it "should support HTTP GET" do
26
+ EventMachine::MockHttpRequest.register_file(@base_url, :get,
27
+ File.join(File.dirname(__FILE__), 'fixtures', 'proxy'))
28
+ http_request = Strawman::HttpRequest.new @proxy_list, @base_url
29
+ http_response = http_request.get
30
+ EventMachine::MockHttpRequest.count(@base_url, :get).should == 1
31
+ end
32
+
33
+ it "should support HTTP POST" do
34
+ EventMachine::MockHttpRequest.register_file(@base_url, :post,
35
+ File.join(File.dirname(__FILE__), 'fixtures', 'proxy'))
36
+ http_request = Strawman::HttpRequest.new @proxy_list, @base_url
37
+ http_response = http_request.post
38
+ EventMachine::MockHttpRequest.count(@base_url, :post).should == 1
39
+ end
40
+
41
+ it "should support HTTP POST with parameters" do
42
+ EventMachine::MockHttpRequest.register_file(@base_url, :post,
43
+ File.join(File.dirname(__FILE__), 'fixtures', 'proxy'))
44
+ http_request = Strawman::HttpRequest.new @proxy_list, @base_url
45
+ http_response = http_request.post :body => {:test => 1}
46
+ EventMachine::MockHttpRequest.count(@base_url, :post).should == 1
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ module Strawman
2
+ class Transport
3
+ def initialize(*args)
4
+ @request = EventMachine::MockHttpRequest.new(*args)
5
+ EventMachine::MockHttpRequest.pass_through_requests = false
6
+ end
7
+ def method_missing(method, *args)
8
+ @request.send(method, *args)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,64 @@
1
+ require 'tempfile'
2
+
3
+ require File.dirname(__FILE__) + '/helper'
4
+ require 'strawman/proxy_list'
5
+ require 'strawman/source'
6
+ require 'strawman/proxy'
7
+ require 'strawman/transport'
8
+ require File.dirname(__FILE__) + '/mock_transport'
9
+
10
+ describe Strawman::ProxyList do
11
+ before(:all) do
12
+ @proxy_check_url = "http://whatismyip.org"
13
+ end
14
+
15
+ before(:each) do
16
+ EventMachine::MockHttpRequest.reset_registry!
17
+ EventMachine::MockHttpRequest.reset_counts!
18
+ EventMachine::MockHttpRequest.register_file('http://twitter.com:80/statuses/user_timeline/proxy_lists.json',
19
+ :get,
20
+ File.join(File.dirname(__FILE__), 'fixtures', 'twitter'))
21
+ end
22
+
23
+ it "should verify sources with the given url and return a callback" do
24
+ EventMachine.run {
25
+ proxy_list = Strawman::ProxyList.new(@proxy_check_url)
26
+ proxy_response = proxy_list.add_sources([Strawman::TwitterSource.new("proxy_lists", false)])
27
+ proxy_response.callback {
28
+ proxy_list.proxies.size.should == 3
29
+ EventMachine.stop
30
+ }
31
+ }
32
+ end
33
+
34
+ it "should verify sources as proxies are requested" do
35
+ EventMachine.run {
36
+ proxy_list = Strawman::ProxyList.new(@proxy_check_url)
37
+ proxy_response = proxy_list.add_sources([Strawman::TwitterSource.new("proxy_lists", false)])
38
+ proxy_response.callback {
39
+ proxy = proxy_list.proxies.first
40
+ proxy_list.proxies = [proxy]
41
+
42
+ EventMachine::MockHttpRequest.register_file(proxy.proxy_url(@proxy_check_url), :get,
43
+ File.join(File.dirname(__FILE__), 'fixtures', 'proxy'))
44
+ proxy = proxy_list.proxy
45
+ proxy.callback do |proxy|
46
+ EventMachine::MockHttpRequest.count(proxy.proxy_url(@proxy_check_url), :get).should == 1
47
+ end
48
+ EventMachine.stop
49
+ }
50
+ }
51
+ end
52
+
53
+ it "should be able to store proxies to a file" do
54
+ proxy_list = Strawman::ProxyList.new(@proxy_check_url)
55
+ proxy = Strawman::GlypeProxy.new("http://www.fake.com")
56
+ proxy_list.proxies << proxy
57
+ file = Tempfile.new("save-file")
58
+ proxy_list.save(file.path)
59
+
60
+ proxy_list_loaded = Strawman::ProxyList.new(@proxy_check_url)
61
+ proxy_list_loaded.load(file.path)
62
+ proxy_list.proxies.should == proxy_list_loaded.proxies
63
+ end
64
+ end
@@ -0,0 +1,37 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require 'strawman/proxy'
3
+ require File.dirname(__FILE__) + '/mock_transport'
4
+
5
+ describe Strawman::GlypeProxy do
6
+ before(:all) do
7
+ @url = "http://proxy.com"
8
+ @proxy = Strawman::GlypeProxy.new @url
9
+ @proxy_check_url = "http://whatismyip.org"
10
+ end
11
+
12
+ before(:each) do
13
+ EventMachine::MockHttpRequest.reset_registry!
14
+ EventMachine::MockHttpRequest.reset_counts!
15
+ end
16
+
17
+ it "should be able to return a proxy url for any given url" do
18
+ @proxy.proxy_url(@proxy_check_url).to_s.should == "http://proxy.com:80/browse.php?u=Oi8vd2hhdGlzbXlpcC5vcmc%3D%0A&f=norefer"
19
+ end
20
+
21
+ it "should return the proper referer to send" do
22
+ @proxy.referer.should == @url
23
+ end
24
+
25
+ it "should be able to validate the given proxy" do
26
+ EventMachine::MockHttpRequest.register_file(@proxy.proxy_url(@proxy_check_url),
27
+ :get,
28
+ File.join(File.dirname(__FILE__), 'fixtures', 'proxy'))
29
+ EventMachine.run {
30
+ proxy_response = @proxy.validate(@proxy_check_url)
31
+ proxy_response.callback {
32
+ @proxy.should be_valid
33
+ EventMachine.stop
34
+ }
35
+ }
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require 'strawman/source'
3
+ require 'strawman/proxy'
4
+ require File.dirname(__FILE__) + '/mock_transport'
5
+
6
+ describe Strawman::TwitterSource do
7
+ before(:each) do
8
+ EventMachine::MockHttpRequest.reset_registry!
9
+ EventMachine::MockHttpRequest.reset_counts!
10
+ end
11
+
12
+ it "should fetch the data from a twitter user and parse the results" do
13
+ twitter_url = 'http://twitter.com:80/statuses/user_timeline/proxy_lists.json'
14
+ EventMachine::MockHttpRequest.register_file(twitter_url, :get,
15
+ File.join(File.dirname(__FILE__), 'fixtures', 'twitter'))
16
+ EventMachine.run {
17
+ source = Strawman::TwitterSource.new("proxy_lists", false)
18
+ source.callback {
19
+ source.proxies.size.should == 3
20
+ EventMachine.stop
21
+ }
22
+ }
23
+
24
+ end
25
+ end
@@ -2,21 +2,21 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{strawman}
5
- s.version = "0.4"
5
+ s.version = "0.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Matt Colyer"]
9
9
  s.cert_chain = ["/home/mcolyer/.ssh/gem-public_cert.pem"]
10
- s.date = %q{2010-02-21}
10
+ s.date = %q{2010-07-27}
11
11
  s.description = %q{Allows you fetch pages using glype proxies.}
12
12
  s.email = %q{matt @nospam@ colyer.name}
13
- s.extra_rdoc_files = ["README.rdoc", "lib/strawman.rb", "lib/strawman/http_request.rb", "lib/strawman/proxy.rb", "lib/strawman/proxy_list.rb", "lib/strawman/source.rb"]
14
- s.files = ["Manifest", "README.rdoc", "Rakefile", "examples/example.rb", "lib/strawman.rb", "lib/strawman/http_request.rb", "lib/strawman/proxy.rb", "lib/strawman/proxy_list.rb", "lib/strawman/source.rb", "strawman.gemspec"]
13
+ s.extra_rdoc_files = ["COPYING", "README.rdoc", "lib/strawman.rb", "lib/strawman/http_request.rb", "lib/strawman/proxy.rb", "lib/strawman/proxy_list.rb", "lib/strawman/source.rb", "lib/strawman/transport.rb"]
14
+ s.files = ["COPYING", "README.rdoc", "Rakefile", "examples/cache/proxy_sites.json", "examples/cache/twitter-proxy_sites.json", "examples/example.rb", "examples/proxies", "lib/strawman.rb", "lib/strawman/http_request.rb", "lib/strawman/proxy.rb", "lib/strawman/proxy_list.rb", "lib/strawman/source.rb", "lib/strawman/transport.rb", "spec/fixtures/proxy", "spec/fixtures/twitter", "spec/helper.rb", "spec/http_request_spec.rb", "spec/mock_transport.rb", "spec/proxy_list_spec.rb", "spec/proxy_spec.rb", "spec/source_spec.rb", "Manifest", "strawman.gemspec"]
15
15
  s.homepage = %q{http://github.com/mattcolyer/strawman}
16
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Strawman", "--main", "README.rdoc"]
17
17
  s.require_paths = ["lib"]
18
18
  s.rubyforge_project = %q{strawman}
19
- s.rubygems_version = %q{1.3.5}
19
+ s.rubygems_version = %q{1.3.7}
20
20
  s.signing_key = %q{/home/mcolyer/.ssh/gem-private_key.pem}
21
21
  s.summary = %q{Allows you fetch pages using glype proxies.}
22
22
 
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
25
  s.specification_version = 3
26
26
 
27
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
28
  s.add_runtime_dependency(%q<eventmachine>, [">= 0"])
29
29
  s.add_runtime_dependency(%q<em-http-request>, [">= 0"])
30
30
  s.add_runtime_dependency(%q<json>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strawman
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.4"
4
+ hash: 1
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 5
9
+ version: "0.5"
5
10
  platform: ruby
6
11
  authors:
7
12
  - Matt Colyer
@@ -30,49 +35,65 @@ cert_chain:
30
35
  anU=
31
36
  -----END CERTIFICATE-----
32
37
 
33
- date: 2010-02-21 00:00:00 -08:00
38
+ date: 2010-07-27 00:00:00 -07:00
34
39
  default_executable:
35
40
  dependencies:
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: eventmachine
38
- type: :runtime
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
43
+ prerelease: false
44
+ requirement: &id001 !ruby/object:Gem::Requirement
45
+ none: false
41
46
  requirements:
42
47
  - - ">="
43
48
  - !ruby/object:Gem::Version
49
+ hash: 3
50
+ segments:
51
+ - 0
44
52
  version: "0"
45
- version:
53
+ type: :runtime
54
+ version_requirements: *id001
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: em-http-request
48
- type: :runtime
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
57
+ prerelease: false
58
+ requirement: &id002 !ruby/object:Gem::Requirement
59
+ none: false
51
60
  requirements:
52
61
  - - ">="
53
62
  - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
54
66
  version: "0"
55
- version:
67
+ type: :runtime
68
+ version_requirements: *id002
56
69
  - !ruby/object:Gem::Dependency
57
70
  name: json
58
- type: :runtime
59
- version_requirement:
60
- version_requirements: !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ requirement: &id003 !ruby/object:Gem::Requirement
73
+ none: false
61
74
  requirements:
62
75
  - - ">="
63
76
  - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 0
64
80
  version: "0"
65
- version:
81
+ type: :runtime
82
+ version_requirements: *id003
66
83
  - !ruby/object:Gem::Dependency
67
84
  name: rspec
68
- type: :development
69
- version_requirement:
70
- version_requirements: !ruby/object:Gem::Requirement
85
+ prerelease: false
86
+ requirement: &id004 !ruby/object:Gem::Requirement
87
+ none: false
71
88
  requirements:
72
89
  - - ">="
73
90
  - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
74
94
  version: "0"
75
- version:
95
+ type: :development
96
+ version_requirements: *id004
76
97
  description: Allows you fetch pages using glype proxies.
77
98
  email: matt @nospam@ colyer.name
78
99
  executables: []
@@ -80,22 +101,37 @@ executables: []
80
101
  extensions: []
81
102
 
82
103
  extra_rdoc_files:
104
+ - COPYING
83
105
  - README.rdoc
84
106
  - lib/strawman.rb
85
107
  - lib/strawman/http_request.rb
86
108
  - lib/strawman/proxy.rb
87
109
  - lib/strawman/proxy_list.rb
88
110
  - lib/strawman/source.rb
111
+ - lib/strawman/transport.rb
89
112
  files:
90
- - Manifest
113
+ - COPYING
91
114
  - README.rdoc
92
115
  - Rakefile
116
+ - examples/cache/proxy_sites.json
117
+ - examples/cache/twitter-proxy_sites.json
93
118
  - examples/example.rb
119
+ - examples/proxies
94
120
  - lib/strawman.rb
95
121
  - lib/strawman/http_request.rb
96
122
  - lib/strawman/proxy.rb
97
123
  - lib/strawman/proxy_list.rb
98
124
  - lib/strawman/source.rb
125
+ - lib/strawman/transport.rb
126
+ - spec/fixtures/proxy
127
+ - spec/fixtures/twitter
128
+ - spec/helper.rb
129
+ - spec/http_request_spec.rb
130
+ - spec/mock_transport.rb
131
+ - spec/proxy_list_spec.rb
132
+ - spec/proxy_spec.rb
133
+ - spec/source_spec.rb
134
+ - Manifest
99
135
  - strawman.gemspec
100
136
  has_rdoc: true
101
137
  homepage: http://github.com/mattcolyer/strawman
@@ -112,21 +148,28 @@ rdoc_options:
112
148
  require_paths:
113
149
  - lib
114
150
  required_ruby_version: !ruby/object:Gem::Requirement
151
+ none: false
115
152
  requirements:
116
153
  - - ">="
117
154
  - !ruby/object:Gem::Version
155
+ hash: 3
156
+ segments:
157
+ - 0
118
158
  version: "0"
119
- version:
120
159
  required_rubygems_version: !ruby/object:Gem::Requirement
160
+ none: false
121
161
  requirements:
122
162
  - - ">="
123
163
  - !ruby/object:Gem::Version
164
+ hash: 11
165
+ segments:
166
+ - 1
167
+ - 2
124
168
  version: "1.2"
125
- version:
126
169
  requirements: []
127
170
 
128
171
  rubyforge_project: strawman
129
- rubygems_version: 1.3.5
172
+ rubygems_version: 1.3.7
130
173
  signing_key:
131
174
  specification_version: 3
132
175
  summary: Allows you fetch pages using glype proxies.
metadata.gz.sig CHANGED
Binary file