legitbot 1.3.0 → 1.4.0

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
  SHA256:
3
- metadata.gz: d709839505242be7ed07c5f6413e607bd8eb127a011765b9f45c1a3e0bba2fbb
4
- data.tar.gz: 53a19413068473299ce78887756a2ef50f59859e54d652e4314755178a30028c
3
+ metadata.gz: 783bc47b1bc8f80e5d4818f150663a2cb6fb90e5dd2378bae456eb2fb1d78823
4
+ data.tar.gz: 0e274e1eaa295ffa0e00a8d6e2884194ed53108da9ecb75c3ef2ef4746048c9e
5
5
  SHA512:
6
- metadata.gz: daaf7bbde5fae2ab3937b5e4f4cd936a61f54b80d5ec87eaca8db473977f633c993f267f6aeb101b94404119e58835878ee1433683cf613b476c6fc7f27b34b3
7
- data.tar.gz: 1e51fe4ee02eb14bb0a95230e2ca3d4716a56cee199a40f3cfcd4d0999158526f151fa7915a9a3f0a21a9054ebc3862353e1a68a89057c2cf8bbcac4d082afb8
6
+ metadata.gz: ec7c2f2cb78cc8a586a35bea72e39b12835679089f4b4d5cba754aa0caccee0c9e8c1c94461a7fd8fcb1cf4f8195f196346ea4abe7bd96a080c5c831f9d68c7a
7
+ data.tar.gz: a92ea8ff049127871988e8dbad7cb76b3c53f13dde97a157509e9013898c1da2cc3e573ae695d9af2e82372bf478348aeca6ec77a673798b52ac1e3ab623e214
@@ -1,6 +1,10 @@
1
1
  name: build
2
2
 
3
- on: [pull_request, push]
3
+ on:
4
+ pull_request:
5
+ push:
6
+ schedule:
7
+ - cron: '29 6 * * 6'
4
8
 
5
9
  jobs:
6
10
  test:
@@ -9,7 +13,7 @@ jobs:
9
13
  strategy:
10
14
  fail-fast: false
11
15
  matrix:
12
- ruby: [ jruby, 2.6 ]
16
+ ruby: [ jruby, 2.5, 2.6, 2.7 ]
13
17
 
14
18
  steps:
15
19
  - uses: actions/checkout@v2
@@ -37,7 +41,7 @@ jobs:
37
41
 
38
42
  strategy:
39
43
  matrix:
40
- ruby: [ 2.6 ]
44
+ ruby: [ 2.7 ]
41
45
 
42
46
  steps:
43
47
  - uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -1,3 +1,10 @@
1
1
  AllCops:
2
2
  CacheRootDirectory: 'vendor'
3
3
  NewCops: enable
4
+ SuggestExtensions: false
5
+
6
+ Gemspec/RequiredRubyVersion:
7
+ Enabled: false
8
+
9
+ Naming/MemoizedInstanceVariableName:
10
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.4
1
+ 2.7.3
data/README.md CHANGED
@@ -55,7 +55,6 @@ end
55
55
  * [Pinterest](https://help.pinterest.com/en/articles/about-pinterest-crawler-0)
56
56
  * [Twitterbot](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started), the list of IPs is in the [Troubleshooting page](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/troubleshooting-cards)
57
57
  * [Yandex robots](https://yandex.com/support/webmaster/robot-workings/check-yandex-robots.xml)
58
- * [Petal robots (Huawei search)](http://aspiegel.com/petalbot)
59
58
 
60
59
  ## License
61
60
 
data/legitbot.gemspec CHANGED
@@ -14,13 +14,13 @@ Gem::Specification.new do |spec|
14
14
  spec.summary = 'Validate requests from Web crawlers: impersonating or not?'
15
15
  spec.description = 'Does Web request come from a real search engine or from an impersonating agent?'
16
16
 
17
- spec.required_ruby_version = '>= 2.4.0'
17
+ spec.required_ruby_version = '>= 2.5.0'
18
18
  spec.add_dependency 'augmented_interval_tree', '~> 0.1', '>= 0.1.1'
19
19
  spec.add_dependency 'irrc', '~> 0.2', '>= 0.2.1'
20
20
  spec.add_development_dependency 'bump', '~> 0.8', '>= 0.8.0'
21
21
  spec.add_development_dependency 'minitest', '~> 5.1', '>= 5.1.0'
22
22
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.0'
23
- spec.add_development_dependency 'rubocop', '~> 0.92.0', '>= 0.92.0'
23
+ spec.add_development_dependency 'rubocop', '~> 1.15.0', '>= 1.15.0'
24
24
 
25
25
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
26
26
  spec.rdoc_options = ['--charset=UTF-8']
data/lib/legitbot.rb CHANGED
@@ -15,4 +15,3 @@ require_relative 'legitbot/oracle'
15
15
  require_relative 'legitbot/pinterest'
16
16
  require_relative 'legitbot/twitter'
17
17
  require_relative 'legitbot/yandex'
18
- require_relative 'legitbot/petalbot'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Legitbot
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -34,7 +34,7 @@ class PinterestTest < Minitest::Test
34
34
  assert bot.valid?, msg: 'Valid Pinterest'
35
35
  end
36
36
 
37
- # rubocop:disable Metrics/LineLength
37
+ # rubocop:disable Layout/LineLength
38
38
  def test_android_not_bot
39
39
  bot = Legitbot.bot(
40
40
  'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965F Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 Mobile Safari/537.36 [Pinterest/Android]',
@@ -42,7 +42,7 @@ class PinterestTest < Minitest::Test
42
42
  )
43
43
  assert_nil bot
44
44
  end
45
- # rubocop:enable Metrics/LineLength
45
+ # rubocop:enable Layout/LineLength
46
46
 
47
47
  def test_engine_name
48
48
  bot = Legitbot.bot(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legitbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Azarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-16 00:00:00.000000000 Z
11
+ date: 2021-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: augmented_interval_tree
@@ -116,20 +116,20 @@ dependencies:
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: 0.92.0
119
+ version: 1.15.0
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 0.92.0
122
+ version: 1.15.0
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: 0.92.0
129
+ version: 1.15.0
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 0.92.0
132
+ version: 1.15.0
133
133
  description: Does Web request come from a real search engine or from an impersonating
134
134
  agent?
135
135
  email: self@alaz.me
@@ -160,7 +160,6 @@ files:
160
160
  - lib/legitbot/google.rb
161
161
  - lib/legitbot/legitbot.rb
162
162
  - lib/legitbot/oracle.rb
163
- - lib/legitbot/petalbot.rb
164
163
  - lib/legitbot/pinterest.rb
165
164
  - lib/legitbot/twitter.rb
166
165
  - lib/legitbot/validators/domains.rb
@@ -177,7 +176,6 @@ files:
177
176
  - test/legitbot/validators/ip_ranges_test.rb
178
177
  - test/legitbot_test.rb
179
178
  - test/oracle_test.rb
180
- - test/petalbot_test.rb
181
179
  - test/pinterest_test.rb
182
180
  - test/twitter_test.rb
183
181
  homepage: https://github.com/alaz/legitbot
@@ -193,14 +191,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
193
191
  requirements:
194
192
  - - ">="
195
193
  - !ruby/object:Gem::Version
196
- version: 2.4.0
194
+ version: 2.5.0
197
195
  required_rubygems_version: !ruby/object:Gem::Requirement
198
196
  requirements:
199
197
  - - ">="
200
198
  - !ruby/object:Gem::Version
201
199
  version: '0'
202
200
  requirements: []
203
- rubygems_version: 3.1.4
201
+ rubygems_version: 3.1.6
204
202
  signing_key:
205
203
  specification_version: 4
206
204
  summary: 'Validate requests from Web crawlers: impersonating or not?'
@@ -214,7 +212,6 @@ test_files:
214
212
  - test/apple_test.rb
215
213
  - test/oracle_test.rb
216
214
  - test/google_test.rb
217
- - test/petalbot_test.rb
218
215
  - test/botmatch_test.rb
219
216
  - test/facebook_test.rb
220
217
  - test/twitter_test.rb
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Legitbot # :nodoc:
4
- # http://aspiegel.com/petalbot
5
- class Petalbot < BotMatch
6
- domains 'aspiegel.com.'
7
- end
8
-
9
- rule Legitbot::Petalbot, %w[PetalBot]
10
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'minitest/autorun'
4
- require 'legitbot'
5
-
6
- class PetalbotTest < Minitest::Test
7
- def test_malicious_ip
8
- ip = '149.210.164.47'
9
- match = Legitbot::Petalbot.new ip
10
- assert !match.valid?, msg: "#{ip} is not a real Petalbot IP"
11
- end
12
-
13
- def test_valid_ip
14
- ip = '114.119.153.50'
15
- match = Legitbot::Petalbot.new ip
16
- assert match.valid?, msg: "#{ip} is a valid Petalbot IP"
17
- end
18
-
19
- def test_malicious_ua
20
- bot = Legitbot.bot(
21
- 'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
22
- '149.210.164.47'
23
- )
24
- assert bot, msg: 'Petalbot detected from User-Agent'
25
- assert !bot.valid?, msg: 'Not a valid Petalbot'
26
- end
27
-
28
- def test_valid_ua
29
- bot = Legitbot.bot(
30
- 'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
31
- '114.119.153.50'
32
- )
33
- assert bot, msg: 'Petalbot detected from User-Agent'
34
- assert bot.valid?, msg: 'Valid Petalbot'
35
- end
36
-
37
- def test_valid_name
38
- bot = Legitbot.bot(
39
- 'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
40
- '66.249.64.141'
41
- )
42
- assert_equal :petalbot, bot.detected_as
43
- end
44
-
45
- def test_fake_name
46
- bot = Legitbot.bot(
47
- 'Mozilla/5.0 (compatible; PetalBot/2.1; +http://www.google.com/bot.html)',
48
- '81.1.172.108'
49
- )
50
- assert_equal :petalbot, bot.detected_as
51
- end
52
- end