redditkit 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -4
- data/lib/redditkit.rb +4 -3
- data/lib/redditkit/client.rb +6 -8
- data/lib/redditkit/client/apps.rb +8 -8
- data/lib/redditkit/client/captcha.rb +2 -2
- data/lib/redditkit/client/comments.rb +2 -2
- data/lib/redditkit/client/flair.rb +10 -8
- data/lib/redditkit/client/links.rb +24 -20
- data/lib/redditkit/client/miscellaneous.rb +10 -10
- data/lib/redditkit/client/moderation.rb +23 -21
- data/lib/redditkit/client/multireddits.rb +4 -4
- data/lib/redditkit/client/private_messages.rb +6 -4
- data/lib/redditkit/client/search.rb +1 -1
- data/lib/redditkit/client/subreddits.rb +11 -7
- data/lib/redditkit/client/users.rb +17 -14
- data/lib/redditkit/client/utilities.rb +10 -8
- data/lib/redditkit/client/voting.rb +5 -5
- data/lib/redditkit/client/wiki.rb +4 -0
- data/lib/redditkit/comment.rb +4 -4
- data/lib/redditkit/error.rb +3 -3
- data/lib/redditkit/link.rb +14 -14
- data/lib/redditkit/moderator_action.rb +4 -4
- data/lib/redditkit/multireddit.rb +2 -2
- data/lib/redditkit/multireddit_description.rb +2 -2
- data/lib/redditkit/private_message.rb +2 -2
- data/lib/redditkit/response/parse_json.rb +7 -1
- data/lib/redditkit/response/raise_error.rb +4 -5
- data/lib/redditkit/subreddit.rb +13 -10
- data/lib/redditkit/thing.rb +1 -0
- data/lib/redditkit/user.rb +12 -8
- data/lib/redditkit/version.rb +1 -5
- data/lib/redditkit/votable.rb +2 -2
- data/redditkit.gemspec +1 -1
- data/spec/cassettes/RedditKit_Client_Flair/_flair_list/returns_the_list_of_flair.yml +51 -4
- data/spec/cassettes/RedditKit_Client_Moderation/_ban/requests_the_correct_resource.yml +70 -23
- data/spec/cassettes/RedditKit_Client_Moderation/_contributors_to_subreddit/requests_the_correct_resource.yml +52 -5
- data/spec/cassettes/RedditKit_Client_Moderation/_moderation_log/returns_RedditKit_ModeratorAction_objects.yml +150 -109
- data/spec/cassettes/RedditKit_Client_Moderation/_moderators_of_subreddit/requests_the_correct_resource.yml +53 -6
- data/spec/cassettes/RedditKit_Client_Moderation/_unban/requests_the_correct_resource.yml +61 -14
- data/spec/cassettes/RedditKit_Client_Multireddits/_multireddit/without_a_path/returns_a_multireddit.yml +49 -7
- data/spec/cassettes/RedditKit_Client_Multireddits/_multireddit_description/with_a_multireddit/returns_a_multireddit_description.yml +102 -11
- data/spec/cassettes/RedditKit_Client_Multireddits/_multireddit_description/with_a_username_and_multireddit_name/returns_a_multireddit_description.yml +54 -5
- data/spec/cassettes/RedditKit_Client_Search/_search/restricts_searches_to_a_specific_subreddit.yml +925 -0
- data/spec/cassettes/RedditKit_Client_Search/_search/returns_a_specific_number_of_results.yml +116 -0
- data/spec/cassettes/RedditKit_Client_Search/_search/returns_search_results.yml +884 -0
- data/spec/cassettes/RedditKit_Client_Wiki/_add_wiki_editor/requests_the_correct_resource.yml +58 -4
- data/spec/cassettes/RedditKit_Client_Wiki/_edit_wiki_page/requests_the_correct_resource.yml +58 -4
- data/spec/cassettes/RedditKit_Client_Wiki/_hide_wiki_revision/requests_the_correct_resource.yml +58 -4
- data/spec/cassettes/RedditKit_Client_Wiki/_remove_wiki_editor/requests_the_correct_resource.yml +58 -4
- data/spec/cassettes/RedditKit_Client_Wiki/_revert_to_revision/requests_the_correct_resource.yml +58 -4
- data/spec/redditkit/comment_spec.rb +6 -6
- data/spec/redditkit/link_spec.rb +38 -7
- data/spec/redditkit/thing_spec.rb +8 -0
- data/spec/redditkit/user_spec.rb +14 -0
- data/spec/spec_helper.rb +0 -4
- metadata +7 -11
@@ -28,7 +28,7 @@ module RedditKit
|
|
28
28
|
# @param link [String, RedditKit::Link] A link's full name, or a RedditKit::Link.
|
29
29
|
def approve(link)
|
30
30
|
full_name = extract_full_name link
|
31
|
-
post
|
31
|
+
post 'api/approve', { :id => full_name, :api_type => :json }
|
32
32
|
end
|
33
33
|
|
34
34
|
# Removes a link or comment.
|
@@ -36,7 +36,7 @@ module RedditKit
|
|
36
36
|
# @param object [String, RedditKit::Comment, RedditKit::Link] The full name of a link/comment, a RedditKit::Comment, or a RedditKit::Link.
|
37
37
|
def remove(object)
|
38
38
|
full_name = extract_full_name object
|
39
|
-
post
|
39
|
+
post 'api/remove', { :id => full_name, :api_type => :json }
|
40
40
|
end
|
41
41
|
|
42
42
|
# Ignores the reports on a link or comment.
|
@@ -44,7 +44,7 @@ module RedditKit
|
|
44
44
|
# @param object [String, RedditKit::Comment, RedditKit::Link] The full name of a link/comment, a RedditKit::Comment, or a RedditKit::Link.
|
45
45
|
def ignore_reports(object)
|
46
46
|
full_name = extract_full_name object
|
47
|
-
post
|
47
|
+
post 'api/ignore_reports', { :id => full_name, :api_type => :json }
|
48
48
|
end
|
49
49
|
|
50
50
|
# Unignores the reports on a link or comment.
|
@@ -52,7 +52,7 @@ module RedditKit
|
|
52
52
|
# @param object [String, RedditKit::Comment, RedditKit::Link] The full name of a link/comment, a RedditKit::Comment, or a RedditKit::Link.
|
53
53
|
def unignore_reports(object)
|
54
54
|
full_name = extract_full_name object
|
55
|
-
post
|
55
|
+
post 'api/unignore_reports', { :id => full_name, :api_type => :json }
|
56
56
|
end
|
57
57
|
|
58
58
|
# Distinguishes a comment as being posted by a moderator or admin.
|
@@ -64,7 +64,7 @@ module RedditKit
|
|
64
64
|
full_name = extract_full_name comment
|
65
65
|
parameters = { :id => full_name, :api_type => :json }
|
66
66
|
|
67
|
-
post
|
67
|
+
post "api/distinguish/#{how}", parameters
|
68
68
|
end
|
69
69
|
|
70
70
|
# Sets a post as have its contest mode enabled or disabled.
|
@@ -72,25 +72,19 @@ module RedditKit
|
|
72
72
|
# @param link [String, RedditKit::Link] The full name of a link, or a RedditKit::Link.
|
73
73
|
# @param contest_mode [Boolean] Whether to enable contest mode for the link's comments. Defaults to true.
|
74
74
|
def set_contest_mode(link, contest_mode = true)
|
75
|
-
|
76
|
-
set_as_contest = contest_mode ? 'True' : 'False'
|
77
|
-
|
78
|
-
post('api/set_contest_mode', { :id => full_name, :state => set_as_contest, :api_type => :json })
|
75
|
+
set_boolean_on_link 'api/set_contest_mode', link, contest_mode
|
79
76
|
end
|
80
|
-
|
77
|
+
|
81
78
|
# Sets a post as sticky within its parent subreddit. This will replace the existing sticky post, if there is one.
|
82
79
|
#
|
83
80
|
# @param link [String, RedditKit::Link] The full name of a link, or a RedditKit::Link.
|
84
81
|
# @param sticky [Boolean] Whether to mark the post as sticky or unsticky. Defaults to true.
|
85
82
|
def set_sticky_post(link, sticky = true)
|
86
|
-
|
87
|
-
set_as_sticky = sticky ? 'True' : 'False'
|
88
|
-
|
89
|
-
post('api/set_subreddit_sticky', { :id => full_name, :state => set_as_sticky, :api_type => :json })
|
83
|
+
set_boolean_on_link 'api/set_subreddit_sticky', link, sticky
|
90
84
|
end
|
91
85
|
|
92
86
|
# Get the moderators of a subreddit.
|
93
|
-
#
|
87
|
+
#
|
94
88
|
# @param subreddit [String, RedditKit::Subreddit] The display name of a subreddit, or a RedditKit::Subreddit.
|
95
89
|
# @return [Array<OpenStruct>]
|
96
90
|
def moderators_of_subreddit(subreddit)
|
@@ -98,7 +92,7 @@ module RedditKit
|
|
98
92
|
end
|
99
93
|
|
100
94
|
# Get the contributors to a subreddit.
|
101
|
-
#
|
95
|
+
#
|
102
96
|
# @param subreddit [String, RedditKit::Subreddit] The display name of a subreddit, or a RedditKit::Subreddit.
|
103
97
|
# @return [Array<OpenStruct>]
|
104
98
|
def contributors_to_subreddit(subreddit)
|
@@ -110,7 +104,7 @@ module RedditKit
|
|
110
104
|
# @param subreddit [String, RedditKit::Subreddit] The display name of the subreddit, or a RedditKit::Subreddit.
|
111
105
|
def accept_moderator_invitation(subreddit)
|
112
106
|
subreddit_name = extract_string(subreddit, :display_name)
|
113
|
-
post
|
107
|
+
post 'api/accept_moderator_invite', :r => subreddit_name
|
114
108
|
end
|
115
109
|
|
116
110
|
# Resign as a contributor to a subreddit.
|
@@ -118,15 +112,15 @@ module RedditKit
|
|
118
112
|
# @param subreddit [String, RedditKit::Subreddit] A subreddit's full name, or a RedditKit::Subreddit.
|
119
113
|
def resign_as_contributor(subreddit)
|
120
114
|
full_name = extract_full_name subreddit
|
121
|
-
post
|
115
|
+
post 'api/leavecontributor', :id => full_name
|
122
116
|
end
|
123
|
-
|
117
|
+
|
124
118
|
# Resign as a moderator of a subreddit.
|
125
119
|
#
|
126
120
|
# @param subreddit [String, RedditKit::Subreddit] A subreddit's full name, or a RedditKit::Subreddit.
|
127
121
|
def resign_as_moderator(subreddit)
|
128
122
|
full_name = extract_full_name subreddit
|
129
|
-
post
|
123
|
+
post 'api/leavemoderator', :id => full_name
|
130
124
|
end
|
131
125
|
|
132
126
|
# Resets a subreddit's header image.
|
@@ -134,7 +128,7 @@ module RedditKit
|
|
134
128
|
# @param subreddit [String, RedditKit::Subreddit] The display name of the subreddit, or a RedditKit::Subreddit.
|
135
129
|
def reset_subreddit_header(subreddit)
|
136
130
|
subreddit_name = extract_string(subreddit, :display_name)
|
137
|
-
post
|
131
|
+
post 'api/delete_sr_header', :r => subreddit_name
|
138
132
|
end
|
139
133
|
|
140
134
|
# Gets the moderation log for a subreddit.
|
@@ -173,6 +167,14 @@ module RedditKit
|
|
173
167
|
members.collect { |member| OpenStruct.new(member) }
|
174
168
|
end
|
175
169
|
|
170
|
+
|
171
|
+
def set_boolean_on_link(path, link, boolean)
|
172
|
+
full_name = extract_full_name link
|
173
|
+
boolean_as_string = boolean ? 'True' : 'False'
|
174
|
+
|
175
|
+
post path, { :id => full_name, :state => boolean_as_string, :api_type => :json }
|
176
|
+
end
|
177
|
+
|
176
178
|
end
|
177
179
|
end
|
178
180
|
end
|
@@ -24,7 +24,7 @@ module RedditKit
|
|
24
24
|
# @param multireddit_name [String] The multireddit's name.
|
25
25
|
# @return [RedditKit::Multireddit]
|
26
26
|
def multireddit(*args)
|
27
|
-
path =
|
27
|
+
path = 'api/multi'
|
28
28
|
|
29
29
|
if args.length == 1
|
30
30
|
path << args.first
|
@@ -93,7 +93,7 @@ module RedditKit
|
|
93
93
|
# @param subreddits [Array] An array of subreddit names or RedditKit::Subreddit objects.
|
94
94
|
# @param visibility [public, private] An array of subreddit names to be added to the multireddit.
|
95
95
|
def update_multireddit(multireddit, subreddits = [], visibility = 'private')
|
96
|
-
create_or_update_multireddit
|
96
|
+
create_or_update_multireddit :put, multireddit, subreddits, visibility
|
97
97
|
end
|
98
98
|
|
99
99
|
# Copies a multireddit.
|
@@ -162,7 +162,7 @@ module RedditKit
|
|
162
162
|
path = "api/multi#{multireddit_path}/r/#{subreddit_name}"
|
163
163
|
model = { :name => subreddit_name }
|
164
164
|
|
165
|
-
put
|
165
|
+
put path, :model => model.to_json
|
166
166
|
end
|
167
167
|
|
168
168
|
# Removes a subreddit from a multireddit owned by the current user.
|
@@ -198,7 +198,7 @@ module RedditKit
|
|
198
198
|
|
199
199
|
model = { :visibility => visibility, :subreddits => subreddit_hashes }
|
200
200
|
parameters = { :multipath => multireddit_path, :model => model.to_json }
|
201
|
-
|
201
|
+
|
202
202
|
request(method, path, parameters, connection)
|
203
203
|
end
|
204
204
|
|
@@ -2,7 +2,7 @@ require 'redditkit/private_message'
|
|
2
2
|
|
3
3
|
module RedditKit
|
4
4
|
class Client
|
5
|
-
|
5
|
+
|
6
6
|
# Methods for retrieving and sending private messages.
|
7
7
|
module PrivateMessages
|
8
8
|
|
@@ -10,11 +10,13 @@ module RedditKit
|
|
10
10
|
#
|
11
11
|
# @option options [inbox, unread, sent, messages, mentions, moderator, comments, selfreply] :category The category from which to return messages.
|
12
12
|
# @option options [1..100] :limit The number of messages to return.
|
13
|
-
# @option options [String] :before Only return subreddits before this id.
|
13
|
+
# @option options [String] :before Only return subreddits before this id.
|
14
14
|
# @option options [String] :after Only return subreddits after this id.
|
15
15
|
# @option options [Boolean] :mark Whether to mark requested messages as read.
|
16
16
|
# @return [RedditKit::PaginatedResponse]
|
17
17
|
def messages(options = {})
|
18
|
+
options = options.clone
|
19
|
+
|
18
20
|
category = options[:category] || 'inbox'
|
19
21
|
path = "message/#{category}.json"
|
20
22
|
options.delete :category
|
@@ -55,7 +57,7 @@ module RedditKit
|
|
55
57
|
# Blocks the author of a private message or comment.
|
56
58
|
# Users cannot be blocked based on username as reddit only allows you to block those who have harassed you (thus leaving a message in your inbox).
|
57
59
|
#
|
58
|
-
# @param message [String, RedditKit::PrivateMessage] A private message's full name, or a RedditKit::PrivateMessage.
|
60
|
+
# @param message [String, RedditKit::PrivateMessage] A private message's full name, or a RedditKit::PrivateMessage.
|
59
61
|
def block_author_of_message(message)
|
60
62
|
parameters = { :id => extract_full_name(message) }
|
61
63
|
post('api/block', parameters)
|
@@ -63,7 +65,7 @@ module RedditKit
|
|
63
65
|
|
64
66
|
# Unblocks a user.
|
65
67
|
#
|
66
|
-
# @param user [String, RedditKit::User] A user's username, or a RedditKit::User.
|
68
|
+
# @param user [String, RedditKit::User] A user's username, or a RedditKit::User.
|
67
69
|
def unblock(user)
|
68
70
|
enemy_name = extract_string(user, :username)
|
69
71
|
friend_request 'unfriend', :container => current_user.full_name, :name => enemy_name, :type => :enemy
|
@@ -12,7 +12,7 @@ module RedditKit
|
|
12
12
|
# @option options [1..100] limit The number of links to return.
|
13
13
|
# @option options [String] count The number of results to return before or after. This is different from `limit`.
|
14
14
|
# @option options [relevance, new, hot, top, comments] sort The sorting order for search results.
|
15
|
-
# @option options [String] before Only return links before this full name.
|
15
|
+
# @option options [String] before Only return links before this full name.
|
16
16
|
# @option options [String] after Only return links after this full name.
|
17
17
|
# @option options [cloudsearch, lucene, plain] syntax Specify the syntax for the search. Learn more: http://www.reddit.com/r/redditdev/comments/1hpicu/whats_this_syntaxcloudsearch_do/cawm0fe
|
18
18
|
# @option options [hour, day, week, month, year, all] time Show results with a specific time period.
|
@@ -10,10 +10,12 @@ module RedditKit
|
|
10
10
|
#
|
11
11
|
# @option options [new, popular, banned] category The category of subreddits. Defaults to popular.
|
12
12
|
# @option options [1..100] limit The number of subreddits to return.
|
13
|
-
# @option options [String] before Only return subreddits before this id.
|
13
|
+
# @option options [String] before Only return subreddits before this id.
|
14
14
|
# @option options [String] after Only return subreddits after this id.
|
15
15
|
# @return [RedditKit::PaginatedResponse]
|
16
16
|
def subreddits(options = {})
|
17
|
+
options = options.clone
|
18
|
+
|
17
19
|
category = options[:category] or 'popular'
|
18
20
|
path = "reddits/#{category}.json"
|
19
21
|
options.delete :category
|
@@ -21,14 +23,16 @@ module RedditKit
|
|
21
23
|
objects_from_response(:get, path, options)
|
22
24
|
end
|
23
25
|
|
24
|
-
# Gets the current user's subscribed subreddits.
|
26
|
+
# Gets the current user's subscribed subreddits.
|
25
27
|
#
|
26
28
|
# @option options [subscriber, contributor, moderator] category The category from which to return subreddits. Defaults to subscriber.
|
27
29
|
# @option options [1..100] limit The number of subreddits to return.
|
28
|
-
# @option options [String] before Only return subreddits before this id.
|
30
|
+
# @option options [String] before Only return subreddits before this id.
|
29
31
|
# @option options [String] after Only return subreddits after this id.
|
30
32
|
# @return [RedditKit::PaginatedResponse]
|
31
33
|
def subscribed_subreddits(options = {})
|
34
|
+
options = options.clone
|
35
|
+
|
32
36
|
category = options[:category] or 'subscriber'
|
33
37
|
path = "subreddits/mine/#{category}.json"
|
34
38
|
options.delete :category
|
@@ -52,7 +56,7 @@ module RedditKit
|
|
52
56
|
full_name = extract_full_name subreddit
|
53
57
|
parameters = { :action => 'sub', :sr => full_name }
|
54
58
|
|
55
|
-
post(
|
59
|
+
post('api/subscribe', parameters)
|
56
60
|
end
|
57
61
|
|
58
62
|
# Unsubscribes from a subreddit.
|
@@ -62,7 +66,7 @@ module RedditKit
|
|
62
66
|
full_name = extract_full_name subreddit
|
63
67
|
parameters = { :action => 'unsub', :sr => full_name }
|
64
68
|
|
65
|
-
post(
|
69
|
+
post('api/subscribe', parameters)
|
66
70
|
end
|
67
71
|
|
68
72
|
# Gets a random subreddit.
|
@@ -97,7 +101,7 @@ module RedditKit
|
|
97
101
|
response = get('api/subreddits_by_topic.json', parameters)
|
98
102
|
body = response[:body]
|
99
103
|
|
100
|
-
body.
|
104
|
+
body.map { |subreddit| subreddit[:name] }
|
101
105
|
end
|
102
106
|
|
103
107
|
# Gets an array of recommended subreddits.
|
@@ -112,7 +116,7 @@ module RedditKit
|
|
112
116
|
response = get('api/subreddit_recommendations.json', parameters)
|
113
117
|
body = response[:body]
|
114
118
|
|
115
|
-
body.
|
119
|
+
body.map { |subreddit| subreddit[:sr_name] }
|
116
120
|
end
|
117
121
|
|
118
122
|
end
|
@@ -11,23 +11,25 @@ module RedditKit
|
|
11
11
|
# @param username [String] A reddit account's username. Gets the current user if this is nil.
|
12
12
|
# @return [RedditKit::User]
|
13
13
|
# @example current_user = client.user
|
14
|
-
# @example user = client.user 'amberlynns'
|
14
|
+
# @example user = client.user 'amberlynns'
|
15
15
|
def user(username = nil)
|
16
16
|
if username
|
17
17
|
object_from_response(:get, "user/#{username}/about.json", nil)
|
18
18
|
else
|
19
|
-
object_from_response(:get,
|
19
|
+
object_from_response(:get, 'api/me.json', nil)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
# Gets links and comments for the current user.
|
23
|
+
# Gets links and comments for the current user.
|
24
24
|
#
|
25
25
|
# @option options [overview, comments, submitted, liked, disliked] :category The category from which to return links and comments. Defaults to overview.
|
26
26
|
# @option options [1..100] :limit The number of links and comments to return.
|
27
|
-
# @option options [String] :before Only return links and comments before this id.
|
27
|
+
# @option options [String] :before Only return links and comments before this id.
|
28
28
|
# @option options [String] :after Only return links and comments after this id.
|
29
29
|
# @return [RedditKit::PaginatedResponse]
|
30
30
|
def my_content(options = {})
|
31
|
+
options = options.clone
|
32
|
+
|
31
33
|
category = options[:category] || :overview
|
32
34
|
path = "user/#{@username}/#{category}.json"
|
33
35
|
options.delete :category
|
@@ -35,15 +37,16 @@ module RedditKit
|
|
35
37
|
objects_from_response(:get, path, options)
|
36
38
|
end
|
37
39
|
|
38
|
-
# Gets links and comments for a user.
|
40
|
+
# Gets links and comments for a user.
|
39
41
|
#
|
40
42
|
# @option options [overview, comments, submitted, liked, disliked] :category The category from which to return links and comments. Defaults to overview.
|
41
43
|
# @option options [1..100] :limit The number of links and comments to return.
|
42
|
-
# @option options [String] :before Only return links and comments before this id.
|
44
|
+
# @option options [String] :before Only return links and comments before this id.
|
43
45
|
# @option options [String] :after Only return links and comments after this id.
|
44
46
|
# @return [RedditKit::PaginatedResponse]
|
45
47
|
# @note Public access to the liked and disliked categories is disabled by default, so this will return an empty array for most users.
|
46
48
|
def user_content(user, options = {})
|
49
|
+
options = options.clone
|
47
50
|
username = user
|
48
51
|
|
49
52
|
path = "user/#{username}/%s.json" % (options[:category] if options[:category])
|
@@ -60,7 +63,7 @@ module RedditKit
|
|
60
63
|
body = response[:body]
|
61
64
|
friends = body[0][:data][:children]
|
62
65
|
|
63
|
-
friends.
|
66
|
+
friends.map { |friend| OpenStruct.new(friend) }
|
64
67
|
end
|
65
68
|
|
66
69
|
# Adds a user to the current user's friend list.
|
@@ -71,25 +74,25 @@ module RedditKit
|
|
71
74
|
friend_request 'friend', :container => current_user.full_name, :name => friend_name, :type => :friend
|
72
75
|
end
|
73
76
|
|
74
|
-
# Removes a user from the current user's friend list.
|
77
|
+
# Removes a user from the current user's friend list.
|
75
78
|
#
|
76
|
-
# @param user [String, RedditKit::User] A user's ID, or a RedditKit::User.
|
79
|
+
# @param user [String, RedditKit::User] A user's ID, or a RedditKit::User.
|
77
80
|
def unfriend(user)
|
78
81
|
friend_name = extract_string(user, :username)
|
79
82
|
friend_request 'unfriend', :container => current_user.full_name, :name => friend_name, :type => :friend
|
80
83
|
end
|
81
84
|
|
82
|
-
# Checks whether a specific username is available.
|
85
|
+
# Checks whether a specific username is available.
|
83
86
|
#
|
84
87
|
# @param username [String] A username for which to check availability.
|
85
88
|
# @return [Boolean]
|
86
|
-
# @example puts "Username is available" if client.username_available? 'some_username'
|
89
|
+
# @example puts "Username is available" if client.username_available? 'some_username'
|
87
90
|
def username_available?(username)
|
88
91
|
response = get('api/username_available.json', :user => username)
|
89
|
-
|
92
|
+
response[:body]
|
90
93
|
end
|
91
94
|
|
92
|
-
# Registers a new reddit account.
|
95
|
+
# Registers a new reddit account.
|
93
96
|
#
|
94
97
|
# @option options [String] username The username to register.
|
95
98
|
# @option options [String] password The password for the account.
|
@@ -98,7 +101,7 @@ module RedditKit
|
|
98
101
|
# @option options [String] captcha The user's response to the CAPTCHA challenge.
|
99
102
|
# @option options [Boolean] remember Whether to keep the user's session cookie beyond the current session.
|
100
103
|
def register(username, password, options = {})
|
101
|
-
parameters = { :user => username, :passwd => password, :passwd2 => password, :captcha => options[:captcha], :iden => options[:captcha_identifier] }
|
104
|
+
parameters = { :user => username, :passwd => password, :passwd2 => password, :email => options[:email], :captcha => options[:captcha], :iden => options[:captcha_identifier] }
|
102
105
|
post('api/register', parameters)
|
103
106
|
end
|
104
107
|
|
@@ -48,21 +48,21 @@ module RedditKit
|
|
48
48
|
# @return [Class]
|
49
49
|
def object_class_from_kind(kind)
|
50
50
|
case kind
|
51
|
-
when
|
51
|
+
when 't1'
|
52
52
|
RedditKit::Comment
|
53
|
-
when
|
53
|
+
when 't2'
|
54
54
|
RedditKit::User
|
55
|
-
when
|
55
|
+
when 't3'
|
56
56
|
RedditKit::Link
|
57
|
-
when
|
57
|
+
when 't4'
|
58
58
|
RedditKit::PrivateMessage
|
59
|
-
when
|
59
|
+
when 't5'
|
60
60
|
RedditKit::Subreddit
|
61
|
-
when
|
61
|
+
when 'LabeledMulti'
|
62
62
|
RedditKit::Multireddit
|
63
|
-
when
|
63
|
+
when 'LabeledMultiDescription'
|
64
64
|
RedditKit::MultiredditDescription
|
65
|
-
when
|
65
|
+
when 'modaction'
|
66
66
|
RedditKit::ModeratorAction
|
67
67
|
end
|
68
68
|
end
|
@@ -124,6 +124,8 @@ module RedditKit
|
|
124
124
|
# @param type [friend, unfriend] The type of request.
|
125
125
|
# @param options Any parameters to send with the request.
|
126
126
|
def friend_request(type, options)
|
127
|
+
options = options.clone
|
128
|
+
|
127
129
|
if options[:subreddit]
|
128
130
|
options[:r] = options[:subreddit]
|
129
131
|
options.delete :subreddit
|
@@ -6,28 +6,28 @@ module RedditKit
|
|
6
6
|
|
7
7
|
# Upvotes a link or comment.
|
8
8
|
#
|
9
|
-
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment to upvote.
|
9
|
+
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment to upvote.
|
10
10
|
def upvote(link_or_comment)
|
11
11
|
vote link_or_comment, 1
|
12
12
|
end
|
13
13
|
|
14
|
-
# Downvotes a link or comment.
|
14
|
+
# Downvotes a link or comment.
|
15
15
|
#
|
16
|
-
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment to downvote.
|
16
|
+
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment to downvote.
|
17
17
|
def downvote(link_or_comment)
|
18
18
|
vote link_or_comment, -1
|
19
19
|
end
|
20
20
|
|
21
21
|
# Withdraws a vote on a link or comment.
|
22
22
|
#
|
23
|
-
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment from which to withdraw the vote.
|
23
|
+
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment from which to withdraw the vote.
|
24
24
|
def withdraw_vote(link_or_comment)
|
25
25
|
vote link_or_comment, 0
|
26
26
|
end
|
27
27
|
|
28
28
|
# Votes on a link or comment.
|
29
29
|
#
|
30
|
-
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment from which to withdraw the vote.
|
30
|
+
# @param link_or_comment [String, RedditKit::Comment, RedditKit::Link] The link or comment from which to withdraw the vote.
|
31
31
|
# @param direction [-1, 0, 1] Downvote, no vote, and upvote respectively.
|
32
32
|
def vote(link_or_comment, direction)
|
33
33
|
full_name = extract_full_name(link_or_comment)
|