reddit_bot 1.7.5 → 1.7.6

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: 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