reddit_bot 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/oneplus/Gemfile.lock +1 -1
- data/lib/reddit_bot.rb +13 -10
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f403237693827c791d79ee8904c9cfb9dc5a5a7
|
4
|
+
data.tar.gz: a3804dca179ba6cb72455d65f6b50cd1cecd3939
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 601b5f77064340aedbc9264a0f96483705c49302f913af46db8fc3d347ade2222969516804976d6af55dac7cbc3b041e46918c5170b141ebc1b6cf31d05a7d59
|
7
|
+
data.tar.gz: 906036dc78a34315d0df25958c094e042b4d66ed68f8198004f530eea20df76a8013a33ee7ef67108bf8299a81602dd5ea7d774f92742ecac0b5911353a446db
|
data/lib/reddit_bot.rb
CHANGED
@@ -8,7 +8,7 @@ require "json"
|
|
8
8
|
|
9
9
|
|
10
10
|
module RedditBot
|
11
|
-
VERSION = "1.1.
|
11
|
+
VERSION = "1.1.2"
|
12
12
|
|
13
13
|
class Bot
|
14
14
|
|
@@ -40,7 +40,7 @@ module RedditBot
|
|
40
40
|
iden: @iden_and_captcha[0],
|
41
41
|
captcha: @iden_and_captcha[1],
|
42
42
|
} ) unless @ignore_captcha
|
43
|
-
else ;
|
43
|
+
else ; fail error
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
@@ -91,22 +91,25 @@ module RedditBot
|
|
91
91
|
text: link_flair_text,
|
92
92
|
flair_template_id: (@flairselector_choices ||=
|
93
93
|
json :post, "/r/#{@subreddit}/api/flairselector", link: post["name"]
|
94
|
-
)["choices"].find{ |i| i["flair_css_class"] == link_flair_css_class }
|
94
|
+
)["choices"].find{ |i| i["flair_css_class"] == link_flair_css_class }.tap{ |flair|
|
95
|
+
fail "can't find '#{link_flair_css_class}' flair class at https://www.reddit.com/r/#{@subreddit}/about/flair/#link_templates" unless flair
|
96
|
+
}["flair_template_id"]
|
95
97
|
end
|
96
98
|
|
97
99
|
private
|
98
100
|
|
99
101
|
def token
|
100
102
|
return @token_cached if @token_cached
|
101
|
-
response = JSON.parse
|
103
|
+
response = JSON.parse reddit_resp :post,
|
102
104
|
"https://www.reddit.com/api/v1/access_token", {
|
103
105
|
grant_type: "password",
|
104
106
|
username: @username = @secrets[3],
|
105
107
|
password: @secrets[2],
|
106
|
-
}, {},
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
}, {}, [@secrets[0], @secrets[1]]
|
109
|
+
unless @token_cached = response["access_token"]
|
110
|
+
fail "bot isn't a 'developer' of app at https://www.reddit.com/prefs/apps/" if response == {"error"=>"invalid_grant"}
|
111
|
+
fail response.inspect
|
112
|
+
end
|
110
113
|
puts "new token is: #{@token_cached}"
|
111
114
|
update_captcha if "true" == resp_with_token(:get, "/api/needs_captcha", {})
|
112
115
|
@token_cached
|
@@ -123,7 +126,7 @@ module RedditBot
|
|
123
126
|
end
|
124
127
|
|
125
128
|
def resp_with_token mtd, url, form
|
126
|
-
|
129
|
+
nil until _ = catch(:"401") do
|
127
130
|
reddit_resp mtd, "https://oauth.reddit.com" + url, form, [
|
128
131
|
["Authorization", "bearer #{token}"],
|
129
132
|
["User-Agent", "bot/#{@username}/0.0.0 by /u/nakilon"],
|
@@ -134,7 +137,7 @@ module RedditBot
|
|
134
137
|
|
135
138
|
def reddit_resp *args
|
136
139
|
response = nil
|
137
|
-
|
140
|
+
tap do
|
138
141
|
response = _resp *args
|
139
142
|
case response.code
|
140
143
|
when "502", "503", "520", "500", "521", "504", "400", "522"
|