croudia4r 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +87 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/croudia4r.gemspec +25 -0
- data/lib/croudia/client.rb +85 -0
- data/lib/croudia/error.rb +5 -0
- data/lib/croudia/object/base.rb +30 -0
- data/lib/croudia/object/cursor.rb +9 -0
- data/lib/croudia/object/entities.rb +10 -0
- data/lib/croudia/object/identity.rb +9 -0
- data/lib/croudia/object/ids.rb +9 -0
- data/lib/croudia/object/list.rb +10 -0
- data/lib/croudia/object/location.rb +9 -0
- data/lib/croudia/object/media.rb +9 -0
- data/lib/croudia/object/relationship.rb +11 -0
- data/lib/croudia/object/relationship_collection.rb +9 -0
- data/lib/croudia/object/relationship_user.rb +9 -0
- data/lib/croudia/object/search_metadata.rb +10 -0
- data/lib/croudia/object/search_result.rb +12 -0
- data/lib/croudia/object/secret_mail.rb +16 -0
- data/lib/croudia/object/source.rb +9 -0
- data/lib/croudia/object/status.rb +21 -0
- data/lib/croudia/object/tokens.rb +9 -0
- data/lib/croudia/object/trend.rb +14 -0
- data/lib/croudia/object/trend_details.rb +9 -0
- data/lib/croudia/object/user.rb +15 -0
- data/lib/croudia/rest/account.rb +57 -0
- data/lib/croudia/rest/blocks.rb +56 -0
- data/lib/croudia/rest/favorites.rb +47 -0
- data/lib/croudia/rest/followers.rb +36 -0
- data/lib/croudia/rest/friend_ships.rb +60 -0
- data/lib/croudia/rest/friends.rb +36 -0
- data/lib/croudia/rest/mutes/users.rb +58 -0
- data/lib/croudia/rest/mutes.rb +9 -0
- data/lib/croudia/rest/oauth.rb +48 -0
- data/lib/croudia/rest/search.rb +33 -0
- data/lib/croudia/rest/secret_mails.rb +96 -0
- data/lib/croudia/rest/statuses.rb +170 -0
- data/lib/croudia/rest/trends.rb +19 -0
- data/lib/croudia/rest/users.rb +33 -0
- data/lib/croudia/version.rb +3 -0
- data/lib/croudia.rb +2 -0
- metadata +145 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'croudia/object/status'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module Favorites
|
6
|
+
|
7
|
+
# **This method must throw Exception.**
|
8
|
+
# Returns the 20 most recent Whispers favorited by the authenticating or specified user.
|
9
|
+
#
|
10
|
+
# @see https://developer.croudia.com/docs/51_favorites
|
11
|
+
# @return [NotImplementedError]
|
12
|
+
# @param params [Hash] A customized options.
|
13
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
14
|
+
def favorites(params = {})
|
15
|
+
raise NotImplementedError.new()
|
16
|
+
end
|
17
|
+
|
18
|
+
# Favorites the status specified in the ID parameter as the authenticating user.
|
19
|
+
# Returns the favorited status when successful.
|
20
|
+
#
|
21
|
+
# @see https://developer.croudia.com/docs/52_favorites_create
|
22
|
+
# @return [Croudia::Object::Status] Favorited status.
|
23
|
+
# @param status [Croudia::Object::Status] The favorite whisper.
|
24
|
+
# @param params [Hash] A customized options.
|
25
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
26
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
27
|
+
def favorite(status, params = {})
|
28
|
+
response = post("2/favorites/create/#{status.id}.json", params)
|
29
|
+
Croudia::Object::Status.new(response)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Un-favorites the status specified in the ID parameter as the authenticating user.
|
33
|
+
# Returns the un-favorited status when successful.
|
34
|
+
#
|
35
|
+
# @see https://developer.croudia.com/docs/53_favorites_destroy
|
36
|
+
# @return [Croudia::Object::Status] Un-favorited status.
|
37
|
+
# @param status [Croudia::Object::Status] The un-favorite whisper.
|
38
|
+
# @param params [Hash] A customized options.
|
39
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
40
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
41
|
+
def unfavorite(status, params = {})
|
42
|
+
response = post("2/favorites/destory/#{status.id}.json", params)
|
43
|
+
Croudia::Object::Status.new(response)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'croudia/object/ids'
|
2
|
+
require 'croudia/object/list'
|
3
|
+
|
4
|
+
module Croudia
|
5
|
+
module Rest
|
6
|
+
module Followers
|
7
|
+
|
8
|
+
# Returns a collection of user ids that the authenticating user's followers.
|
9
|
+
#
|
10
|
+
# @see https://developer.croudia.com/docs/49_followers_ids
|
11
|
+
# @return [Croudia::Object::IDs] A collection of user ids that authenticating user's followers.
|
12
|
+
# @param params [Hash] A customized options.
|
13
|
+
# @option params [String] :screen_name The screen name of the potentially followers user.
|
14
|
+
# @option params [Integer] :user_id The ID of the potentially followers user.
|
15
|
+
# @option params [Integer] :cursor The page cursor of collection.
|
16
|
+
def follower_ids(params = {})
|
17
|
+
response = get('followers/ids.json', params)
|
18
|
+
Croudia::Object::IDs.new(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns a collection of user objects the authenticating user's followers.
|
22
|
+
#
|
23
|
+
# @see https://developer.croudia.com/docs/43_followers_list
|
24
|
+
# @return [Croudia::Object::List] A collection of user objects that authenticating user's followers.
|
25
|
+
# @param params [Hash] A customized options.
|
26
|
+
# @option params [String] :screen_name The screen name of the potentially followers user.
|
27
|
+
# @option params [Integer] :user_id The ID of the potentially followers user.
|
28
|
+
# @option params [Integer] :cursor The page cursor of collection.
|
29
|
+
# @option params [Boolean] :trim_user When set to truem each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
30
|
+
def followers(params = {})
|
31
|
+
response = get('followers/list.json', params)
|
32
|
+
Croudia::Object::List.new(response)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'croudia/object/relationship'
|
2
|
+
require 'croudia/object/relationship_collection'
|
3
|
+
require 'croudia/object/user'
|
4
|
+
|
5
|
+
module Croudia
|
6
|
+
module Rest
|
7
|
+
module FriendShips
|
8
|
+
|
9
|
+
# Allows the authenticating users to follow the user specified in the ID parameter.
|
10
|
+
#
|
11
|
+
# @see https://developer.croudia.com/docs/41_friendships_create
|
12
|
+
# @return [Croudia::Object::User] The befriended user in the requested format when successful.
|
13
|
+
# @param params [Hash] A customized options.
|
14
|
+
# @option params [String] :screen_name The screen name of the user for whom to befriend.
|
15
|
+
# @option params [Integer] :user_id The ID of the user for whom to befriend.
|
16
|
+
def follow(params = {})
|
17
|
+
response = post('friendships/create.json', params)
|
18
|
+
Croudia::Object::User.new(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Allows the authenticating user to unfollow the user specified in the ID parameter.
|
22
|
+
#
|
23
|
+
# @see https://developer.croudia.com/docs/42_friendships_destroy
|
24
|
+
# @return [Croudia::Object::User] The unfollowed user in the requested format when successful.
|
25
|
+
# @param params [Hash] A customized options.
|
26
|
+
# @option params [String] :screen_name The screen name of the user for whom to unfollow.
|
27
|
+
# @option params [Integer] :user_id The ID of the user for whom to unfollow.
|
28
|
+
def unfollow(params = {})
|
29
|
+
response = post('friendships/destroy.json', params)
|
30
|
+
Croudia::Object::User.new(response)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns detailed information about the relationship between two arbitrary users.
|
34
|
+
#
|
35
|
+
# @see https://developer.croudia.com/docs/44_friendships_show
|
36
|
+
# @return [Croudia::Object::Relationship] The relationship between two arbitrary users.
|
37
|
+
# @param params [Hash] A customized options.
|
38
|
+
# @option params [Integer] :source_id The user_id of the subject user.
|
39
|
+
# @option params [String] :source_screen_name The screen_name of the subject user.
|
40
|
+
# @option params [Integer] :target_id The user_id of the target user.
|
41
|
+
# @option params [String] :target_screen_name The screen_name of the target user.
|
42
|
+
def relationship(params = {})
|
43
|
+
response = get('friendships/show.json', params)
|
44
|
+
Croudia::Object::Relationship.new(response)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Returns the relationships of the authenticating user to the comma-separated list of up to 100 screen_names or user_ids provided.
|
48
|
+
#
|
49
|
+
# @see https://developer.croudia.com/docs/47_friendships_lookup
|
50
|
+
# @return [Croudia::Object::RelationshipCollection]
|
51
|
+
# @param params [Hash] A customized options.
|
52
|
+
# @option params [Integer] :user_id The comma-separated list of user_ids.
|
53
|
+
# @option params [String] :screen_name The comma-separated list of screen_names.
|
54
|
+
def relationships(params = {})
|
55
|
+
response = get('friendships/lookup.json', params)
|
56
|
+
Croudia::Object::RelationshipCollection.new(response)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'croudia/object/ids'
|
2
|
+
require 'croudia/object/list'
|
3
|
+
|
4
|
+
module Croudia
|
5
|
+
module Rest
|
6
|
+
module Friends
|
7
|
+
|
8
|
+
# Returns a collection of user ids that the authenticating user's friends.
|
9
|
+
#
|
10
|
+
# @see https://developer.croudia.com/docs/49_friends_ids
|
11
|
+
# @return [Croudia::Object::IDs] A collection of user ids that authenticating user's friends.
|
12
|
+
# @param params [Hash] A customized options.
|
13
|
+
# @option params [String] :screen_name The screen name of the potentially friends user.
|
14
|
+
# @option params [Integer] :user_id The ID of the potentially friends user.
|
15
|
+
# @option params [Integer] :cursor The page cursor of collection.
|
16
|
+
def friend_ids(params = {})
|
17
|
+
response = get('friends/ids.json', params)
|
18
|
+
Croudia::Object::IDs.new(response)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns a collection of user objects the authenticating user's friends.
|
22
|
+
#
|
23
|
+
# @see https://developer.croudia.com/docs/43_friends_list
|
24
|
+
# @return [Croudia::Object::List] A collection of user objects that authenticating user's friends.
|
25
|
+
# @param params [Hash] A customized options.
|
26
|
+
# @option params [String] :screen_name The screen name of the potentially friends user.
|
27
|
+
# @option params [Integer] :user_id The ID of the potentially friends user.
|
28
|
+
# @option params [Integer] :cursor The page cursor of collection.
|
29
|
+
# @option params [Boolean] :trim_user When set to truem each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
30
|
+
def friends(params = {})
|
31
|
+
response = get('friends/list.json', params)
|
32
|
+
Croudia::Object::List.new(response)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'croudia/object/user'
|
2
|
+
require 'croudia/object/ids'
|
3
|
+
require 'croudia/object/list'
|
4
|
+
|
5
|
+
module Croudia
|
6
|
+
module Rest
|
7
|
+
module Mutes
|
8
|
+
module Users
|
9
|
+
|
10
|
+
# Mutes the user specified in the ID parameter for the authenticating user.
|
11
|
+
#
|
12
|
+
# @see https://developer.croudia.com/docs/71_mutes_users_create
|
13
|
+
# @return [Croudia::Object::User] Muted user.
|
14
|
+
# @param params [Hash] A customized options.
|
15
|
+
# @option params [String] :screen_name The screen name of the potentially muted user.
|
16
|
+
# @option params [Integer] :user_id The ID of the potentially muted user.
|
17
|
+
def mute(params = {})
|
18
|
+
response = post('mutes/users/create.json', params)
|
19
|
+
Croudia::Object::User.new(response)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Un-mutes the user specified in the ID parameter for the authenticating user.
|
23
|
+
#
|
24
|
+
# @see https://developer.croudia.com/docs/72_mutes_users_destroy
|
25
|
+
# @return [Croudia::Object::User] Un-muted user.
|
26
|
+
# @param params [Hash] A customized options.
|
27
|
+
# @option params [String] :screen_name The screen name of the potentially unmuted user.
|
28
|
+
# @option params [Integer] :user_id The ID of the potentially unmuted user.
|
29
|
+
def umnute(params = {})
|
30
|
+
response = post('mutes/users/destroy.json', params)
|
31
|
+
Croudia::Object::User.new(response)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns a collection of users the authenticating user has muted.
|
35
|
+
#
|
36
|
+
# @see https://developer.croudia.com/docs/74_mutes_users_list
|
37
|
+
# @param params [Hash] A customized options.
|
38
|
+
# @option params [Integer] :cursor The page cursor.
|
39
|
+
# @option params [Boolean] :trim_user When set to true, objects returned will include a user object including only the status authors numerical ID.
|
40
|
+
def mutes(params = {})
|
41
|
+
response = get('mutes/users/list.json', params)
|
42
|
+
Croudia::Object::List.new(response)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns an array of numeric user ids the authenticating user has muted.
|
46
|
+
#
|
47
|
+
# @see https://developer.croudia.com/docs/75_mutes_users_ids
|
48
|
+
# @return [Croudia::Object::IDs] Numeric user ids the authenticating user has muted.
|
49
|
+
# @param params [Hash] A customized options.
|
50
|
+
# @option params [Integer] :cursor The page cursor.
|
51
|
+
def mute_ids(params = {})
|
52
|
+
response = get('mutes/users/ids.json', params)
|
53
|
+
Croudia::Object::IDs.new(response)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'croudia/object/tokens'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module OAuth
|
6
|
+
|
7
|
+
# Returns an authorization url.
|
8
|
+
#
|
9
|
+
# @return [String] Authorization url.
|
10
|
+
# @param params [Hash] A customized options.
|
11
|
+
# @option params [String] :state OAuth 2 Authorization State Code.
|
12
|
+
def authorize_url(params = {})
|
13
|
+
unless (params[:state].nil?)
|
14
|
+
"https://api.croudia.com/oauth/authorize?response_type=code&client_id=#{@client_id}&state=#{params[:state]}"
|
15
|
+
else
|
16
|
+
"https://api.croudia.com/oauth/authorize?response_type=code&client_id=#{@client_id}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Allows a registered application to obtain an OAuth 2 Bearer Token.
|
21
|
+
#
|
22
|
+
# @see https://developer.croudia.com/docs/oauth
|
23
|
+
# @return [Croudia::Object::Tokens] Token pair.
|
24
|
+
# @param params [Hash] A customized options.
|
25
|
+
# @option params [String] :code Authorization code of application.
|
26
|
+
def token(params = {})
|
27
|
+
default_params = {grant_type: 'authorization_code', client_id: @client_id, client_secret: @client_secret}
|
28
|
+
params.merge!(default_params)
|
29
|
+
response = post('oauth/token', params)
|
30
|
+
puts response
|
31
|
+
Croudia::Object::Tokens.new(response)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Refresh an OAuth 2 Bearer Token.
|
35
|
+
#
|
36
|
+
# @see https://developer.croudia.com/docs/oauth
|
37
|
+
# @return [Croudia::Object::Tokens] Token pair.
|
38
|
+
# @param params [Hash] A customized options.
|
39
|
+
# @option params [String] :refresh_token OAuth 2 refresh token.
|
40
|
+
def refresh(params = {})
|
41
|
+
default_params = {grant_type: 'refresh_token', client_id: @client_id, client_secret: @client_secret }
|
42
|
+
params.merge!(default_params)
|
43
|
+
response = post('oauth/token', params)
|
44
|
+
Croudia::Object::Tokens.new(response)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'croudia/object/search_result'
|
2
|
+
require 'croudia/object/user'
|
3
|
+
|
4
|
+
module Croudia
|
5
|
+
module Rest
|
6
|
+
module Search
|
7
|
+
|
8
|
+
def search_statuses(params = {})
|
9
|
+
response = get('search/voices.json', params)
|
10
|
+
Croudia::Object::SearchResult.new(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
def search_users(params = {})
|
14
|
+
response = get('users/search.json', params)
|
15
|
+
response.map do |user|
|
16
|
+
Croudia::Object::User.new(user)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def search_users_by_profile(params = {})
|
21
|
+
response = get('profile/search.json', params)
|
22
|
+
response.map do |user|
|
23
|
+
Croudia::Object::User.new(user)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def search_favorites(params = {})
|
28
|
+
response = get('search/favorites.json', params)
|
29
|
+
Croudia::Object::SearchResult.new(response)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'croudia/object/secret_mail'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module SecretMails
|
6
|
+
|
7
|
+
# Returns the 20 most recent direct messages sent to the authenticating user.
|
8
|
+
#
|
9
|
+
# @see https://developer.croudia.com/docs/21_secret_mails
|
10
|
+
# @return [Array<Croudia::Object::SecretMail>] Secret mails that authenticating user is received.
|
11
|
+
# @param params [Hash] A customized options.
|
12
|
+
# @option params [Boolean] :trim_user When set to true, each message returned in a timeline will include a user object including only the status authors numerical ID.
|
13
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
14
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
15
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
16
|
+
def received(params = {})
|
17
|
+
response = get('secret_mails.json', params)
|
18
|
+
response.map do |sm|
|
19
|
+
Croudia::Object::SecretMail.new(sm)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Returns the 20 most recent direct messages sent by the authenticating user.
|
24
|
+
#
|
25
|
+
# @see https://developer.croudia.com/docs/22_secret_mails_sent
|
26
|
+
# @return [Array<Croudia::Object::SecretMail>] Secret mails that authenticating user is sent.
|
27
|
+
# @param params [Hash] A customized options.
|
28
|
+
# @option params [Boolean] :trim_user When set to true, each message returned in a timeline will include a user object including only the status authors numerical ID.
|
29
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
30
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
31
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
32
|
+
def sent(params = {})
|
33
|
+
response = get('secret_mails/sent.json', params)
|
34
|
+
response.map do |sm|
|
35
|
+
Croudia::Object::SecretMail.new(sm)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Sends a new message to the specified user from the authenticating user.
|
40
|
+
#
|
41
|
+
# @see https://developer.croudia.com/docs/23_secret_mails_new
|
42
|
+
# @return [Croudia::Object::SecretMail] Sent message.
|
43
|
+
# @param params [Hash] A customized options.
|
44
|
+
# @option params [String] :text The text of your status update, typically up to 372 characters.
|
45
|
+
# @option params [String] :screen_name The screen name of the user for whom to send message.
|
46
|
+
# @option params [Integer] :user_id The ID of the user for whom to send message.
|
47
|
+
def new_message(params = {})
|
48
|
+
response = post('secret_mails/new.json', params)
|
49
|
+
Croudia::Object::SecretMail.new(response)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Sends a new message with image to the specified user from the authenticating user.
|
53
|
+
#
|
54
|
+
# @see https://developer.croudia.com/docs/26_secret_mails_new_with_media
|
55
|
+
# @return [Croudia::Object::SecretMail] Sent message.
|
56
|
+
# @param params [Hash] A customized options.
|
57
|
+
# @option params [String] :text The text of your status update, typically up to 372 characters.
|
58
|
+
# @option params [File] :media Attachment image as PNG, JPEG or GIF format.
|
59
|
+
# @option params [String] :screen_name The screen name of the user for whom to send message.
|
60
|
+
# @option params [Integer] :user_id The ID of the user for whom to send message.
|
61
|
+
def new_message_with_media(params = {})
|
62
|
+
response = post('secret_mails/new_with_media.json', params)
|
63
|
+
Croudia::Object::SecretMail.new(response)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Deletes the authenticating user's sent message.
|
67
|
+
#
|
68
|
+
# @see https://developer.croudia.com/docs/24_secret_mails_destroy
|
69
|
+
# @return [Croudia::Object::SecretMail] Deleted message.
|
70
|
+
# @param status [Croudia::Object::SecretMail] Delete status.
|
71
|
+
def delete_message(status)
|
72
|
+
response = post("secret_mails/destroy/#{status.id}.json")
|
73
|
+
Croudia::Object::SecretMail.new(response)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Returns a single message, specified by the id parameter.
|
77
|
+
#
|
78
|
+
# @see https://developer.croudia.com/docs/25_secret_mails_show
|
79
|
+
# @return [Croudia::Object::SecretMail] Message specified by id.
|
80
|
+
# @param status [Croudia::Object::SecretMail] Message.
|
81
|
+
def message(status)
|
82
|
+
response = get("secret_mails/show/#{status.id}.json")
|
83
|
+
Croudia::Object::SecretMail.new(response)
|
84
|
+
end
|
85
|
+
|
86
|
+
# Returns the URI of the image that attached to message.
|
87
|
+
#
|
88
|
+
# @see https://developer.croudia.com/docs/27_secret_mails_get_secret_photo
|
89
|
+
# @return [String] URL of attaching message.
|
90
|
+
# @param status [Croudia::Object::SecretMail] Status.
|
91
|
+
def message_photo(status)
|
92
|
+
"https://api.croudia.com/secret_mails/get_secret_photo/#{status.id}.json"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
require 'croudia/object/status'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module Statuses
|
6
|
+
|
7
|
+
# Returns a collection of the most recent Whispers, spreads and comments posted by the authenticating user and the users they non-protected.
|
8
|
+
#
|
9
|
+
# @see https://developer.croudia.com/docs/01_statuses_public_timeline
|
10
|
+
# @return [Array<Croudia::Object::Status>] Collection of the most recent statuses.
|
11
|
+
# @param params [Hash] A customized options.
|
12
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
13
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
14
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
15
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
16
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
17
|
+
def public_timeline(params = {})
|
18
|
+
response = get('2/statuses/public_timeline.json', params)
|
19
|
+
response.map{ |status| Croudia::Object::Status.new(status) }
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns a collection of the most recent Whispers, spreads and comments posted by the authenticating user and the users they following.
|
23
|
+
#
|
24
|
+
# @see https://developer.croudia.com/docs/02_statuses_home_timeline
|
25
|
+
# @return [Array<Croudia::Object::Status>] Collection of the most recent statuses.
|
26
|
+
# @param params [Hash] A customized options.
|
27
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
28
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
29
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
30
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
31
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
32
|
+
def home_timeline(params = {})
|
33
|
+
response = get('2/statuses/home_timeline.json', params)
|
34
|
+
response.map{ |status| Croudia::Object::Status.new(status) }
|
35
|
+
end
|
36
|
+
|
37
|
+
# Returns a collection of the most recent Whispers, spreads and comments posted by specified user.
|
38
|
+
#
|
39
|
+
# @see https://developer.croudia.com/docs/03_statuses_user_timeline
|
40
|
+
# @return [Array<Croudia::Object::Status>] Collection of the most recent statuses.
|
41
|
+
# @param params [Hash] A customized options.
|
42
|
+
# @option params [String] :screen_name The screen name of the user for whom to return results for.
|
43
|
+
# @option params [Integer] :user_id The ID of the user for whom to return results for.
|
44
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
45
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
46
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
47
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
48
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
49
|
+
def user_timeline(params = {})
|
50
|
+
response = get('2/statuses/user_timeline.json', params)
|
51
|
+
response.map{ |status| Croudia::Object::Status.new(status) }
|
52
|
+
end
|
53
|
+
|
54
|
+
# Returns the 20 most recent mentions (Whispers containing a users’s @screen_name) for the authenticating user.
|
55
|
+
#
|
56
|
+
# @see https://developer.croudia.com/docs/04_statuses_mentions
|
57
|
+
# @return [Array<Croudia::Object::Status>] Collection of the most recent statuses.
|
58
|
+
# @param params [Hash] A customized options.
|
59
|
+
# @option params [Boolean] :trim_user When set to true, each whisper returned in a timeline will include a user object including only the status authors numerical ID.
|
60
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
61
|
+
# @option params [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID.
|
62
|
+
# @option params [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
|
63
|
+
# @option params [Integer] :count Specifies the number of statuses to retrieve.
|
64
|
+
def mentions_timeline(params = {})
|
65
|
+
response = get('2/statuses/mentions.json', params)
|
66
|
+
response.map{ |status| Croudia::Object::Status.new(status) }
|
67
|
+
end
|
68
|
+
|
69
|
+
# Updates the authenticating user’s current status.
|
70
|
+
#
|
71
|
+
# @see https://developer.croudia.com/docs/11_statuses_update
|
72
|
+
# @return [Croudia::Object::Status] Updated status.
|
73
|
+
# @param params [Hash] A customized options.
|
74
|
+
# @option params [String] :status The text of your status update, typically up to 372 characters.
|
75
|
+
# @option params [Integer] :in_reply_to_status_id The ID of an existing status that the update is in reply to.
|
76
|
+
# @option params [Integer] :timer Whispers timer's seconds.
|
77
|
+
# @option params [Boolean] :trim_user When set to true, the whisper returned will include a user object including only the status authors numerical ID.
|
78
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
79
|
+
def update_status(params = {})
|
80
|
+
response = post('2/statuses/update.json', params)
|
81
|
+
Croudia::Object::Status.new(response)
|
82
|
+
end
|
83
|
+
|
84
|
+
# Updates the authenticating user's current status with media as photos.
|
85
|
+
#
|
86
|
+
# @see https://developer.croudia.com/docs/14_statuses_update_with_media
|
87
|
+
# @return [Croudia::Object::Status] Updated status.
|
88
|
+
# @param params [Hash] A customized options.
|
89
|
+
# @option params [String] :status The text of your status update, typically up to 372 characters.
|
90
|
+
# @option params [File] :media Attachment image that PNG, JPEG or GIF format.
|
91
|
+
# @option params [Integer] :in_reply_to_status_id The ID of an existing status that the update is in reply to.
|
92
|
+
# @option params [Integer] :timer Whispers timer's seconds.
|
93
|
+
# @option params [Boolean] :trim_user When set to true, the whisper returned will include a user object including only the status authors numerical ID.
|
94
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
95
|
+
def update_status_with_media(params = {})
|
96
|
+
response = post('2/statuses/update_with_media.json', params)
|
97
|
+
Croudia::Object::Status.new(response)
|
98
|
+
end
|
99
|
+
|
100
|
+
# Deletes the authenticating user's status.
|
101
|
+
#
|
102
|
+
# @see https://developer.croudia.com/docs/12_statuses_destroy
|
103
|
+
# @return [Croudia::Object::Status] Deleted status.
|
104
|
+
# @param status [Croudia::Object::Status] Delete status.
|
105
|
+
# @param params [Hash] A customized options.
|
106
|
+
# @option params [Boolean] :trim_user When set to true, whisper returned will include a user object including only the status authors numerical ID.
|
107
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
108
|
+
def delete_status(status, params = {})
|
109
|
+
response = post("2/statuses/destory/#{status.id}.json", params)
|
110
|
+
Croudia::Object::Status.new(response)
|
111
|
+
end
|
112
|
+
alias_method :delete_spread, :delete_status
|
113
|
+
|
114
|
+
# Returns a single Whisper, specified by the id parameter.
|
115
|
+
#
|
116
|
+
# @see https://developer.croudia.com/docs/13_statuses_show
|
117
|
+
# @return [Croudia::Object::Status] Status specified by id.
|
118
|
+
# @param status [Croudia::Object::Status] Status.
|
119
|
+
# @param params [Hash] A customized options.
|
120
|
+
# @option params [Boolean] :trim_user When set to true, whisper returned will include a user object including only the status authors numerical ID.
|
121
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
122
|
+
def status(status, params = {})
|
123
|
+
response = get("2/statuses/show/#{status.id}.json", params)
|
124
|
+
Croudia::Object::Status.new(response)
|
125
|
+
end
|
126
|
+
|
127
|
+
# Shares the status by authenticating user.
|
128
|
+
#
|
129
|
+
# @see https://developer.croudia.com/docs/61_statuses_spread
|
130
|
+
# @return [Croudia::Object::Status] Status shread by id.
|
131
|
+
# @param status [Croudia::Object::Status] Status.
|
132
|
+
# @param params [Hash] A customized options.
|
133
|
+
# @option params [Boolean] :trim_user When set to true, whisper returned will include a user object including only the status authors numerical ID.
|
134
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
135
|
+
def spread(status, params = {})
|
136
|
+
response = post("2/statuses/spread/#{status.id}.json", params)
|
137
|
+
Croudia::Object::Status.new(response)
|
138
|
+
end
|
139
|
+
|
140
|
+
#
|
141
|
+
#
|
142
|
+
# @see https://developer.croudia.com/docs/112_statuses_comment
|
143
|
+
# @return [Croudia::Object::Status] Commented status.
|
144
|
+
# @param params [Hash] A customized options.
|
145
|
+
# @option params [Integer] :id Comment status id.
|
146
|
+
# @option params [String] :status Comment body.
|
147
|
+
# @option params [Boolean] :trim_user When set to true, whisper returned will include a user object including only the status authors numerical ID.
|
148
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
149
|
+
def comment(params = {})
|
150
|
+
response = post('2/statuses/comment.json', params)
|
151
|
+
Croudia::Object::Status.new(response)
|
152
|
+
end
|
153
|
+
|
154
|
+
#
|
155
|
+
#
|
156
|
+
# @see https://developer.croudia.com/docs/113_statuses_comment_with_media
|
157
|
+
# @return [Croudia::Object::Status] Commented status.
|
158
|
+
# @param params [Hash] A customized options.
|
159
|
+
# @option params [Integer] :id Comment status id.
|
160
|
+
# @option params [String] :status Comment body.
|
161
|
+
# @option params [File] :media Attachment media.
|
162
|
+
# @option params [Boolean] :trim_user When set to true, whisper returned will include a user object including only the status authors numerical ID.
|
163
|
+
# @option params [Boolean] :include_entities The entities node will be omitted when set to false.
|
164
|
+
def comment_with_media(params = {})
|
165
|
+
response = post('2/statuses/comment_with_media.json', params)
|
166
|
+
Croudia::Object::Status.new(response)
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'croudia/object/trend'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module Trends
|
6
|
+
|
7
|
+
# Returns the top 10 trending topics for a specific WOEID.
|
8
|
+
#
|
9
|
+
# @see https://developer.croudia.com/docs/100_trends_place
|
10
|
+
# @return [Croudia::Object::Trend] Trends
|
11
|
+
# @param params [Hash] A customized options.
|
12
|
+
# @option params [Integer] :woeid Please set 1.
|
13
|
+
def place(params = {})
|
14
|
+
response = get('trends/place.json', params)
|
15
|
+
Croudia::Object::Trend.new(response)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'croudia/object/user'
|
2
|
+
|
3
|
+
module Croudia
|
4
|
+
module Rest
|
5
|
+
module Users
|
6
|
+
|
7
|
+
# Returns a variety of information about the user.
|
8
|
+
#
|
9
|
+
# @see https://developer.croudia.com/docs/31_users_show
|
10
|
+
# @return [Croudia::Object::User] Variety of information about the user.
|
11
|
+
# @param params [Hash] A customized options.
|
12
|
+
# @option params [String] :screen_name The screen name of the user for whom to return results for.
|
13
|
+
# @option params [Integer] :user_id The ID of the user for whom to return results for.
|
14
|
+
def user(params = {})
|
15
|
+
response = get('users/show.json', params)
|
16
|
+
Croudia::Object::User.new(response)
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
# Returns a information about the up to 100 users.
|
21
|
+
#
|
22
|
+
# @see https://developer.croudia.com/docs/32_users_lookup
|
23
|
+
# @return [Array<Croudia::Object::User>] Information about the users.
|
24
|
+
# @param params [Hash] A customized options.
|
25
|
+
# @option params [String] :screen_name The camma-separated screen name of the user for whom to return results for.
|
26
|
+
# @option params [Integer] :user_id The camma-separated IDs of the user for whom to return results for.
|
27
|
+
def users(params = {})
|
28
|
+
response = get('users/lookup.json', params)
|
29
|
+
response.map {|user| Croudia::Object::User.new(user) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/croudia.rb
ADDED