reddit_bot 1.6.10 → 1.6.11

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: f9031d3dd4d2758bc8626543817dd6ef4a417257
4
- data.tar.gz: eccfa52cf3aa13e9debf122e9f1d9d23acf7f451
3
+ metadata.gz: f8aaacf7ddc5b651ab7dc97b62a723d666c6207f
4
+ data.tar.gz: c01bcc87927f9c44e839f58f6f9244d8c73548ab
5
5
  SHA512:
6
- metadata.gz: 7b413147f603c4393f4a2601ee94ee13e67c16e8dbcf4f95f53a16965d4b2c4fbad10068184fe979d668db706d4e7f23a05dc22b3ba347e42bace10dd2df341f
7
- data.tar.gz: 601b4b1a3c8e8947f233a96628a5318973263ab680d6bc7bb5c9d89c724ef298a384f6d2e46584e73be5cdd76161ecefc868d54b053b4ce5f4732e5becea127a
6
+ metadata.gz: 46b32b8d7619c6064e7a0f8720411b67fc3961e942b398dc881c913188b6a158d5015eccd5d91c1ef4c5873ca7d3bdd3d01f0a1e1e95c67a402eda05cc4758a6
7
+ data.tar.gz: 5dd0e963c86be5fefbbc2f6dec48c6faaf3f59e3cb60295361b61124bbd08a5a44b888eef076469275adda25c27e1cb926c2809695532f850ba5ce5eaf555959
@@ -1,3 +1,3 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "reddit_bot", git: "git@github.com:nakilon/reddit_bot.git"
3
+ gem "reddit_bot"
@@ -1,22 +1,17 @@
1
- GIT
2
- remote: git@github.com:nakilon/reddit_bot.git
3
- revision: 0a0649b20ff0b1a28366a17ec7c037e481e850b3
4
- specs:
5
- reddit_bot (1.6.7)
6
- json
7
- nethttputils (~> 0.2.4.1)
8
-
9
1
  GEM
10
2
  remote: https://rubygems.org/
11
3
  specs:
12
4
  json (2.1.0)
13
- nethttputils (0.2.4.2)
5
+ nethttputils (0.2.5.1)
6
+ reddit_bot (1.6.10)
7
+ json
8
+ nethttputils (~> 0.2.5.1)
14
9
 
15
10
  PLATFORMS
16
11
  ruby
17
12
 
18
13
  DEPENDENCIES
19
- reddit_bot!
14
+ reddit_bot
20
15
 
21
16
  BUNDLED WITH
22
- 1.16.1
17
+ 1.17.1
@@ -80,14 +80,14 @@ GEM
80
80
  mini_portile2 (2.3.0)
81
81
  multi_json (1.13.1)
82
82
  multipart-post (2.0.0)
83
- nethttputils (0.2.4.2)
83
+ nethttputils (0.2.5.1)
84
84
  nokogiri (1.8.4)
85
85
  mini_portile2 (~> 2.3.0)
86
86
  os (0.9.6)
87
87
  public_suffix (2.0.5)
88
- reddit_bot (1.6.7)
88
+ reddit_bot (1.6.10)
89
89
  json
90
- nethttputils (~> 0.2.4.1)
90
+ nethttputils (~> 0.2.5.1)
91
91
  rly (0.2.3)
92
92
  signet (0.8.1)
93
93
  addressable (~> 2.3)
@@ -110,4 +110,4 @@ DEPENDENCIES
110
110
  reddit_bot
111
111
 
112
112
  BUNDLED WITH
113
- 1.16.1
113
+ 1.17.1
@@ -1,3 +1,3 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "reddit_bot", git: "git@github.com:nakilon/reddit_bot.git"
3
+ gem "reddit_bot"
@@ -1,22 +1,17 @@
1
- GIT
2
- remote: git@github.com:nakilon/reddit_bot.git
3
- revision: 351c559e507289aa6385e769eb6d5c6de80ba629
4
- specs:
5
- reddit_bot (1.6.7)
6
- json
7
- nethttputils (~> 0.2.4.1)
8
-
9
1
  GEM
10
2
  remote: https://rubygems.org/
11
3
  specs:
12
4
  json (2.1.0)
13
- nethttputils (0.2.4.2)
5
+ nethttputils (0.2.5.1)
6
+ reddit_bot (1.6.10)
7
+ json
8
+ nethttputils (~> 0.2.5.1)
14
9
 
15
10
  PLATFORMS
16
11
  ruby
17
12
 
18
13
  DEPENDENCIES
19
- reddit_bot!
14
+ reddit_bot
20
15
 
21
16
  BUNDLED WITH
22
- 1.16.1
17
+ 1.17.1
@@ -86,7 +86,7 @@ loop do
86
86
  flair["text"] == "Contains Media"
87
87
  end
88
88
 
89
- timeout = 0
89
+ timeout = 1
90
90
  JSON.load( begin
91
91
  NetHTTPUtils.request_data(
92
92
  "https://api.twitter.com/1.1/statuses/user_timeline.json",
@@ -102,7 +102,8 @@ loop do
102
102
  end
103
103
  rescue NetHTTPUtils::Error => e
104
104
  fail if e.code != 503
105
- sleep(timeout += 1)
105
+ sleep timeout
106
+ timeout *= 2
106
107
  retry
107
108
  end ).reverse_each do |tweet|
108
109
  next if tweet["id"] <= id
data/lib/reddit_bot.rb CHANGED
@@ -111,6 +111,25 @@ module RedditBot
111
111
  end
112
112
  end
113
113
 
114
+ @@skip_erroneous_descending_ids = lambda do |array|
115
+ array.reverse.each_with_object([]) do |item, result|
116
+ unless result.empty?
117
+ a, b = [item["id"], result.first["id"]]
118
+ next if a == b || a.size < b.size || !(a.size > b.size) && a < b
119
+ end
120
+ result.unshift item
121
+ end
122
+ end
123
+ fail unless p(@@skip_erroneous_descending_ids[[
124
+ {"id" => "0h"},
125
+ {"id" => "g"},
126
+ {"id" => "f"},
127
+ {"id" => "i"},
128
+ {"id" => "e"},
129
+ {"id" => "b"},
130
+ {"id" => "c"},
131
+ {"id" => "d"},
132
+ ]].flat_map(&:values)) == %w{ 0h i e d }
114
133
  # :yields: JSON objects: ["data"] part of post or self.post
115
134
  def new_posts subreddit = nil, caching = false
116
135
  cache = lambda do |id, &block|
@@ -133,9 +152,11 @@ module RedditBot
133
152
  fail if result["kind"] != "Listing"
134
153
  fail result["data"].keys.inspect unless result["data"].keys == %w{ after dist modhash whitelist_status children before } ||
135
154
  result["data"].keys == %w{ modhash dist children after before }
136
- result["data"]["children"].each do |post|
155
+ @@skip_erroneous_descending_ids[ result["data"]["children"].map do |post|
137
156
  fail "unknown type post['kind']: #{post["kind"]}" unless post["kind"] == "t3"
138
- e << post["data"]
157
+ post["data"]
158
+ end ].each do |data|
159
+ e << data
139
160
  end
140
161
  break unless marker = result["data"]["after"]
141
162
  after = {after: marker}
@@ -1,3 +1,3 @@
1
1
  module RedditBot
2
- VERSION = "1.6.10" # :nodoc:
2
+ VERSION = "1.6.11" # :nodoc:
3
3
  end
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.6.10
4
+ version: 1.6.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov