reddit_bot 1.7.5 → 1.7.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5dca4b66ca047773ac0de806e1281cf7a088bf8f
4
- data.tar.gz: d53ad1a90ba44333ab2245b98a304da5e0f89974
3
+ metadata.gz: 52b34b7ffbd747f455238139479414c4c73575e3
4
+ data.tar.gz: 7b08991727037d0f91bcecfb7bca40caa5e33b81
5
5
  SHA512:
6
- metadata.gz: a97e1f8905b56cafa91ce4c3509f7a779db5e5579f8f480363876f45bf4bc152cffd5c4b75ea2040607d95892b831d728981c372440145153577e04ca213e0f6
7
- data.tar.gz: 950cbf9d106d01f4f6a68e3a8884d36cc7b0962a4488b3c8363c7d44cda637570e706581b7d07413e0c4d2dfe121f54575b0c14a8bbe3b01176f1f7284a734dc
6
+ metadata.gz: 7ee3c17c7ce2683ca7bfce42f50bdde6af718de47a1b1093f37e9efcc6a49181574dd7d9d6222f58a76348235f5b4da58f416c4888e78e51c3f2067cc3745199
7
+ data.tar.gz: 5fb5186be0faeda8b551cac5354c2d558d2972cfb41631f48feca0bd0c975bfb8626305d1bed292805ae8a128864679b531b474f3151f0019a31645604cc2e8c
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "reddit_bot"
@@ -0,0 +1,21 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ addressable (2.7.0)
5
+ public_suffix (>= 2.0.2, < 5.0)
6
+ json (2.3.0)
7
+ nethttputils (0.4.0.0)
8
+ addressable
9
+ public_suffix (4.0.5)
10
+ reddit_bot (1.7.5)
11
+ json
12
+ nethttputils (~> 0.4.0.0)
13
+
14
+ PLATFORMS
15
+ ruby
16
+
17
+ DEPENDENCIES
18
+ reddit_bot
19
+
20
+ BUNDLED WITH
21
+ 2.0.2
@@ -0,0 +1,39 @@
1
+ require "reddit_bot"
2
+ subreddit = "dut".freeze
3
+ bot = RedditBot::Bot.new YAML.load(File.read "secrets.yaml"), subreddit: subreddit
4
+ twitter = RedditBot::Twitter.init_twitter "DUT_Tweets"
5
+
6
+ loop do
7
+ id = bot.new_posts.find do |post|
8
+ /\(https:\/\/twitter\.com\/#{RedditBot::Twitter::TWITTER_ACCOUNT}\/status\/(\d{18,})\)/i =~ post["selftext"] and break $1
9
+ end.to_i
10
+ fail "no tweets found in subreddit" if id.zero? unless ENV["FIRST_RUN"]
11
+
12
+ fail unless flair = bot.json(:get, "/r/#{subreddit}/api/link_flair").find do |flair|
13
+ flair["text"] == "Twitter"
14
+ end
15
+
16
+ timeline = RedditBot::Twitter.user_timeline
17
+ timeline.replace timeline.take 2 if ENV["FIRST_RUN"] # against 200 posts long flood
18
+ timeline.reverse_each do |tweet|
19
+ next if tweet["id"] <= id
20
+ title, text, _ = RedditBot::Twitter.tweet2titleNtext tweet
21
+ result = bot.json :post, "/api/submit", {
22
+ sr: subreddit,
23
+ kind: "self",
24
+ title: title,
25
+ text: text,
26
+ flair_id: flair["id"],
27
+ }
28
+ p result
29
+ if result["json"]["errors"].empty?
30
+ abort "OK" if ENV["ONCE"]
31
+ next
32
+ end
33
+ fail unless result["json"]["errors"].map(&:first) == ["ALREADY_SUB"]
34
+ puts "ALREADY_SUB error for #{tweet["id"]}"
35
+ end
36
+
37
+ puts "END LOOP #{Time.now}"
38
+ sleep 300
39
+ end
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "reddit_bot"#, git: "git@github.com:nakilon/reddit_bot.git"
4
+
5
+ gem "byebug"
@@ -0,0 +1,23 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ addressable (2.7.0)
5
+ public_suffix (>= 2.0.2, < 5.0)
6
+ byebug (11.0.1)
7
+ json (2.3.0)
8
+ nethttputils (0.4.0.0)
9
+ addressable
10
+ public_suffix (4.0.5)
11
+ reddit_bot (1.7.5)
12
+ json
13
+ nethttputils (~> 0.4.0.0)
14
+
15
+ PLATFORMS
16
+ ruby
17
+
18
+ DEPENDENCIES
19
+ byebug
20
+ reddit_bot
21
+
22
+ BUNDLED WITH
23
+ 2.0.2
@@ -0,0 +1,39 @@
1
+ require "reddit_bot"
2
+ subreddit = "unisa".freeze
3
+ bot = RedditBot::Bot.new YAML.load(File.read "secrets.yaml"), subreddit: subreddit
4
+ twitter = RedditBot::Twitter.init_twitter "unisa"
5
+
6
+ loop do
7
+ id = bot.new_posts.find do |post|
8
+ /\(https:\/\/twitter\.com\/#{RedditBot::Twitter::TWITTER_ACCOUNT}\/status\/(\d{18,})\)/i =~ post["selftext"] and break $1
9
+ end.to_i
10
+ fail "no tweets found in subreddit" if id.zero? unless ENV["FIRST_RUN"]
11
+
12
+ fail unless flair = bot.json(:get, "/r/#{subreddit}/api/link_flair").find do |flair|
13
+ flair["text"] == "Twitter"
14
+ end
15
+
16
+ timeline = RedditBot::Twitter.user_timeline
17
+ timeline.replace timeline.take 2 if ENV["FIRST_RUN"] # against 200 posts long flood
18
+ timeline.reverse_each do |tweet|
19
+ next if tweet["id"] <= id
20
+ title, text, _ = RedditBot::Twitter.tweet2titleNtext tweet
21
+ result = bot.json :post, "/api/submit", {
22
+ sr: subreddit,
23
+ kind: "self",
24
+ title: title,
25
+ text: text,
26
+ flair_id: flair["id"],
27
+ }
28
+ p result
29
+ if result["json"]["errors"].empty?
30
+ abort "OK" if ENV["ONCE"]
31
+ next
32
+ end
33
+ fail unless result["json"]["errors"].map(&:first) == ["ALREADY_SUB"]
34
+ puts "ALREADY_SUB error for #{tweet["id"]}"
35
+ end
36
+
37
+ puts "END LOOP #{Time.now}"
38
+ sleep 300
39
+ end
@@ -7,8 +7,6 @@ require "yaml"
7
7
 
8
8
  require "nethttputils"
9
9
 
10
- require_relative "reddit_bot/version" # TODO: deprecate this
11
-
12
10
  module RedditBot
13
11
  require "logger"
14
12
  class << self
@@ -205,7 +203,7 @@ module RedditBot
205
203
  username: @name,
206
204
  password: @secret_password,
207
205
  }, {
208
- "User-Agent" => "bot/#{@user_agent || @name}/#{RedditBot::VERSION} by /u/nakilon",
206
+ "User-Agent" => "bot/#{@user_agent || @name}/#{Gem::Specification::load("#{__dir__}/../reddit_bot.gemspec").version} by /u/nakilon",
209
207
  }, @secret_auth
210
208
  unless @token_cached = response["access_token"]
211
209
  fail "bot #{@name} isn't a 'developer' of app at https://www.reddit.com/prefs/apps/" if response == {"error"=>"invalid_grant"}
@@ -232,7 +230,7 @@ module RedditBot
232
230
  begin
233
231
  reddit_resp mtd, "https://oauth.reddit.com" + path, form, {
234
232
  "Authorization" => "bearer #{token}",
235
- "User-Agent" => "bot/#{@user_agent || @name}/#{RedditBot::VERSION} by /u/nakilon",
233
+ "User-Agent" => "bot/#{@user_agent || @name}/#{Gem::Specification::load("#{__dir__}/../reddit_bot.gemspec").version} by /u/nakilon",
236
234
  }
237
235
  rescue NetHTTPUtils::Error => e
238
236
  raise unless e.code == 401
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "reddit_bot"
3
- spec.version = "1.7.5"
3
+ spec.version = "1.7.6"
4
4
  spec.authors = ["Victor Maslov"]
5
5
  spec.email = ["nakilon@gmail.com"]
6
6
 
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.7.5
4
+ version: 1.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov
@@ -72,6 +72,9 @@ files:
72
72
  - examples/devflairbot/Gemfile
73
73
  - examples/devflairbot/Gemfile.lock
74
74
  - examples/devflairbot/main.rb
75
+ - examples/dut/Gemfile
76
+ - examples/dut/Gemfile.lock
77
+ - examples/dut/main.rb
75
78
  - examples/get_dimensions.rb
76
79
  - examples/iostroubleshooting/Gemfile
77
80
  - examples/iostroubleshooting/Gemfile.lock
@@ -101,6 +104,9 @@ files:
101
104
  - examples/sexypizza/Gemfile
102
105
  - examples/sexypizza/Gemfile.lock
103
106
  - examples/sexypizza/main.rb
107
+ - examples/unisa/Gemfile
108
+ - examples/unisa/Gemfile.lock
109
+ - examples/unisa/main.rb
104
110
  - examples/wallpaper/Gemfile
105
111
  - examples/wallpaper/Gemfile.lock
106
112
  - examples/wallpaper/main.rb