legitbot 1.3.0 → 1.4.0

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