twitter 4.8.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +36 -0
- data/CONTRIBUTING.md +13 -15
- data/LICENSE.md +1 -1
- data/README.md +401 -261
- data/Rakefile +6 -0
- data/lib/twitter/arguments.rb +14 -0
- data/lib/twitter/base.rb +109 -89
- data/lib/twitter/client.rb +38 -115
- data/lib/twitter/configuration.rb +5 -2
- data/lib/twitter/core_ext/kernel.rb +5 -1
- data/lib/twitter/creatable.rb +7 -4
- data/lib/twitter/cursor.rb +57 -45
- data/lib/twitter/direct_message.rb +2 -11
- data/lib/twitter/entity/uri.rb +14 -0
- data/lib/twitter/enumerable.rb +15 -0
- data/lib/twitter/error/already_favorited.rb +1 -1
- data/lib/twitter/error/already_posted.rb +10 -0
- data/lib/twitter/error/already_retweeted.rb +1 -1
- data/lib/twitter/error/bad_gateway.rb +2 -3
- data/lib/twitter/error/bad_request.rb +2 -2
- data/lib/twitter/error/forbidden.rb +2 -2
- data/lib/twitter/error/gateway_timeout.rb +2 -3
- data/lib/twitter/error/internal_server_error.rb +2 -3
- data/lib/twitter/error/not_acceptable.rb +2 -2
- data/lib/twitter/error/not_found.rb +2 -2
- data/lib/twitter/error/service_unavailable.rb +2 -3
- data/lib/twitter/error/too_many_requests.rb +2 -2
- data/lib/twitter/error/unauthorized.rb +2 -2
- data/lib/twitter/error/unprocessable_entity.rb +2 -2
- data/lib/twitter/error.rb +65 -14
- data/lib/twitter/factory.rb +13 -12
- data/lib/twitter/geo.rb +2 -7
- data/lib/twitter/geo_factory.rb +11 -7
- data/lib/twitter/geo_results.rb +40 -0
- data/lib/twitter/identity.rb +4 -34
- data/lib/twitter/list.rb +21 -4
- data/lib/twitter/media/photo.rb +6 -4
- data/lib/twitter/media_factory.rb +11 -7
- data/lib/twitter/null_object.rb +25 -0
- data/lib/twitter/oembed.rb +3 -2
- data/lib/twitter/place.rb +15 -15
- data/lib/twitter/profile_banner.rb +3 -2
- data/lib/twitter/rate_limit.rb +4 -17
- data/lib/twitter/relationship.rb +2 -19
- data/lib/twitter/rest/api/direct_messages.rb +138 -0
- data/lib/twitter/rest/api/favorites.rb +115 -0
- data/lib/twitter/rest/api/friends_and_followers.rb +287 -0
- data/lib/twitter/rest/api/help.rb +58 -0
- data/lib/twitter/rest/api/lists.rb +498 -0
- data/lib/twitter/rest/api/oauth.rb +62 -0
- data/lib/twitter/rest/api/places_and_geo.rb +86 -0
- data/lib/twitter/rest/api/saved_searches.rb +93 -0
- data/lib/twitter/rest/api/search.rb +37 -0
- data/lib/twitter/rest/api/spam_reporting.rb +29 -0
- data/lib/twitter/rest/api/suggested_users.rb +51 -0
- data/lib/twitter/rest/api/timelines.rb +202 -0
- data/lib/twitter/rest/api/trends.rb +58 -0
- data/lib/twitter/rest/api/tweets.rb +291 -0
- data/lib/twitter/rest/api/undocumented.rb +52 -0
- data/lib/twitter/rest/api/users.rb +383 -0
- data/lib/twitter/rest/api/utils.rb +246 -0
- data/lib/twitter/rest/client.rb +175 -0
- data/lib/twitter/rest/request/multipart_with_file.rb +36 -0
- data/lib/twitter/rest/response/parse_error_json.rb +15 -0
- data/lib/twitter/rest/response/parse_json.rb +31 -0
- data/lib/twitter/{response → rest/response}/raise_error.rb +8 -11
- data/lib/twitter/search_results.rb +37 -21
- data/lib/twitter/settings.rb +1 -6
- data/lib/twitter/size.rb +2 -15
- data/lib/twitter/streaming/client.rb +89 -0
- data/lib/twitter/streaming/connection.rb +22 -0
- data/lib/twitter/streaming/event.rb +35 -0
- data/lib/twitter/streaming/friend_list.rb +13 -0
- data/lib/twitter/streaming/message_parser.rb +18 -0
- data/lib/twitter/streaming/response.rb +34 -0
- data/lib/twitter/suggestion.rb +5 -8
- data/lib/twitter/token.rb +11 -1
- data/lib/twitter/trend.rb +4 -8
- data/lib/twitter/trend_results.rb +65 -0
- data/lib/twitter/tweet.rb +43 -92
- data/lib/twitter/user.rb +72 -47
- data/lib/twitter/version.rb +4 -4
- data/lib/twitter.rb +4 -39
- data/spec/fixtures/already_posted.json +1 -0
- data/spec/fixtures/ids_list.json +1 -1
- data/spec/fixtures/ids_list2.json +1 -1
- data/spec/fixtures/request_token.txt +6 -0
- data/spec/fixtures/search.json +1 -1
- data/spec/fixtures/search_malformed.json +1 -1
- data/spec/fixtures/track_streaming.json +3 -0
- data/spec/fixtures/track_streaming_user.json +5 -0
- data/spec/helper.rb +8 -13
- data/spec/twitter/base_spec.rb +13 -103
- data/spec/twitter/basic_user_spec.rb +3 -3
- data/spec/twitter/configuration_spec.rb +1 -1
- data/spec/twitter/cursor_spec.rb +17 -35
- data/spec/twitter/direct_message_spec.rb +44 -11
- data/spec/twitter/entity/uri_spec.rb +75 -0
- data/spec/twitter/error_spec.rb +59 -11
- data/spec/twitter/geo/point_spec.rb +6 -6
- data/spec/twitter/geo/polygon_spec.rb +5 -5
- data/spec/twitter/geo_factory_spec.rb +4 -4
- data/spec/twitter/geo_results_spec.rb +35 -0
- data/spec/twitter/geo_spec.rb +6 -6
- data/spec/twitter/identifiable_spec.rb +5 -26
- data/spec/twitter/list_spec.rb +54 -11
- data/spec/twitter/media/photo_spec.rb +122 -6
- data/spec/twitter/media_factory_spec.rb +3 -3
- data/spec/twitter/null_object_spec.rb +27 -0
- data/spec/twitter/oembed_spec.rb +69 -45
- data/spec/twitter/place_spec.rb +84 -28
- data/spec/twitter/profile_banner_spec.rb +1 -1
- data/spec/twitter/rate_limit_spec.rb +8 -25
- data/spec/twitter/relationship_spec.rb +26 -12
- data/spec/twitter/{api → rest/api}/direct_messages_spec.rb +28 -15
- data/spec/twitter/{api → rest/api}/favorites_spec.rb +80 -7
- data/spec/twitter/{api → rest/api}/friends_and_followers_spec.rb +121 -152
- data/spec/twitter/{api → rest/api}/geo_spec.rb +9 -23
- data/spec/twitter/{api → rest/api}/help_spec.rb +6 -6
- data/spec/twitter/{api → rest/api}/lists_spec.rb +116 -95
- data/spec/twitter/{api → rest/api}/oauth_spec.rb +21 -10
- data/spec/twitter/{api → rest/api}/saved_searches_spec.rb +13 -13
- data/spec/twitter/{api → rest/api}/search_spec.rb +8 -9
- data/spec/twitter/{api → rest/api}/spam_reporting_spec.rb +3 -3
- data/spec/twitter/{api → rest/api}/suggested_users_spec.rb +5 -5
- data/spec/twitter/{api → rest/api}/timelines_spec.rb +9 -9
- data/spec/twitter/{api → rest/api}/trends_spec.rb +6 -6
- data/spec/twitter/rest/api/tweets_spec.rb +503 -0
- data/spec/twitter/{api → rest/api}/undocumented_spec.rb +19 -45
- data/spec/twitter/{api → rest/api}/users_spec.rb +64 -39
- data/spec/twitter/rest/client_spec.rb +193 -0
- data/spec/twitter/saved_search_spec.rb +14 -3
- data/spec/twitter/search_results_spec.rb +32 -45
- data/spec/twitter/settings_spec.rb +17 -6
- data/spec/twitter/size_spec.rb +5 -15
- data/spec/twitter/source_user_spec.rb +3 -3
- data/spec/twitter/streaming/client_spec.rb +92 -0
- data/spec/twitter/streaming/event_spec.rb +45 -0
- data/spec/twitter/suggestion_spec.rb +5 -15
- data/spec/twitter/target_user_spec.rb +3 -3
- data/spec/twitter/token_spec.rb +16 -0
- data/spec/twitter/trend_results_spec.rb +89 -0
- data/spec/twitter/trend_spec.rb +26 -13
- data/spec/twitter/tweet_spec.rb +137 -124
- data/spec/twitter/user_spec.rb +139 -80
- data/spec/twitter_spec.rb +0 -119
- data/twitter.gemspec +12 -6
- data.tar.gz.sig +0 -0
- metadata +197 -138
- metadata.gz.sig +0 -0
- data/lib/twitter/action/favorite.rb +0 -19
- data/lib/twitter/action/follow.rb +0 -30
- data/lib/twitter/action/list_member_added.rb +0 -39
- data/lib/twitter/action/mention.rb +0 -46
- data/lib/twitter/action/reply.rb +0 -27
- data/lib/twitter/action/retweet.rb +0 -27
- data/lib/twitter/action/tweet.rb +0 -20
- data/lib/twitter/action_factory.rb +0 -22
- data/lib/twitter/api/arguments.rb +0 -13
- data/lib/twitter/api/direct_messages.rb +0 -148
- data/lib/twitter/api/favorites.rb +0 -126
- data/lib/twitter/api/friends_and_followers.rb +0 -334
- data/lib/twitter/api/help.rb +0 -64
- data/lib/twitter/api/lists.rb +0 -618
- data/lib/twitter/api/oauth.rb +0 -44
- data/lib/twitter/api/places_and_geo.rb +0 -121
- data/lib/twitter/api/saved_searches.rb +0 -99
- data/lib/twitter/api/search.rb +0 -37
- data/lib/twitter/api/spam_reporting.rb +0 -30
- data/lib/twitter/api/suggested_users.rb +0 -55
- data/lib/twitter/api/timelines.rb +0 -214
- data/lib/twitter/api/trends.rb +0 -63
- data/lib/twitter/api/tweets.rb +0 -304
- data/lib/twitter/api/undocumented.rb +0 -97
- data/lib/twitter/api/users.rb +0 -439
- data/lib/twitter/api/utils.rb +0 -187
- data/lib/twitter/configurable.rb +0 -96
- data/lib/twitter/default.rb +0 -102
- data/lib/twitter/entity/url.rb +0 -9
- data/lib/twitter/error/client_error.rb +0 -35
- data/lib/twitter/error/decode_error.rb +0 -9
- data/lib/twitter/error/identity_map_key_error.rb +0 -9
- data/lib/twitter/error/server_error.rb +0 -28
- data/lib/twitter/exceptable.rb +0 -36
- data/lib/twitter/identity_map.rb +0 -22
- data/lib/twitter/request/multipart_with_file.rb +0 -34
- data/lib/twitter/response/parse_json.rb +0 -25
- data/spec/fixtures/about_me.json +0 -1
- data/spec/fixtures/activity_summary.json +0 -1
- data/spec/fixtures/bad_gateway.json +0 -1
- data/spec/fixtures/bad_request.json +0 -1
- data/spec/fixtures/by_friends.json +0 -1
- data/spec/fixtures/end_session.json +0 -1
- data/spec/fixtures/forbidden.json +0 -1
- data/spec/fixtures/internal_server_error.json +0 -1
- data/spec/fixtures/not_acceptable.json +0 -1
- data/spec/fixtures/phoenix_search.phoenix +0 -1
- data/spec/fixtures/resolve.json +0 -1
- data/spec/fixtures/service_unavailable.json +0 -1
- data/spec/fixtures/totals.json +0 -1
- data/spec/fixtures/trends.json +0 -1
- data/spec/fixtures/unauthorized.json +0 -1
- data/spec/fixtures/video_facets.json +0 -1
- data/spec/twitter/action/favorite_spec.rb +0 -29
- data/spec/twitter/action/follow_spec.rb +0 -29
- data/spec/twitter/action/list_member_added_spec.rb +0 -41
- data/spec/twitter/action/mention_spec.rb +0 -52
- data/spec/twitter/action/reply_spec.rb +0 -41
- data/spec/twitter/action/retweet_spec.rb +0 -41
- data/spec/twitter/action_factory_spec.rb +0 -35
- data/spec/twitter/action_spec.rb +0 -16
- data/spec/twitter/api/tweets_spec.rb +0 -285
- data/spec/twitter/client_spec.rb +0 -223
- data/spec/twitter/error/client_error_spec.rb +0 -23
- data/spec/twitter/error/server_error_spec.rb +0 -20
data/lib/twitter/configurable.rb
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
|
-
require 'twitter/default'
|
|
3
|
-
require 'twitter/error/configuration_error'
|
|
4
|
-
|
|
5
|
-
module Twitter
|
|
6
|
-
module Configurable
|
|
7
|
-
extend Forwardable
|
|
8
|
-
attr_writer :consumer_secret, :oauth_token, :oauth_token_secret, :bearer_token
|
|
9
|
-
attr_accessor :consumer_key, :endpoint, :connection_options, :identity_map, :middleware
|
|
10
|
-
def_delegator :options, :hash
|
|
11
|
-
|
|
12
|
-
class << self
|
|
13
|
-
|
|
14
|
-
def keys
|
|
15
|
-
@keys ||= [
|
|
16
|
-
:consumer_key,
|
|
17
|
-
:consumer_secret,
|
|
18
|
-
:oauth_token,
|
|
19
|
-
:oauth_token_secret,
|
|
20
|
-
:bearer_token,
|
|
21
|
-
:endpoint,
|
|
22
|
-
:connection_options,
|
|
23
|
-
:identity_map,
|
|
24
|
-
:middleware,
|
|
25
|
-
]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Convenience method to allow configuration options to be set in a block
|
|
31
|
-
#
|
|
32
|
-
# @raise [Twitter::Error::ConfigurationError] Error is raised when supplied
|
|
33
|
-
# twitter credentials are not a String or Symbol.
|
|
34
|
-
def configure
|
|
35
|
-
yield self
|
|
36
|
-
validate_credential_type!
|
|
37
|
-
self
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def reset!
|
|
41
|
-
Twitter::Configurable.keys.each do |key|
|
|
42
|
-
instance_variable_set(:"@#{key}", Twitter::Default.options[key])
|
|
43
|
-
end
|
|
44
|
-
self
|
|
45
|
-
end
|
|
46
|
-
alias setup reset!
|
|
47
|
-
|
|
48
|
-
# @return [Boolean]
|
|
49
|
-
def user_token?
|
|
50
|
-
!!(@oauth_token && @oauth_token_secret)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# @return [Boolean]
|
|
54
|
-
def bearer_token?
|
|
55
|
-
!!@bearer_token
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# @return [Boolean]
|
|
59
|
-
def credentials?
|
|
60
|
-
credentials.values.all? || bearer_token?
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
private
|
|
64
|
-
|
|
65
|
-
# @return [Hash]
|
|
66
|
-
def credentials
|
|
67
|
-
{
|
|
68
|
-
:consumer_key => @consumer_key,
|
|
69
|
-
:consumer_secret => @consumer_secret,
|
|
70
|
-
:token => @oauth_token,
|
|
71
|
-
:token_secret => @oauth_token_secret,
|
|
72
|
-
}
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# @return [Hash]
|
|
76
|
-
def options
|
|
77
|
-
Hash[Twitter::Configurable.keys.map{|key| [key, instance_variable_get(:"@#{key}")]}]
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
# Ensures that all credentials set during configuration are of a
|
|
81
|
-
# valid type. Valid types are String and Symbol.
|
|
82
|
-
#
|
|
83
|
-
# @raise [Twitter::Error::ConfigurationError] Error is raised when
|
|
84
|
-
# supplied twitter credentials are not a String or Symbol.
|
|
85
|
-
def validate_credential_type!
|
|
86
|
-
credentials.each do |credential, value|
|
|
87
|
-
next if value.nil?
|
|
88
|
-
|
|
89
|
-
unless value.is_a?(String) || value.is_a?(Symbol)
|
|
90
|
-
raise(Error::ConfigurationError, "Invalid #{credential} specified: #{value} must be a string or symbol.")
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
end
|
|
96
|
-
end
|
data/lib/twitter/default.rb
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
require 'faraday'
|
|
2
|
-
require 'faraday/request/multipart'
|
|
3
|
-
require 'twitter/configurable'
|
|
4
|
-
require 'twitter/error/client_error'
|
|
5
|
-
require 'twitter/error/server_error'
|
|
6
|
-
require 'twitter/request/multipart_with_file'
|
|
7
|
-
require 'twitter/response/parse_json'
|
|
8
|
-
require 'twitter/response/raise_error'
|
|
9
|
-
require 'twitter/version'
|
|
10
|
-
|
|
11
|
-
module Twitter
|
|
12
|
-
module Default
|
|
13
|
-
ENDPOINT = 'https://api.twitter.com' unless defined? Twitter::Default::ENDPOINT
|
|
14
|
-
CONNECTION_OPTIONS = {
|
|
15
|
-
:headers => {
|
|
16
|
-
:accept => 'application/json',
|
|
17
|
-
:user_agent => "Twitter Ruby Gem #{Twitter::Version}",
|
|
18
|
-
},
|
|
19
|
-
:request => {
|
|
20
|
-
:open_timeout => 5,
|
|
21
|
-
:timeout => 10,
|
|
22
|
-
},
|
|
23
|
-
} unless defined? Twitter::Default::CONNECTION_OPTIONS
|
|
24
|
-
IDENTITY_MAP = false unless defined? Twitter::Default::IDENTITY_MAP
|
|
25
|
-
MIDDLEWARE = Faraday::Builder.new do |builder|
|
|
26
|
-
# Convert file uploads to Faraday::UploadIO objects
|
|
27
|
-
builder.use Twitter::Request::MultipartWithFile
|
|
28
|
-
# Checks for files in the payload
|
|
29
|
-
builder.use Faraday::Request::Multipart
|
|
30
|
-
# Convert request params to "www-form-urlencoded"
|
|
31
|
-
builder.use Faraday::Request::UrlEncoded
|
|
32
|
-
# Handle 4xx server responses
|
|
33
|
-
builder.use Twitter::Response::RaiseError, Twitter::Error::ClientError
|
|
34
|
-
# Parse JSON response bodies using MultiJson
|
|
35
|
-
builder.use Twitter::Response::ParseJson
|
|
36
|
-
# Handle 5xx server responses
|
|
37
|
-
builder.use Twitter::Response::RaiseError, Twitter::Error::ServerError
|
|
38
|
-
# Set Faraday's HTTP adapter
|
|
39
|
-
builder.adapter Faraday.default_adapter
|
|
40
|
-
end unless defined? Twitter::Default::MIDDLEWARE
|
|
41
|
-
|
|
42
|
-
class << self
|
|
43
|
-
|
|
44
|
-
# @return [Hash]
|
|
45
|
-
def options
|
|
46
|
-
Hash[Twitter::Configurable.keys.map{|key| [key, send(key)]}]
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# @return [String]
|
|
50
|
-
def consumer_key
|
|
51
|
-
ENV['TWITTER_CONSUMER_KEY']
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
# @return [String]
|
|
55
|
-
def consumer_secret
|
|
56
|
-
ENV['TWITTER_CONSUMER_SECRET']
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @return [String]
|
|
60
|
-
def oauth_token
|
|
61
|
-
ENV['TWITTER_OAUTH_TOKEN']
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# @return [String]
|
|
65
|
-
def oauth_token_secret
|
|
66
|
-
ENV['TWITTER_OAUTH_TOKEN_SECRET']
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
# @return [String]
|
|
70
|
-
def bearer_token
|
|
71
|
-
ENV['TWITTER_BEARER_TOKEN']
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
# @note This is configurable in case you want to use a Twitter-compatible endpoint.
|
|
75
|
-
# @see http://status.net/wiki/Twitter-compatible_API
|
|
76
|
-
# @see http://en.blog.wordpress.com/2009/12/12/twitter-api/
|
|
77
|
-
# @see http://staff.tumblr.com/post/287703110/api
|
|
78
|
-
# @see http://developer.typepad.com/typepad-twitter-api/twitter-api.html
|
|
79
|
-
# @return [String]
|
|
80
|
-
def endpoint
|
|
81
|
-
ENDPOINT
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def connection_options
|
|
85
|
-
CONNECTION_OPTIONS
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def identity_map
|
|
89
|
-
IDENTITY_MAP
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
# @note Faraday's middleware stack implementation is comparable to that of Rack middleware. The order of middleware is important: the first middleware on the list wraps all others, while the last middleware is the innermost one.
|
|
93
|
-
# @see https://github.com/technoweenie/faraday#advanced-middleware-usage
|
|
94
|
-
# @see http://mislav.uniqpath.com/2011/07/faraday-advanced-http/
|
|
95
|
-
# @return [Faraday::Builder]
|
|
96
|
-
def middleware
|
|
97
|
-
MIDDLEWARE
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
data/lib/twitter/entity/url.rb
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
require 'twitter/error'
|
|
2
|
-
|
|
3
|
-
module Twitter
|
|
4
|
-
class Error
|
|
5
|
-
# Raised when Twitter returns a 4xx HTTP status code or there's an error in Faraday
|
|
6
|
-
class ClientError < Twitter::Error
|
|
7
|
-
|
|
8
|
-
# Create a new error from an HTTP environment
|
|
9
|
-
#
|
|
10
|
-
# @param response [Hash]
|
|
11
|
-
# @return [Twitter::Error]
|
|
12
|
-
def self.from_response(response={})
|
|
13
|
-
new(parse_error(response[:body]), response[:response_headers])
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
def self.parse_error(body)
|
|
19
|
-
if body.nil?
|
|
20
|
-
''
|
|
21
|
-
elsif body[:error]
|
|
22
|
-
body[:error]
|
|
23
|
-
elsif body[:errors]
|
|
24
|
-
first = Array(body[:errors]).first
|
|
25
|
-
if first.is_a?(Hash)
|
|
26
|
-
first[:message].chomp
|
|
27
|
-
else
|
|
28
|
-
first.chomp
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require 'twitter/error'
|
|
2
|
-
|
|
3
|
-
module Twitter
|
|
4
|
-
class Error
|
|
5
|
-
# Raised when Twitter returns a 5xx HTTP status code
|
|
6
|
-
class ServerError < Twitter::Error
|
|
7
|
-
MESSAGE = "Server Error"
|
|
8
|
-
|
|
9
|
-
# Create a new error from an HTTP environment
|
|
10
|
-
#
|
|
11
|
-
# @param response [Hash]
|
|
12
|
-
# @return [Twitter::Error]
|
|
13
|
-
def self.from_response(response={})
|
|
14
|
-
new(nil, response[:response_headers])
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Initializes a new ServerError object
|
|
18
|
-
#
|
|
19
|
-
# @param message [String]
|
|
20
|
-
# @param response_headers [Hash]
|
|
21
|
-
# @return [Twitter::Error::ServerError]
|
|
22
|
-
def initialize(message=nil, response_headers={})
|
|
23
|
-
super((message || self.class.const_get(:MESSAGE)), response_headers)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
data/lib/twitter/exceptable.rb
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Twitter
|
|
2
|
-
module Exceptable
|
|
3
|
-
|
|
4
|
-
private
|
|
5
|
-
|
|
6
|
-
# Return a hash that includes everything but the given keys.
|
|
7
|
-
#
|
|
8
|
-
# @param klass [Class]
|
|
9
|
-
# @param hash [Hash]
|
|
10
|
-
# @param key1 [Symbol]
|
|
11
|
-
# @param key2 [Symbol]
|
|
12
|
-
def fetch_or_new_without_self(klass, hash, key1, key2)
|
|
13
|
-
klass.fetch_or_new(hash.dup[key1].merge(key2 => except(hash, key1))) unless hash[key1].nil?
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Return a hash that includes everything but the given keys.
|
|
17
|
-
#
|
|
18
|
-
# @param hash [Hash]
|
|
19
|
-
# @param key [Symbol]
|
|
20
|
-
# @return [Hash]
|
|
21
|
-
def except(hash, key)
|
|
22
|
-
except!(hash.dup, key)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Replaces the hash without the given keys.
|
|
26
|
-
#
|
|
27
|
-
# @param hash [Hash]
|
|
28
|
-
# @param key [Symbol]
|
|
29
|
-
# @return [Hash]
|
|
30
|
-
def except!(hash, key)
|
|
31
|
-
hash.delete(key)
|
|
32
|
-
hash
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
end
|
|
36
|
-
end
|
data/lib/twitter/identity_map.rb
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Twitter
|
|
2
|
-
|
|
3
|
-
# Tracks objects to help ensure that each object gets loaded only once.
|
|
4
|
-
# See: http://www.martinfowler.com/eaaCatalog/identityMap.html
|
|
5
|
-
class IdentityMap < Hash
|
|
6
|
-
|
|
7
|
-
# @param id
|
|
8
|
-
# @return [Object]
|
|
9
|
-
def fetch(id)
|
|
10
|
-
self[id]
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# @param id
|
|
14
|
-
# @param object
|
|
15
|
-
# @return [Object]
|
|
16
|
-
def store(id, object)
|
|
17
|
-
self[id] = object
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
require 'faraday'
|
|
2
|
-
|
|
3
|
-
module Twitter
|
|
4
|
-
module Request
|
|
5
|
-
class MultipartWithFile < Faraday::Middleware
|
|
6
|
-
CONTENT_TYPE = 'Content-Type'
|
|
7
|
-
|
|
8
|
-
def call(env)
|
|
9
|
-
env[:body].each do |key, value|
|
|
10
|
-
if value.respond_to?(:to_io)
|
|
11
|
-
env[:body][key] = Faraday::UploadIO.new(value, mime_type(value.path), value.path)
|
|
12
|
-
end
|
|
13
|
-
end if env[:body].is_a?(::Hash)
|
|
14
|
-
@app.call(env)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
def mime_type(path)
|
|
20
|
-
case path
|
|
21
|
-
when /\.jpe?g/i
|
|
22
|
-
'image/jpeg'
|
|
23
|
-
when /\.gif$/i
|
|
24
|
-
'image/gif'
|
|
25
|
-
when /\.png$/i
|
|
26
|
-
'image/png'
|
|
27
|
-
else
|
|
28
|
-
'application/octet-stream'
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
require 'faraday'
|
|
2
|
-
require 'multi_json'
|
|
3
|
-
|
|
4
|
-
module Twitter
|
|
5
|
-
module Response
|
|
6
|
-
class ParseJson < Faraday::Response::Middleware
|
|
7
|
-
|
|
8
|
-
def parse(body)
|
|
9
|
-
case body
|
|
10
|
-
when /\A^\s*$\z/, nil
|
|
11
|
-
nil
|
|
12
|
-
else
|
|
13
|
-
MultiJson.decode(body, :symbolize_keys => true)
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def on_complete(env)
|
|
18
|
-
if respond_to?(:parse)
|
|
19
|
-
env[:body] = parse(env[:body]) unless [204, 301, 302, 304].include?(env[:status])
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/spec/fixtures/about_me.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"action":"mention","max_position":"1320765311071","min_position":"1320765311071","created_at":"Tue Nov 08 15:15:11 +0000 2011","target_objects":[{"contributors":null,"place":null,"geo":null,"coordinates":null,"favorited":false,"user":{"show_all_inline_media":false,"profile_link_color":"0084B4","protected":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1080492495\/3f66ecd36e8f6bdac9f0bf79770a40b7_normal.jpeg","screen_name":"pat_shaughnessy","listed_count":5,"url":"http:\/\/patshaughnessy.net","name":"Pat Shaughnessy","time_zone":"Eastern Time (US & Canada)","profile_background_color":"C0DEED","follow_request_sent":false,"statuses_count":322,"profile_background_tile":false,"utc_offset":-18000,"followers_count":95,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1080492495\/3f66ecd36e8f6bdac9f0bf79770a40b7_normal.jpeg","description":"Boston based Rails developer","following":false,"geo_enabled":false,"profile_sidebar_fill_color":"DDEEF6","default_profile_image":false,"verified":false,"created_at":"Fri May 29 00:55:48 +0000 2009","friends_count":124,"profile_sidebar_border_color":"C0DEED","is_translator":false,"notifications":false,"default_profile":true,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":2,"id_str":"43234200","contributors_enabled":false,"profile_text_color":"333333","id":43234200,"lang":"en","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","location":"Boston"},"retweet_count":0,"in_reply_to_screen_name":null,"created_at":"Tue Nov 08 15:15:11 +0000 2011","retweeted":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"source":"\u003Ca href=\"http:\/\/itunes.apple.com\/us\/app\/twitter\/id409789998?mt=12\" rel=\"nofollow\"\u003ETwitter for Mac\u003C\/a\u003E","id_str":"133925537742729216","truncated":false,"id":133925537742729216,"in_reply_to_user_id_str":null,"in_reply_to_user_id":null,"text":"I'm happy to document all the great work in Bundler 1.1 from @carllerche @hone02 @indirect @sferik wagenet and @wycats and many others!"}],"target_objects_size":1,"targets":[{"show_all_inline_media":true,"profile_link_color":"0084B4","protected":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1279736243\/Github_Square_normal.jpg","screen_name":"sferik","listed_count":97,"url":"https:\/\/github.com\/sferik","name":"Erik Michaels-Ober","time_zone":"Pacific Time (US & Canada)","profile_background_color":"000000","follow_request_sent":false,"statuses_count":5595,"profile_background_tile":false,"utc_offset":-28800,"followers_count":1770,"profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1279736243\/Github_Square_normal.jpg","description":"I'm just a soul whose intentions are good.","following":false,"geo_enabled":true,"profile_sidebar_fill_color":"DDEEF6","default_profile_image":false,"verified":false,"created_at":"Mon Jul 16 12:59:01 +0000 2007","friends_count":198,"status":{"contributors":null,"place":null,"retweeted_status":{"contributors":null,"place":null,"geo":null,"coordinates":null,"favorited":false,"possibly_sensitive":false,"retweet_count":1,"in_reply_to_screen_name":null,"created_at":"Tue Nov 08 18:40:18 +0000 2011","retweeted":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"source":"\u003Ca href=\"http:\/\/itunes.apple.com\/us\/app\/twitter\/id409789998?mt=12\" rel=\"nofollow\"\u003ETwitter for Mac\u003C\/a\u003E","id_str":"133977160280047616","truncated":false,"id":133977160280047616,"in_reply_to_user_id_str":null,"in_reply_to_user_id":null,"text":"I shouldn't be surprised but I am: http:\/\/t.co\/tSmSGuLL"},"geo":null,"coordinates":null,"favorited":false,"possibly_sensitive":false,"retweet_count":1,"in_reply_to_screen_name":null,"created_at":"Tue Nov 08 19:21:40 +0000 2011","retweeted":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"source":"\u003Ca href=\"http:\/\/itunes.apple.com\/us\/app\/twitter\/id409789998?mt=12\" rel=\"nofollow\"\u003ETwitter for Mac\u003C\/a\u003E","id_str":"133987568969719808","truncated":false,"id":133987568969719808,"in_reply_to_user_id_str":null,"in_reply_to_user_id":null,"text":"RT @timtrueman: I shouldn't be surprised but I am: http:\/\/t.co\/tSmSGuLL"},"profile_sidebar_border_color":"C0DEED","is_translator":false,"notifications":false,"default_profile":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","favourites_count":2070,"id_str":"7505382","contributors_enabled":false,"profile_text_color":"333333","id":7505382,"lang":"en","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","location":"San Francisco"}],"targets_size":1,"sources":[{"show_all_inline_media":false,"profile_link_color":"0084B4","protected":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1080492495\/3f66ecd36e8f6bdac9f0bf79770a40b7_normal.jpeg","screen_name":"pat_shaughnessy","listed_count":5,"url":"http:\/\/patshaughnessy.net","name":"Pat Shaughnessy","time_zone":"Eastern Time (US & Canada)","profile_background_color":"C0DEED","follow_request_sent":false,"statuses_count":322,"profile_background_tile":false,"utc_offset":-18000,"followers_count":95,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1080492495\/3f66ecd36e8f6bdac9f0bf79770a40b7_normal.jpeg","description":"Boston based Rails developer","following":false,"geo_enabled":false,"profile_sidebar_fill_color":"DDEEF6","default_profile_image":false,"verified":false,"created_at":"Fri May 29 00:55:48 +0000 2009","friends_count":124,"profile_sidebar_border_color":"C0DEED","is_translator":false,"notifications":false,"default_profile":true,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","favourites_count":2,"id_str":"43234200","contributors_enabled":false,"profile_text_color":"333333","id":43234200,"lang":"en","profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","location":"Boston"}],"sources_size":1}]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"retweeters_count":"1","repliers":[15395778],"retweeters":[5407632],"favoriters_count":"2","repliers_count":"1","favoriters":[5407632,15395778]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Bad Gateway","request":"/1/statuses/show/1.json"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Bad Request","request":"/1/statuses/show/1.json"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"action":"favorite","max_position":"1320794149280","min_position":"1320718679267","created_at":"Tue Nov 08 23:15:49 +0000 2011","target_objects":[],"target_objects_size":0,"targets":[{"contributors":null,"place":null,"geo":null,"coordinates":null,"favorited":false,"user":{"show_all_inline_media":true,"profile_link_color":"ba26b7","protected":false,"profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1338286448\/Josh_IN_Headshot_Touched_Up_1200_Colored_Cropped_square_normal.jpg","screen_name":"JoshConstine","listed_count":80,"url":"http:\/\/about.me\/joshconstine","name":"Josh Constine","time_zone":"Pacific Time (US & Canada)","profile_background_color":"469cfb","default_profile":false,"follow_request_sent":false,"statuses_count":2688,"profile_background_tile":true,"utc_offset":-28800,"followers_count":1513,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1338286448\/Josh_IN_Headshot_Touched_Up_1200_Colored_Cropped_square_normal.jpg","description":"Writer for TechCrunch, Stanford M.A. in Cybersociology, culture omnivorre. I bring the truth with swag. Subscribe on FB: http:\/\/www.facebook.com\/JoshConstine","following":false,"geo_enabled":true,"profile_sidebar_fill_color":"fbc67e","default_profile_image":false,"verified":false,"created_at":"Mon Jan 26 22:41:23 +0000 2009","friends_count":388,"profile_sidebar_border_color":"c3f4d4","is_translator":false,"notifications":false,"profile_use_background_image":true,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/4174813\/Furit_Loops_Twitter_700.jpeg","favourites_count":1929,"id_str":"19563366","contributors_enabled":false,"profile_text_color":"333333","id":19563366,"lang":"en","profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/4174813\/Furit_Loops_Twitter_700.jpeg","location":"Mission SF, CA"},"retweet_count":1,"in_reply_to_screen_name":null,"created_at":"Tue Nov 08 21:45:29 +0000 2011","retweeted":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"source":"web","id_str":"134023760025104385","truncated":false,"id":134023760025104385,"in_reply_to_user_id_str":null,"in_reply_to_user_id":null,"text":"I hate percentage growth stats. They're like graphs without the axes labeled, something you'd use to fool children."}],"sources_size":1}]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Logged out.","request":"\/1\/account\/end_session.json"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Forbidden","request":"/1/statuses/update.json"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Internal Server Error","request":"/1/statuses/show/1.json"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Not Acceptable","request":"/search.json?q=from%3Asferik"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"statuses":[{"id_str":"110059784971096066","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"66561957","notifications":false,"profile_background_tile":false,"screen_name":"therealzooeyd","name":"zooey deschanel","listed_count":9165,"location":"somewhere pretty awesome...","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-28800,"profile_link_color":"0084B4","description":"where do I begin?","profile_sidebar_border_color":"C0DEED","url":"http:\/\/www.sheandhim.com","time_zone":"Pacific Time (US & Canada)","default_profile_image":false,"statuses_count":1864,"profile_use_background_image":true,"verified":true,"favourites_count":2,"friends_count":355,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/178865861\/Zooey_12.jpg","created_at":"Tue Aug 18 01:55:35 +0000 2009","followers_count":561263,"default_profile":false,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/178865861\/Zooey_12.jpg","id":66561957,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1284004687\/zuzu_and_caleb_at_the_camera_normal.jpg","profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1284004687\/zuzu_and_caleb_at_the_camera_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 18:41:12 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":"100+","id":110059784971096066,"place":null,"text":"looking at twitter trends just makes me realize how little i really understand about mankind.","result_category":"popular"},{"id_str":"110102452983963648","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"91720294","notifications":false,"profile_background_tile":true,"screen_name":"I_am_Chicago1","name":"Cortney Bell ","listed_count":10,"location":"#Pvnation ","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":true,"utc_offset":-21600,"profile_link_color":"0084B4","description":"follow me ... and @ me for more info about me ... i love talking ","default_profile":false,"profile_sidebar_border_color":"C0DEED","url":null,"time_zone":"Central Time (US & Canada)","default_profile_image":false,"statuses_count":15916,"profile_use_background_image":true,"verified":false,"favourites_count":30,"friends_count":1382,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/313661881\/230924_10150575103000392_886675391_18447865_3396753_n.jpg","created_at":"Sun Nov 22 04:12:38 +0000 2009","followers_count":1455,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/313661881\/230924_10150575103000392_886675391_18447865_3396753_n.jpg","id":91720294,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1500420758\/26726_10150132149850392_886675391_11511035_325929_n_normal.jpg","profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1500420758\/26726_10150132149850392_886675391_11511035_325929_n_normal.jpg"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:45 +0000 2011","entities":{"user_mentions":[],"urls":[],"media":[{"type":"photo","id_str":"110102452988157952","display_url":"pic.twitter.com\/tImqsGy","expanded_url":"http:\/\/twitter.com\/I_am_Chicago1\/status\/110102452983963648\/photo\/1","media_url_https":"https:\/\/p.twimg.com\/AYcpmP9CIAAJpsR.jpg","url":"http:\/\/t.co\/tImqsGy","indices":[15,34],"sizes":{"small":{"h":98,"w":130,"resize":"fit"},"large":{"h":98,"w":130,"resize":"fit"},"thumb":{"h":98,"w":130,"resize":"crop"},"medium":{"h":98,"w":130,"resize":"fit"}},"id":110102452988157952,"media_url":"http:\/\/p.twimg.com\/AYcpmP9CIAAJpsR.jpg"}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102452983963648,"place":null,"text":"this shit Cray http:\/\/t.co\/tImqsGy","result_category":"recent"},{"id_str":"110102452937834496","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"F3F3F3","protected":false,"id_str":"29248413","notifications":false,"profile_background_tile":false,"screen_name":"trinbeean","name":"Trina","listed_count":0,"location":"Everywhere I wanna be","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-18000,"profile_link_color":"990000","description":"Wats UNDERSTOOD dnt gota be EXPLAINED!!","profile_sidebar_border_color":"DFDFDF","url":null,"time_zone":"Eastern Time (US & Canada)","default_profile_image":false,"default_profile":false,"statuses_count":13064,"profile_use_background_image":true,"verified":false,"favourites_count":8,"friends_count":220,"profile_background_color":"EBEBEB","is_translator":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme7\/bg.gif","created_at":"Mon Apr 06 17:34:14 +0000 2009","followers_count":133,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme7\/bg.gif","id":29248413,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1493286924\/trinbeean_normal.jpg","profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1493286924\/trinbeean_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/levelupstudio.com\" rel=\"nofollow\"\u003EPlume\u00a0\u00a0\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:45 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102452937834496,"place":null,"text":"Damn my phone n my twitter ain't jumped all day...nobodys fukkin wit me?! Smh","result_category":"recent"},{"id_str":"110102452656816129","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"315338037","notifications":null,"profile_background_tile":false,"screen_name":"h1940","name":"Hans Greup","default_profile":true,"listed_count":0,"location":null,"show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":false,"utc_offset":null,"profile_link_color":"0084B4","description":null,"profile_sidebar_border_color":"C0DEED","url":null,"time_zone":null,"default_profile_image":true,"statuses_count":1,"profile_use_background_image":true,"verified":false,"favourites_count":0,"friends_count":3,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","created_at":"Sat Jun 11 18:05:53 +0000 2011","followers_count":0,"follow_request_sent":null,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","id":315338037,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_0_normal.png","profile_image_url":"http:\/\/a3.twimg.com\/sticky\/default_profile_images\/default_profile_0_normal.png"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003EMobile Web\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[{"display_url":"goo.gl\/TDs5Y?kylo","expanded_url":"http:\/\/goo.gl\/TDs5Y?kylo","url":"http:\/\/t.co\/9EhL4KF","indices":[53,72]}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102452656816129,"place":null,"text":"I just made $577 today working a few hour from home http:\/\/t.co\/9EhL4KF","result_category":"recent"},{"id_str":"110102452191248384","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"f6ce93","protected":false,"id_str":"243420776","notifications":false,"profile_background_tile":false,"screen_name":"DenisFariias","name":" Denis Farias","default_profile":false,"listed_count":0,"location":"","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":null,"profile_link_color":"825421","description":"tourino, shato pra caralho, amig\u00e3o, olhos verdes, americano e vascaino fanatico, futebol, forro, festa... Msn: denis_fariaschagas@hotmail.com \r\n","profile_sidebar_border_color":"000000","url":null,"time_zone":null,"default_profile_image":false,"statuses_count":995,"profile_use_background_image":true,"verified":false,"favourites_count":1,"friends_count":145,"profile_background_color":"ffffff","is_translator":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/324394183\/wall-3.br.jpg","created_at":"Thu Jan 27 00:40:08 +0000 2011","followers_count":192,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/324394183\/wall-3.br.jpg","id":243420776,"profile_text_color":"000000","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1495336726\/Denis99_normal.jpg","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1495336726\/Denis99_normal.jpg"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/www.twitrbackgrounds.com\" rel=\"nofollow\"\u003Etwitrbackgroundsdotcom\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[{"display_url":"TwitterBackgrounds.com","expanded_url":"http:\/\/www.TwitterBackgrounds.com","url":"http:\/\/t.co\/Yxg7c6U","indices":[62,81]}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102452191248384,"place":null,"text":"Just changed my twitter background, check it out! Found it at http:\/\/t.co\/Yxg7c6U on Saturday 02:24:36 PM","result_category":"recent"},{"id_str":"110102451520147456","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"ffffff","protected":false,"id_str":"244369383","notifications":false,"profile_background_tile":true,"screen_name":"ryanruggi","name":"Ryan Ruggiero","listed_count":6,"location":"Atlanta, Georgia","show_all_inline_media":true,"contributors_enabled":false,"following":false,"geo_enabled":true,"utc_offset":-18000,"profile_link_color":"32c232","description":"Just livin' it up like it's the weekend. ","profile_sidebar_border_color":"ffffff","url":null,"time_zone":"Eastern Time (US & Canada)","default_profile_image":false,"statuses_count":7023,"profile_use_background_image":true,"default_profile":false,"verified":false,"favourites_count":15,"friends_count":682,"profile_background_color":"fafafa","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/316502774\/pattern-background.jpg","created_at":"Sat Jan 29 04:35:01 +0000 2011","followers_count":640,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/316502774\/pattern-background.jpg","id":244369383,"profile_text_color":"46454d","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1523046286\/image_normal.jpg","profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1523046286\/image_normal.jpg"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:46 +0000 2011","entities":{"user_mentions":[],"urls":[],"media":[{"type":"photo","id_str":"110102451524341761","display_url":"pic.twitter.com\/3Bmz6qj","expanded_url":"http:\/\/twitter.com\/ryanruggi\/status\/110102451520147456\/photo\/1","media_url_https":"https:\/\/p.twimg.com\/AYcpmKgCEAEnDeT.png","url":"http:\/\/t.co\/3Bmz6qj","indices":[60,79],"sizes":{"small":{"h":262,"w":340,"resize":"fit"},"large":{"h":602,"w":780,"resize":"fit"},"thumb":{"h":150,"w":150,"resize":"crop"},"medium":{"h":463,"w":600,"resize":"fit"}},"id":110102451524341761,"media_url":"http:\/\/p.twimg.com\/AYcpmKgCEAEnDeT.png"}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102451520147456,"place":null,"text":"Well this'll be fun, it's heading straight for Atlanta! O.o http:\/\/t.co\/3Bmz6qj","result_category":"recent"},{"id_str":"110102450790338560","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"363396957","notifications":false,"profile_background_tile":false,"screen_name":"MarixoliitaC","name":"maria fernanda","listed_count":0,"location":"","show_all_inline_media":false,"contributors_enabled":false,"following":false,"geo_enabled":false,"utc_offset":null,"profile_link_color":"0084B4","description":"","profile_sidebar_border_color":"C0DEED","url":"http:\/\/www.facebook.com\/marixolita.bonita","time_zone":null,"default_profile_image":false,"statuses_count":33,"profile_use_background_image":true,"verified":false,"favourites_count":0,"friends_count":9,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","created_at":"Sun Aug 28 01:07:24 +0000 2011","followers_count":0,"default_profile":true,"follow_request_sent":false,"lang":"es","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","id":363396957,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1517730160\/275837_100002268478641_2446262_n_normal.jpg","profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1517730160\/275837_100002268478641_2446262_n_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102450790338560,"place":null,"text":"dia perfecto para vicear full en twitter xD","result_category":"recent"},{"id_str":"110102450614181888","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"","protected":false,"id_str":"351563676","notifications":false,"profile_background_tile":true,"screen_name":"vemquicandu","name":"Capit\u00e3o Caverna","default_profile":false,"listed_count":263,"location":"no beco no buteco de um bar","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-14400,"profile_link_color":"de0909","description":"ex prostituta, ex presidiario, ex dorgado. AGORA SOU RYCO E MINHA VIDA \u00c9 UM LUXO! e ainda tinha gente que fala que eu to na pior. ps: s\u00f3 aceito com scrap u_\u00fa kk","profile_sidebar_border_color":"fafafa","url":null,"time_zone":"Santiago","default_profile_image":false,"statuses_count":2229,"profile_use_background_image":true,"verified":false,"favourites_count":281,"friends_count":452,"profile_background_color":"f7f9fa","is_translator":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/profile_background_images\/308785326\/avenged-seven-fold.jpg","created_at":"Tue Aug 09 12:38:31 +0000 2011","followers_count":976,"follow_request_sent":false,"lang":"pt","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/308785326\/avenged-seven-fold.jpg","id":351563676,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1495621875\/lilipe_normal.jpg","profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1495621875\/lilipe_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102450614181888,"place":null,"text":"twitter ta parad\u00e3o","result_category":"recent"},{"id_str":"110102450559651841","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"360252951","notifications":null,"profile_background_tile":false,"screen_name":"shesignorant","name":"Nan","default_profile":true,"listed_count":0,"location":"","show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":false,"utc_offset":null,"profile_link_color":"0084B4","description":"","profile_sidebar_border_color":"C0DEED","url":null,"time_zone":null,"default_profile_image":false,"statuses_count":1048,"profile_use_background_image":true,"verified":false,"favourites_count":0,"friends_count":2,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","created_at":"Mon Aug 22 22:57:18 +0000 2011","followers_count":1,"follow_request_sent":null,"lang":"pt","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","id":360252951,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1522354181\/hees_normal.png","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1522354181\/hees_normal.png"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Fanfic Obsession","screen_name":"fanficobsession","id_str":"89702318","indices":[10,26],"id":89702318},{"name":"Taste Of Ink Store","screen_name":"tasteofinkstore","id_str":"45738466","indices":[31,47],"id":45738466}],"urls":[{"display_url":"kingo.to\/MJx","expanded_url":"http:\/\/kingo.to\/MJx","url":"http:\/\/t.co\/MFstcIo","indices":[84,103]}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102450559651841,"place":null,"text":"Eu sigo o @fanficobsession e a @tasteofinkstore e quero ganhar o Kit 01 de bottons! http:\/\/t.co\/MFstcIo twitter","result_category":"recent"},{"id_str":"110102450240888832","in_reply_to_status_id":110101691038306304,"truncated":false,"user":{"profile_sidebar_fill_color":"ffffff","protected":false,"id_str":"340238592","notifications":null,"profile_background_tile":true,"screen_name":"AnaisWatson","name":"Ana\u00efs Gomez-Watson \u262e","default_profile":false,"listed_count":1,"location":"#Poufsoufflepower \u03df","show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":true,"utc_offset":-10800,"profile_link_color":"f07b5d","description":"Ana\u00efs 16 yo, Jenny is my love #heartTeam. Being myself in that fake world. Second twitter ; Potter head , selenator and belieber. Until the very end \u03df","profile_sidebar_border_color":"e8e8e8","url":"http:\/\/iownyournight.tumblr.com\/","time_zone":"Greenland","default_profile_image":false,"statuses_count":1160,"profile_use_background_image":true,"verified":false,"favourites_count":3,"friends_count":24,"profile_background_color":"c0deed","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/323685091\/tumblr_looi6k1Vn01qderwco1_500.jpg","created_at":"Fri Jul 22 11:07:30 +0000 2011","followers_count":27,"follow_request_sent":null,"lang":"fr","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/323685091\/tumblr_looi6k1Vn01qderwco1_500.jpg","id":340238592,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1525293982\/for_twitter_1_normal.png","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1525293982\/for_twitter_1_normal.png"},"favorited":false,"in_reply_to_status_id_str":"110101691038306304","geo":null,"in_reply_to_screen_name":"Poufsouffle_","in_reply_to_user_id_str":"349194144","coordinates":null,"in_reply_to_user_id":349194144,"source":"\u003Ca href=\"http:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003EMobile Web\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Pomona Chourave","screen_name":"Poufsouffle_","id_str":"349194144","indices":[0,13],"id":349194144}],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102450240888832,"place":null,"text":"@Poufsouffle_ - TC, le nombre de followers qui importe tant. \u00c7a m'\u00e9nerve aussi d'o\u00f9 mon recul sur un twitter plus personnel -","result_category":"recent"},{"truncated":false,"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"in_reply_to_user_id":null,"contributors":null,"geo":null,"user":{"listed_count":4,"protected":false,"show_all_inline_media":true,"contributors_enabled":false,"geo_enabled":true,"notifications":false,"profile_link_color":"0099CC","screen_name":"Alilicita","name":"Ali Le\u00f3n D\u00edaz","profile_sidebar_border_color":"fff8ad","location":"Lambar\u00e9-Paraguay","following":true,"time_zone":"Santiago","utc_offset":-14400,"description":"26\/ABR, Tauro, Lic. en Administraci\u00f3n de Empresas, #CCP1912 y...no tengo nada contra ellos,la rabia es contra el tiempo por ponerte junto a mi..tarde..","default_profile_image":false,"statuses_count":6526,"profile_use_background_image":true,"url":"http:\/\/www.facebook.com\/ali.leondiaz","verified":false,"favourites_count":4,"friends_count":324,"profile_background_color":"FFF04D","is_translator":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/312913794\/felinos__56_.jpg","followers_count":260,"follow_request_sent":false,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/312913794\/felinos__56_.jpg","created_at":"Mon Jan 25 15:35:59 +0000 2010","profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1515384610\/Foto0224_normal.jpg","lang":"es","profile_sidebar_fill_color":"f6ffd1","id":108322421,"id_str":"108322421","default_profile":false,"profile_background_tile":true,"profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1515384610\/Foto0224_normal.jpg"},"retweeted":false,"retweet_count":0,"coordinates":null,"source":"\u003Ca href=\"http:\/\/twitdat.com\" rel=\"nofollow\"\u003Etwitdat\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"TwitDat","screen_name":"twitdatcom","indices":[56,67],"id":253174959,"id_str":"253174959"}],"hashtags":[],"urls":[{"display_url":"twitdat.com\/tools","expanded_url":"http:\/\/twitdat.com\/tools","url":"http:\/\/t.co\/Yl8DewV","indices":[32,51]}]},"id":110102449922121728,"id_str":"110102449922121728","place":null,"in_reply_to_status_id":null,"text":"Test de Reciprocidad en Twitter http:\/\/t.co\/Yl8DewV v\u00eda @twitdatcom","result_category":"recent"},{"id_str":"110102449896947712","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"","protected":false,"id_str":"172176570","notifications":false,"profile_background_tile":true,"screen_name":"bela_lopes2","name":"Isabela Lopes","listed_count":0,"location":"","show_all_inline_media":false,"contributors_enabled":false,"following":false,"geo_enabled":true,"utc_offset":-14400,"profile_link_color":"cb81de","description":"","profile_sidebar_border_color":"ffffff","url":"http:\/\/www.facebook.com\/IsaahLopes","time_zone":"Santiago","default_profile_image":false,"statuses_count":413,"profile_use_background_image":true,"verified":false,"favourites_count":4,"friends_count":195,"profile_background_color":"e05ee0","is_translator":false,"default_profile":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/315191776\/190448_200664266619663_100000282739711_696335_665848_a.jpg","created_at":"Thu Jul 29 02:28:42 +0000 2010","followers_count":54,"follow_request_sent":false,"lang":"pt","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/315191776\/190448_200664266619663_100000282739711_696335_665848_a.jpg","id":172176570,"profile_text_color":"e673e6","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1513465899\/foto0675_001_normal.jpg","profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1513465899\/foto0675_001_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102449896947712,"place":null,"text":"Hi twitter acabei de chegar do plus e ja estou saindo daqui a pouco tem mag u.u","result_category":"recent"},{"id_str":"110102449607548928","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"","protected":false,"id_str":"199513730","notifications":false,"profile_background_tile":true,"screen_name":"News_MCyrus","name":"Noticias MileyCyrus.","listed_count":166,"location":"Toluka Lake \/ Nashville ","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-10800,"profile_link_color":"bd3535","description":"Hechos, frases, fotos & todo lo que queres saber sobre Miley Ray Cyrus esta AQU\u00cd. Si te gustan los #News_MCyrus no dudes en seguirnos & dar RT. RADIANTE AMOR\u262e","profile_sidebar_border_color":"ffffff","url":"http:\/\/twitter.com\/#!\/News_MCyrus\/favorites","time_zone":"Buenos Aires","default_profile_image":false,"statuses_count":7114,"profile_use_background_image":true,"verified":false,"favourites_count":659,"friends_count":571,"profile_background_color":"613161","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/314729379\/violeta-chispas-wallpapers_7658_1920x1200.jpg","created_at":"Thu Oct 07 01:54:29 +0000 2010","followers_count":9020,"follow_request_sent":false,"lang":"es","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/314729379\/violeta-chispas-wallpapers_7658_1920x1200.jpg","id":199513730,"default_profile":false,"profile_text_color":"3C3940","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1518494905\/normal_009_normal.jpg","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1518494905\/normal_009_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Rouse & Chizi.","screen_name":"NickJOrgasm","id_str":"220459277","indices":[24,36],"id":220459277}],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102449607548928,"place":null,"text":"SIGAN A MI OTRO TWITTER @NickJOrgasm .. DOY FOLLOW BACK A TODOOS LOS QUE ME SIGUEN =]","result_category":"recent"},{"id_str":"110102449100042240","in_reply_to_status_id":110101177487736832,"truncated":false,"user":{"profile_sidebar_fill_color":"daf50c","protected":false,"id_str":"104629704","notifications":false,"profile_background_tile":true,"screen_name":"bettaThanYa_EX","name":"NOONIE\u2122","listed_count":0,"location":"Location Not Found ...","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-21600,"profile_link_color":"33adcc","description":"i be in my own lil world felling like . . Fuck you \u2192 you \u2191 you \u2197 you \u2193 oh, & you\u2198 ! - dnt lurk .. HOE jus Follow '","profile_sidebar_border_color":"0ebff0","url":null,"time_zone":"Central Time (US & Canada)","default_profile_image":false,"statuses_count":7060,"profile_use_background_image":true,"verified":false,"favourites_count":72,"friends_count":386,"profile_background_color":"10ad61","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/266467400\/rinekacurry.jpg","created_at":"Wed Jan 13 22:39:54 +0000 2010","followers_count":430,"default_profile":false,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/266467400\/rinekacurry.jpg","id":104629704,"profile_text_color":"f02bf0","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1515615525\/image_normal.jpg","profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1515615525\/image_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":"110101177487736832","geo":null,"in_reply_to_screen_name":"Tavia_Danielle","in_reply_to_user_id_str":"230065008","coordinates":null,"in_reply_to_user_id":230065008,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Tavia Russell","screen_name":"Tavia_Danielle","id_str":"230065008","indices":[0,15],"id":230065008}],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102449100042240,"place":null,"text":"@Tavia_Danielle bitch dnt keep saying you not gne fuss on twitter but yet you still posting shit !!!","result_category":"recent"},{"id_str":"110102448923869184","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"f7f4f6","protected":false,"id_str":"95950724","notifications":false,"profile_background_tile":true,"screen_name":"bellahidalgo","name":"Isabella Hidalgo","listed_count":0,"location":"","show_all_inline_media":false,"contributors_enabled":false,"following":false,"geo_enabled":false,"utc_offset":-10800,"profile_link_color":"f51eb1","description":"","profile_sidebar_border_color":"ff00cc","url":null,"time_zone":"Greenland","default_profile_image":false,"statuses_count":1792,"profile_use_background_image":true,"default_profile":false,"verified":false,"favourites_count":14,"friends_count":78,"profile_background_color":"ff03cd","is_translator":false,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/294789691\/tumblr_l13v25Ujet1qajhpuo1_500.jpg","created_at":"Thu Dec 10 17:59:33 +0000 2009","followers_count":77,"follow_request_sent":false,"lang":"pt","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/294789691\/tumblr_l13v25Ujet1qajhpuo1_500.jpg","id":95950724,"profile_text_color":"000000","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1441175861\/PQAAAJff1q2whMis3_AoguHrmzVkson0kPdvSivgdrcswwzS26fRlyazLhUV8Em9BxBcVrgtcj8Yv8PpgWKc2iDtIGMAm1T1UAh4nNdMyMN4p6PODOYqiZY4b2oE_normal.jpg","profile_image_url":"http:\/\/a3.twimg.com\/profile_images\/1441175861\/PQAAAJff1q2whMis3_AoguHrmzVkson0kPdvSivgdrcswwzS26fRlyazLhUV8Em9BxBcVrgtcj8Yv8PpgWKc2iDtIGMAm1T1UAh4nNdMyMN4p6PODOYqiZY4b2oE_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448923869184,"place":null,"text":"aiai descobri que minha irm\u00e3 tava mexendo no meu twitter u-u","result_category":"recent"},{"id_str":"110102448873537537","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"ffffff","protected":false,"id_str":"240560217","notifications":null,"profile_background_tile":false,"screen_name":"CSImegan","name":"Megan Carter","default_profile":false,"listed_count":1,"location":"Carmel, IN","show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":false,"utc_offset":-18000,"profile_link_color":"93A644","description":"Pursuing my Masters in Forensic Biology. Purdue grad. Foodie. Avid reader. Christian. Sports fanatic. Random fact enthusiast. I love my hubby and 2 furry sons!","profile_sidebar_border_color":"eeeeee","url":null,"time_zone":"Indiana (East)","default_profile_image":false,"statuses_count":331,"profile_use_background_image":true,"verified":false,"favourites_count":0,"friends_count":363,"profile_background_color":"B2DFDA","is_translator":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme13\/bg.gif","created_at":"Thu Jan 20 06:02:09 +0000 2011","followers_count":91,"follow_request_sent":null,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme13\/bg.gif","id":240560217,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1221377599\/SAM_1222_normal.JPG","profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1221377599\/SAM_1222_normal.JPG"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/www.yelp.com\/\" rel=\"nofollow\"\u003EYelp\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[],"urls":[{"display_url":"bit.ly\/pMjZQy","expanded_url":"http:\/\/bit.ly\/pMjZQy","url":"http:\/\/t.co\/nvDM2ug","indices":[68,87]}],"hashtags":[{"indices":[62,67],"text":"Yelp"}]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448873537537,"place":null,"text":"I checked in at Embassy Suites Hotel (4554 Lake Forest Dr) on #Yelp http:\/\/t.co\/nvDM2ug","result_category":"recent"},{"id_str":"110102448596729856","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"105869117","notifications":false,"profile_background_tile":false,"screen_name":"OmegaAudioVideo","name":"OmegaAudioVideo","listed_count":29,"location":"London, Ontario, Canada","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":-18000,"profile_link_color":"0084B4","description":"We are a premiere Custom AudioVisual company in London, ON. We match the technology you want, with your lifestyle and your budget! - Tweets by Matt Scott, Pres.","profile_sidebar_border_color":"C0DEED","url":"http:\/\/www.OmegaAudio.net","time_zone":"Eastern Time (US & Canada)","default_profile_image":false,"statuses_count":4273,"profile_use_background_image":true,"verified":false,"favourites_count":2,"friends_count":415,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/289421859\/OAVtwitBG.jpg","created_at":"Sun Jan 17 19:30:24 +0000 2010","followers_count":389,"default_profile":false,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/289421859\/OAVtwitBG.jpg","id":105869117,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1338877809\/Logo_normal.jpg","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1338877809\/Logo_normal.jpg"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/www.tweetdeck.com\" rel=\"nofollow\"\u003ETweetDeck\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Jim Kelly","screen_name":"GeekInAwe","id_str":"322429893","indices":[68,78],"id":322429893}],"urls":[{"display_url":"deck.ly\/~2WX4z","expanded_url":"http:\/\/deck.ly\/~2WX4z","url":"http:\/\/t.co\/s1SbNXE","indices":[115,134]}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448596729856,"place":null,"text":"You stink, I'm kidding! Have fun man! You coming back for Cedia? RT @GeekInAwe: Yup! You read it correctly\u2026 (cont) http:\/\/t.co\/s1SbNXE","result_category":"recent"},{"id_str":"110102448332472320","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"F6F6F6","protected":false,"id_str":"51282724","notifications":null,"profile_background_tile":false,"screen_name":"b_ferrera","name":"Bruno Reis","default_profile":false,"listed_count":0,"location":"Brazil..on my way to Canada","show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":true,"utc_offset":-10800,"profile_link_color":"038543","description":"Hi there! College in 2011, Brazil hopefully not for too long but soon in Canada","profile_sidebar_border_color":"EEEEEE","url":null,"time_zone":"Brasilia","default_profile_image":false,"statuses_count":1021,"profile_use_background_image":true,"verified":false,"favourites_count":5,"friends_count":117,"profile_background_color":"ACDED6","is_translator":false,"profile_background_image_url":"http:\/\/a1.twimg.com\/images\/themes\/theme18\/bg.gif","created_at":"Sat Jun 27 00:04:33 +0000 2009","followers_count":54,"follow_request_sent":null,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme18\/bg.gif","id":51282724,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1300101851\/DSC01425_normal.jpg","profile_image_url":"http:\/\/a1.twimg.com\/profile_images\/1300101851\/DSC01425_normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/twitter.com\/#!\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:43 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448332472320,"place":null,"text":"Alguem conhece um twitter que zoa corinthians?? Pq tem algumas pessoas q ficam retweeting uns tweets que me irritam demaais!!","result_category":"recent"},{"id_str":"110102448286339072","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"f0f073","protected":false,"id_str":"185890956","notifications":false,"profile_background_tile":false,"screen_name":"PlayaMiaBeach","name":"Playa Mia Cozumel","listed_count":1,"location":"Cozumel, M\u00e9xico","show_all_inline_media":false,"contributors_enabled":false,"following":true,"geo_enabled":false,"utc_offset":null,"profile_link_color":"b35c00","description":"Live a memorable experience at the Mexican Caribbean in one of the finest beach clubs in Cozumel. ","profile_sidebar_border_color":"ebcf2f","url":"http:\/\/www.playamiacozumel.com\/","time_zone":null,"default_profile_image":false,"statuses_count":508,"profile_use_background_image":true,"default_profile":false,"verified":false,"favourites_count":0,"friends_count":410,"profile_background_color":"f7f794","is_translator":false,"profile_background_image_url":"http:\/\/a2.twimg.com\/profile_background_images\/266405327\/back_twitter.jpg","created_at":"Thu Sep 02 02:20:29 +0000 2010","followers_count":247,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/266405327\/back_twitter.jpg","id":185890956,"profile_text_color":"eb7e2a","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1118774346\/Playa_Mia__3__normal.jpg","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1118774346\/Playa_Mia__3__normal.jpg"},"favorited":false,"possibly_sensitive":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:44 +0000 2011","entities":{"user_mentions":[{"name":"Playa Mia Cozumel","screen_name":"PlayaMiaBeach","id_str":"185890956","indices":[13,27],"id":185890956}],"urls":[],"media":[{"type":"photo","id_str":"110102448290533376","display_url":"pic.twitter.com\/bH36L0s","expanded_url":"http:\/\/twitter.com\/PlayaMiaBeach\/status\/110102448286339072\/photo\/1","media_url_https":"https:\/\/p.twimg.com\/AYcpl-dCEAAOc3o.jpg","url":"http:\/\/t.co\/bH36L0s","indices":[109,128],"sizes":{"small":{"h":340,"w":340,"resize":"fit"},"large":{"h":480,"w":480,"resize":"fit"},"thumb":{"h":150,"w":150,"resize":"crop"},"medium":{"h":480,"w":480,"resize":"fit"}},"id":110102448290533376,"media_url":"http:\/\/p.twimg.com\/AYcpl-dCEAAOc3o.jpg"}],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448286339072,"place":null,"text":"In behalf of @PlayaMiaBeach we wanted to thank everyone for following us. We wish you a wonderful weekend!!! http:\/\/t.co\/bH36L0s","result_category":"recent"},{"id_str":"110102448273760256","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"365993812","notifications":false,"profile_background_tile":false,"screen_name":"Bieltmadalena","name":"Gabriel Ton Madalena","listed_count":0,"location":null,"show_all_inline_media":false,"contributors_enabled":false,"following":false,"geo_enabled":false,"utc_offset":null,"profile_link_color":"0084B4","description":null,"default_profile":true,"profile_sidebar_border_color":"C0DEED","url":null,"time_zone":null,"default_profile_image":true,"statuses_count":14,"profile_use_background_image":true,"verified":false,"favourites_count":0,"friends_count":36,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","created_at":"Thu Sep 01 11:33:14 +0000 2011","followers_count":4,"follow_request_sent":false,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","id":365993812,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","profile_image_url":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"web","created_at":"Sat Sep 03 21:30:43 +0000 2011","entities":{"user_mentions":[],"urls":[],"hashtags":[]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102448273760256,"place":null,"text":"meu cunhado acha twitter coisa de besta","result_category":"recent"},{"id_str":"110102447757869056","in_reply_to_status_id":null,"truncated":false,"user":{"profile_sidebar_fill_color":"DDEEF6","protected":false,"id_str":"41335311","notifications":null,"profile_background_tile":false,"screen_name":"rico82","name":"Rico Coutain","default_profile":true,"listed_count":2,"location":"London, England","show_all_inline_media":false,"contributors_enabled":false,"following":null,"geo_enabled":false,"utc_offset":0,"profile_link_color":"0084B4","description":"","profile_sidebar_border_color":"C0DEED","url":null,"time_zone":"London","default_profile_image":false,"statuses_count":1019,"profile_use_background_image":true,"verified":false,"favourites_count":5,"friends_count":67,"profile_background_color":"C0DEED","is_translator":false,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","created_at":"Wed May 20 10:50:39 +0000 2009","followers_count":69,"follow_request_sent":null,"lang":"en","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","id":41335311,"profile_text_color":"333333","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1385690568\/_JM__20_20Rico_20_20_GD__normal.jpg","profile_image_url":"http:\/\/a2.twimg.com\/profile_images\/1385690568\/_JM__20_20Rico_20_20_GD__normal.jpg"},"favorited":false,"in_reply_to_status_id_str":null,"geo":null,"in_reply_to_screen_name":null,"in_reply_to_user_id_str":null,"coordinates":null,"in_reply_to_user_id":null,"source":"\u003Ca href=\"http:\/\/blackberry.com\/twitter\" rel=\"nofollow\"\u003ETwitter for BlackBerry\u00ae\u003C\/a\u003E","created_at":"Sat Sep 03 21:30:43 +0000 2011","entities":{"user_mentions":[{"name":"Delphina James","screen_name":"Panness","id_str":"130576543","indices":[1,9],"id":130576543}],"urls":[],"hashtags":[{"indices":[92,102],"text":"Sharezies"}]},"contributors":null,"retweeted":false,"retweet_count":0,"id":110102447757869056,"place":null,"text":"\"@Panness: TWITTER-CREW! I JUST FOUND \u00a35 IN MY WINTER-COAT....Now #ThatsWhatImTalkingAbout\" #Sharezies!","result_category":"recent"}],"served_by_blender":false,"error":null,"next_page":null}
|
data/spec/fixtures/resolve.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"http:\/\/t.co\/uw5bn1w":"http:\/\/www.jeanniejeannie.com\/2011\/08\/29\/the-art-of-clean-up-sorting-and-stacking-everyday-objects\/"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"error":"Service Unavailable","request":"/1/statuses/show/1.json"}
|
data/spec/fixtures/totals.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"favorites":2811,"updates":4109,"followers":475,"friends":1994}
|
data/spec/fixtures/trends.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"trends":[{"url":"http:\/\/search.twitter.com\/search?q=Isaacs","name":"Isaacs"},{"url":"http:\/\/search.twitter.com\/search?q=%23speaknow","name":"#speaknow"},{"url":"http:\/\/search.twitter.com\/search?q=Walkman","name":"Walkman"},{"url":"http:\/\/search.twitter.com\/search?q=%23dia31vote13","name":"#dia31vote13"},{"url":"http:\/\/search.twitter.com\/search?q=Jay+Bum","name":"Jay Bum"},{"url":"http:\/\/search.twitter.com\/search?q=Allen+Iverson","name":"Allen Iverson"},{"url":"http:\/\/search.twitter.com\/search?q=RIP+Gregory","name":"RIP Gregory"},{"url":"http:\/\/search.twitter.com\/search?q=Issacs","name":"Issacs"},{"url":"http:\/\/search.twitter.com\/search?q=Night+Nurse","name":"Night Nurse"},{"url":"http:\/\/search.twitter.com\/search?q=VLC","name":"VLC"}],"as_of":"Mon, 25 Oct 2010 15:50:02 +0000"}
|