domains_scanner 0.0.2 → 0.0.3

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: 3feae4927a04afcb710018b1823d23b7f0144137
4
- data.tar.gz: c4299771c9de14510a584c2f3007fa4497249254
3
+ metadata.gz: 43825859b85042d6bfb4b4bb8add80e1566578b4
4
+ data.tar.gz: 24b7b4e631d9c236056f0df938a7f152da283727
5
5
  SHA512:
6
- metadata.gz: cc7889eed1197a502b31dcd5d58041eac9d746fa88f584bb543ceb9f124d919eaa1440efb2346e1b6271fdf34f280154f2a4729a765736f5b0c5fe380f1df15c
7
- data.tar.gz: 9f53a04ffc8ad5d2caba6216d789e5f9c0757c32ecfd612283c545585499598c27c576645ec8c4a71179a06795242ec57a5f415e4efa70ab066ef25dac02f77c
6
+ metadata.gz: 3358a63817ca881e798f3209d490242aa45ca60aa74cf266c48fe1c769b8b9064005169fa2db36c1ef290a37ec9b87093488c8ae35ba3eead4956dd50a79f7e8
7
+ data.tar.gz: 100ad14ca19fbc6b95902197a1f3d6431cf0f1c49273245d848bb9d4d4c8b9ea28f7feec07e90dadd50f1edb5ee3a5b0d7121462950b1409603424a07fb17804
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'optparse'
4
4
  require 'domains_scanner'
5
- require 'ansi_colors'
6
5
 
7
6
  PRINT_LINE_LENGTH=80
8
7
  def print_list(list)
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{search possible domains for specified keyword}
13
13
  spec.description = %q{search possible domains by search engines and other tools}
14
- spec.homepage = "https://rubygems.org/gems/domains_scanner"
14
+ spec.homepage = "https://github.com/hackerpie/domains_scanner"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -1,6 +1,8 @@
1
1
  require 'uri'
2
2
  require 'thread'
3
+ require 'ansi_colors'
3
4
  require "domains_scanner/version"
5
+ require "domains_scanner/printer"
4
6
  require "domains_scanner/crawlers"
5
7
  require "domains_scanner/runner"
6
8
 
@@ -25,7 +27,7 @@ module DomainsScanner
25
27
  end
26
28
  runners.each(&:run)
27
29
 
28
- puts "Start analysis crawl results..." if DomainsScanner.verbose
30
+ DomainsScanner::Printer.puts { "Start analysis crawl results...".green }
29
31
  analysis_output_queue
30
32
  end
31
33
 
@@ -3,9 +3,6 @@ require 'domains_scanner/results'
3
3
  module DomainsScanner
4
4
  module Crawlers
5
5
  class Base
6
- def initialize
7
- end
8
-
9
6
  def agent
10
7
  @agent ||= Mechanize.new do |agent|
11
8
  agent.user_agent_alias = "Mac Safari"
@@ -0,0 +1,12 @@
1
+ module DomainsScanner
2
+ class Printer
3
+ class << self
4
+ def puts(message = nil)
5
+ if DomainsScanner.verbose
6
+ message = yield if block_given?
7
+ Kernel.puts message if message
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -9,7 +9,7 @@ module DomainsScanner
9
9
 
10
10
  def run
11
11
  domain = "#{@domain_word}.#{@top_level_domain}"
12
- puts "Start scan #{domain}" if DomainsScanner.verbose
12
+ DomainsScanner::Printer.puts { "Start scan #{domain}".green }
13
13
  @workers = DomainsScanner.engines.map do |engine|
14
14
  crawler = DomainsScanner::Crawlers.build(engine)
15
15
  page = 1
@@ -17,25 +17,30 @@ module DomainsScanner
17
17
 
18
18
  Thread.new do
19
19
  loop do
20
- puts "Scanning #{domain} with #{engine} on page: #{page}" if DomainsScanner.verbose
20
+ DomainsScanner::Printer.puts { "Scanning #{domain} with #{engine} on page: #{page}".yellow }
21
21
 
22
22
  begin
23
23
  if page == 1
24
- puts "Search by form>>>>" if DomainsScanner.verbose
24
+ DomainsScanner::Printer.puts { "Search by form>>" }
25
25
  results = crawler.search_by_form(@domain_word, @top_level_domain)
26
26
  else
27
- puts "Search by link: #{next_page_link}>>>>" if DomainsScanner.verbose
27
+ DomainsScanner::Printer.puts { "Search by link: #{next_page_link}>>" }
28
28
  results = crawler.search_by_link(next_page_link)
29
29
  end
30
30
  next_page_link = results.next_page_link
31
31
 
32
32
  results.items.each do |item|
33
- DomainsScanner.output_queue.push({
34
- domain: item.host, top_level_domain: @top_level_domain, engine: engine
35
- })
33
+ # Avoid some unexpected hostname from ads
34
+ if item.host.to_s.include?(domain)
35
+ DomainsScanner.output_queue.push({
36
+ domain: item.host, top_level_domain: @top_level_domain, engine: engine
37
+ })
38
+ else
39
+ DomainsScanner::Printer.puts { "Abondon unexpected domain: #{item.host}".red }
40
+ end
36
41
  end
37
42
  rescue Mechanize::ResponseCodeError => e
38
- puts "search in #{engine} error, skip now" if DomainsScanner.verbose
43
+ DomainsScanner::Printer.puts { "Search in #{engine} error, skip now! Reason: #{e.message}".red }
39
44
  end
40
45
 
41
46
  break unless next_page_link && page < DomainsScanner.max_page
@@ -1,3 +1,3 @@
1
1
  module DomainsScanner
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: domains_scanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Hong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-05 00:00:00.000000000 Z
11
+ date: 2017-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,11 +94,12 @@ files:
94
94
  - lib/domains_scanner/crawlers/baidu.rb
95
95
  - lib/domains_scanner/crawlers/base.rb
96
96
  - lib/domains_scanner/crawlers/google.rb
97
+ - lib/domains_scanner/printer.rb
97
98
  - lib/domains_scanner/result_item.rb
98
99
  - lib/domains_scanner/results.rb
99
100
  - lib/domains_scanner/runner.rb
100
101
  - lib/domains_scanner/version.rb
101
- homepage: https://rubygems.org/gems/domains_scanner
102
+ homepage: https://github.com/hackerpie/domains_scanner
102
103
  licenses:
103
104
  - MIT
104
105
  metadata: {}