legitbot 0.2.0 → 0.2.1

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
- SHA1:
3
- metadata.gz: '09d1957d911120207a2518f7ddd87673fb780206'
4
- data.tar.gz: 7a8acb9e1bca9d0f409d84055a029baadf9a6c03
2
+ SHA256:
3
+ metadata.gz: 43121c17f4de712a7c1b33797c0075b31762ff31a1461a871efa486461acf0e2
4
+ data.tar.gz: b6d015e3889a421b3dbce8189489239894bbdf87f8a5677e0d612ece4655f973
5
5
  SHA512:
6
- metadata.gz: 6372a1064b86b8a63e043fd0e737c5a87c394f0dd601bf96fe9d9d5945002ed286ce5f84928f3cfb7fb894d9cf3c7e7c970c6b4a59aef729f19100ffa484e4a1
7
- data.tar.gz: c4538f8f81fdb71aa65dff43ea41c49c2bd51de9c664778bf2d86b7ca0483de614330dac32fde87db5933a2781e4e21fd6862e1b4ecf4d8be16c83932384f062
6
+ metadata.gz: 44dec432e5ba97bb28cefd59e6f800d363342360d10ae72cf69419124836ffcc115b780882e797ea2879e41217402c53b6bd8472a449343814f007d1ea9b6996
7
+ data.tar.gz: '091b35b6eccc08b4e4b083e8498084e3726534a7560e8626b47e0e9dbcaa5a469568b477429804b47a3c16848d506c856823e8809ee88fc70df0d10723507a9d'
data/legitbot.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  "made by a real search engine, not a fake"
16
16
 
17
17
  spec.required_ruby_version = '>= 2.0.0'
18
- spec.add_dependency "irrc"
18
+ spec.add_dependency "irrc", ">= 0.2.1"
19
19
  spec.add_dependency "segment_tree"
20
20
  spec.add_development_dependency "rake"
21
21
  spec.add_development_dependency "minitest"
@@ -1,18 +1,31 @@
1
- require 'segment_tree'
2
- require 'irrc'
3
- require 'monitor'
4
1
  require 'ipaddr'
2
+ require 'irrc'
3
+ require 'segment_tree'
5
4
 
6
5
  module Legitbot
7
6
  # https://developers.facebook.com/docs/sharing/webmasters/crawler
8
7
 
9
8
  class Facebook < BotMatch
10
- lock = Monitor.new
11
-
12
9
  AS = 'AS32934'
13
- ValidIPs = lock.synchronize do
10
+
11
+ def valid?
12
+ ip = IPAddr.new(@ip)
13
+ Facebook.valid_ips[ip.ipv4? ? :ipv4 : :ipv6].find(ip)
14
+ end
15
+
16
+ @mutex = Mutex.new
17
+
18
+ def self.valid_ips
19
+ @mutex.synchronize { @ips ||= load_ips }
20
+ end
21
+
22
+ def self.reload!
23
+ @mutex.synchronize { @ips = load_ips }
24
+ end
25
+
26
+ def self.load_ips
14
27
  client = Irrc::Client.new
15
- client.query :radb, 'AS32934'
28
+ client.query :radb, AS
16
29
  results = client.perform
17
30
 
18
31
  Hash[%i(ipv4 ipv6).map { |k|
@@ -21,11 +34,6 @@ module Legitbot
21
34
  })]
22
35
  }]
23
36
  end
24
-
25
- def valid?
26
- ip = IPAddr.new(@ip)
27
- ValidIPs[ip.ipv4? ? :ipv4 : :ipv6].find(ip)
28
- end
29
37
  end
30
38
 
31
39
  rule Legitbot::Facebook, %w(facebookhit facebookexternalhit)
@@ -1,3 +1,3 @@
1
1
  module Legitbot
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
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: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Azarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-26 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irrc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: segment_tree
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.5.2.3
123
+ rubygems_version: 2.7.6
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Validate Web request was made by legitimate search engine