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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2aea3d07e9510bd5c41964c9bc75067ebc90ba4e
4
- data.tar.gz: 7ac6560136ee35dfcf5e275bfe5c8285d681e71a
3
+ metadata.gz: 6f403237693827c791d79ee8904c9cfb9dc5a5a7
4
+ data.tar.gz: a3804dca179ba6cb72455d65f6b50cd1cecd3939
5
5
  SHA512:
6
- metadata.gz: 07f4ebc133019136ba82c9dfa410e9eeefa642e78ccb16e0bcca61830e2fb628f36d96c7631e4801e9589fd532f551bde508e89f8716b00e6acadf07e8bb1200
7
- data.tar.gz: 198430df97f9d699f3f400b7013627f8c4c31023b77ac96426fbb9065a419dc2e84dad299028ecf2f8907c48b142124a7aadd7d4f12e10683308d86d76482ea6
6
+ metadata.gz: 601b5f77064340aedbc9264a0f96483705c49302f913af46db8fc3d347ade2222969516804976d6af55dac7cbc3b041e46918c5170b141ebc1b6cf31d05a7d59
7
+ data.tar.gz: 906036dc78a34315d0df25958c094e042b4d66ed68f8198004f530eea20df76a8013a33ee7ef67108bf8299a81602dd5ea7d774f92742ecac0b5911353a446db
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- reddit_bot (1.0.1)
4
+ reddit_bot (1.1.1)
5
5
  json
6
6
 
7
7
  GEM
data/lib/reddit_bot.rb CHANGED
@@ -8,7 +8,7 @@ require "json"
8
8
 
9
9
 
10
10
  module RedditBot
11
- VERSION = "1.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 ; raise error
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 }["flair_template_id"]
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(reddit_resp(:post,
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
- }, {}, # headers
107
- [@secrets[0], @secrets[1]],
108
- ))
109
- raise response.inspect unless @token_cached = response["access_token"]
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
- {} until _ = catch(:"401") do
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
- 1.times do
140
+ tap do
138
141
  response = _resp *args
139
142
  case response.code
140
143
  when "502", "503", "520", "500", "521", "504", "400", "522"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reddit_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov