wmap 2.7.2 → 2.7.6

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -16
  3. data/bin/refresh +5 -5
  4. data/lib/wmap.rb +1 -1
  5. data/lib/wmap/site_tracker.rb +1 -4
  6. data/lib/wmap/{wp_tracker.rb → site_tracker/wp_tracker.rb} +41 -4
  7. data/lib/wmap/url_crawler.rb +1 -1
  8. data/version.txt +2 -2
  9. data/wmap.gemspec +2 -2
  10. metadata +4 -59
  11. data/ruby_whois_patches/base_cocca2.rb +0 -149
  12. data/ruby_whois_patches/kero.yachay.pe.rb +0 -120
  13. data/ruby_whois_patches/whois.PublicDomainRegistry.com.rb +0 -124
  14. data/ruby_whois_patches/whois.above.com.rb +0 -61
  15. data/ruby_whois_patches/whois.adamsnames.tc.rb +0 -107
  16. data/ruby_whois_patches/whois.aeda.net.ae.rb +0 -105
  17. data/ruby_whois_patches/whois.ai.rb +0 -112
  18. data/ruby_whois_patches/whois.arnes.si.rb +0 -121
  19. data/ruby_whois_patches/whois.ascio.com.rb +0 -91
  20. data/ruby_whois_patches/whois.cnnic.cn.rb +0 -123
  21. data/ruby_whois_patches/whois.corporatedomains.com.rb +0 -67
  22. data/ruby_whois_patches/whois.crsnic.net.rb +0 -108
  23. data/ruby_whois_patches/whois.denic.de.rb +0 -174
  24. data/ruby_whois_patches/whois.dk-hostmaster.dk.rb +0 -120
  25. data/ruby_whois_patches/whois.dns.be.rb +0 -134
  26. data/ruby_whois_patches/whois.dns.lu.rb +0 -129
  27. data/ruby_whois_patches/whois.dns.pl.rb +0 -150
  28. data/ruby_whois_patches/whois.dns.pt.rb +0 -119
  29. data/ruby_whois_patches/whois.domain.kg.rb +0 -126
  30. data/ruby_whois_patches/whois.domainregistry.my.rb +0 -123
  31. data/ruby_whois_patches/whois.domreg.lt.rb +0 -110
  32. data/ruby_whois_patches/whois.dot.tk.rb +0 -140
  33. data/ruby_whois_patches/whois.hkirc.hk.rb +0 -121
  34. data/ruby_whois_patches/whois.isnic.is.rb +0 -130
  35. data/ruby_whois_patches/whois.je.rb +0 -119
  36. data/ruby_whois_patches/whois.jprs.jp.rb +0 -137
  37. data/ruby_whois_patches/whois.kenic.or.ke.rb +0 -140
  38. data/ruby_whois_patches/whois.markmonitor.com.rb +0 -118
  39. data/ruby_whois_patches/whois.melbourneit.com.rb +0 -58
  40. data/ruby_whois_patches/whois.nic.as.rb +0 -96
  41. data/ruby_whois_patches/whois.nic.at.rb +0 -109
  42. data/ruby_whois_patches/whois.nic.ch.rb +0 -141
  43. data/ruby_whois_patches/whois.nic.cl.rb +0 -117
  44. data/ruby_whois_patches/whois.nic.ec.rb +0 -157
  45. data/ruby_whois_patches/whois.nic.im.rb +0 -120
  46. data/ruby_whois_patches/whois.nic.it.rb +0 -170
  47. data/ruby_whois_patches/whois.nic.lv.rb +0 -116
  48. data/ruby_whois_patches/whois.nic.ly.rb +0 -127
  49. data/ruby_whois_patches/whois.nic.mu.rb +0 -27
  50. data/ruby_whois_patches/whois.nic.mx.rb +0 -123
  51. data/ruby_whois_patches/whois.nic.net.sa.rb +0 -111
  52. data/ruby_whois_patches/whois.nic.or.kr.rb +0 -101
  53. data/ruby_whois_patches/whois.nic.tel.rb +0 -129
  54. data/ruby_whois_patches/whois.nic.tr.rb +0 -133
  55. data/ruby_whois_patches/whois.nic.us.rb +0 -129
  56. data/ruby_whois_patches/whois.nic.ve.rb +0 -135
  57. data/ruby_whois_patches/whois.norid.no.rb +0 -127
  58. data/ruby_whois_patches/whois.pandi.or.id.rb +0 -118
  59. data/ruby_whois_patches/whois.psi-usa.info.rb +0 -63
  60. data/ruby_whois_patches/whois.registro.br.rb +0 -109
  61. data/ruby_whois_patches/whois.registrygate.com.rb +0 -55
  62. data/ruby_whois_patches/whois.rrpproxy.net.rb +0 -61
  63. data/ruby_whois_patches/whois.sgnic.sg.rb +0 -130
  64. data/ruby_whois_patches/whois.srs.net.nz.rb +0 -166
  65. data/ruby_whois_patches/whois.tucows.com.rb +0 -70
  66. data/ruby_whois_patches/whois.twnic.net.tw.rb +0 -133
@@ -1,120 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- # Parser for the kero.yachay.pe server.
18
- #
19
- # @note This parser is just a stub and provides only a few basic methods
20
- # to check for domain availability and get domain status.
21
- # Please consider to contribute implementing missing methods.
22
- #
23
- # @see Whois::Record::Parser::Example
24
- # The Example parser for the list of all available methods.
25
- #
26
- class KeroYachayPe < Base
27
-
28
- property_supported :status do
29
- if content_for_scanner =~ /Status:\s+(.+?)\n/
30
- case $1.downcase
31
- when "active"
32
- :registered
33
- when "not registered"
34
- :available
35
- when "inactive"
36
- :inactive
37
- else
38
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
39
- end
40
- else
41
- Whois.bug!(ParserError, "Unable to parse status.")
42
- end
43
- end
44
-
45
- property_supported :available? do
46
- status == :available
47
- end
48
-
49
- property_supported :registered? do
50
- !available?
51
- end
52
-
53
- property_not_supported :created_on
54
-
55
- property_not_supported :updated_on
56
-
57
- property_not_supported :expires_on
58
-
59
- property_supported :nameservers do
60
- if content_for_scanner =~ /\nName Servers:\n((.+\n)+)\n/
61
- $1.split(%r{\n}).map do |name|
62
- Record::Nameserver.new(:name => name.strip)
63
- end
64
- end
65
- end
66
-
67
- # Checks whether the response has been throttled.
68
- #
69
- # @return [Boolean]
70
- #
71
- # @example
72
- # Looup quota exceeded.
73
- #
74
- def response_throttled?
75
- !content_for_scanner.match(/Looup quota exceeded./).nil?
76
- end
77
-
78
- # The following methods are implemented by Yang Li on 2/12/2013
79
- # ----------------------------------------------------------------------------
80
-
81
- property_supported :registrar do
82
- reg=Record::Registrar.new
83
- reg["name"] = $1 if content_for_scanner =~ /^Registrar:\s+(.+)\n/
84
- return reg
85
- end
86
-
87
- property_supported :registrant_contacts do
88
- build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
89
- end
90
-
91
- property_supported :admin_contacts do
92
- build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
93
- end
94
-
95
- property_not_supported :technical_contacts
96
-
97
- property_not_supported :billing_contacts
98
-
99
- private
100
-
101
- def build_contact(element, type)
102
- reg=Record::Contact.new(:type => type)
103
- if content_for_scanner =~ /#{element}:\n((.+\n)+)\n/
104
- line_num=1
105
- $1.split(%r{\n}).each do |entry|
106
- entry=entry.strip
107
- reg["name"]=entry if line_num==1
108
- reg["organization"]=entry if line_num==1
109
- reg["email"]=entry if entry =~ /.+\@.+\.\w+/
110
- line_num=line_num+1
111
- end
112
- end
113
- return reg
114
- end
115
- # ----------------------------------------------------------------------------
116
-
117
- end
118
- end
119
- end
120
- end
@@ -1,124 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
- # The parser was implemented by Yang Li on 02/27/2013
10
-
11
- require 'whois/record/parser/base'
12
-
13
-
14
- module Whois
15
- class Record
16
- class Parser
17
-
18
- #
19
- # = whois.PublicDomainRegistry.com parser
20
- #
21
- # Parser for the whois.PublicDomainRegistry.com server.
22
- #
23
- # NOTE: This parser is just a stub and provides only a few basic methods
24
- # to check for domain availability and get domain status.
25
- # Please consider to contribute implementing missing methods.
26
- # See WhoisNicIt parser for an explanation of all available methods
27
- # and examples.
28
- #
29
- class WhoisPublicdomainregistryCom < Base
30
-
31
- property_supported :status do
32
- if available?
33
- :available
34
- else
35
- :registered
36
- end
37
- end
38
-
39
- property_supported :available? do
40
- !(content_for_scanner =~ /Status:LOCKED/)
41
- end
42
-
43
- property_supported :registered? do
44
- !available?
45
- end
46
-
47
-
48
- property_supported :created_on do
49
- if content_for_scanner =~ /Registration Date:\s+(.*)\n/
50
- Time.parse($1)
51
- end
52
- end
53
-
54
- property_not_supported :updated_on
55
-
56
- property_supported :expires_on do
57
- if content_for_scanner =~ /Expiration Date:\s+(.*)\n/
58
- Time.parse($1)
59
- end
60
- end
61
-
62
- property_supported :domain do
63
- return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
64
- end
65
-
66
- property_not_supported :domain_id
67
-
68
- property_supported :registrar do
69
- reg=Record::Registrar.new
70
- reg["name"] = node("Registrar")
71
- reg["url"] = node("Referral URL")
72
- return reg
73
- end
74
-
75
- property_supported :registrant_contacts do
76
- build_contact("Registrant Contact Details", Whois::Record::Contact::TYPE_REGISTRANT)
77
- end
78
-
79
- property_supported :admin_contacts do
80
- build_contact("Administrative Contact Details", Whois::Record::Contact::TYPE_ADMIN)
81
- end
82
-
83
- property_supported :technical_contacts do
84
- build_contact("Technical Contact Details", Whois::Record::Contact::TYPE_TECHNICAL)
85
- end
86
-
87
- property_supported :billing_contacts do
88
- build_contact("Billing Contact Details", Whois::Record::Contact::TYPE_BILLING)
89
- end
90
-
91
- private
92
-
93
- def build_contact(element, type)
94
- reg=Record::Contact.new(:type => type)
95
- if content_for_scanner =~ /^\s*#{element}:\s*\n((.+\n)+)\n/
96
- line_num=1
97
- $1.split(%r{\n}).each do |line|
98
- line=line.strip
99
- reg["id"]=$1 if line =~ /(ID#\d+)/
100
- reg["name"]=line if line_num==1
101
- reg["organization"]=line if line_num==4
102
- reg["address"]=line if line_num==5
103
- reg["city"]= line.split(',')[0] if line_num==6
104
- reg["zip"]= line.split(',')[1].split(%r{\s+})[1] if line_num==6
105
- reg["state"]=line.split(',')[1].split(%r{\s+})[0] if line_num==6
106
- reg["country_code"]=line if line_num==7
107
- reg["phone"]=line.split('Tel.')[1] if line =~ /Tel\./i
108
- reg["fax"]=line.split('Fax.')[1] if line =~ /Fax\./i
109
- reg["email"]=$1 if line =~ /(\(.+\@\.+\.\w+\))/
110
- line_num=line_num+1
111
- end
112
- end
113
- return reg
114
- end
115
-
116
- def node(element)
117
- return $1 if content_for_scanner =~ /^\s*#{element}\.+:\s*(.+)\n/
118
- end
119
- # ----------------------------------------------------------------------------
120
-
121
- end
122
- end
123
- end
124
- end
@@ -1,61 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
- require 'whois/record/parser/base'
10
-
11
- module Whois
12
- class Record
13
- class Parser
14
-
15
- # Parser for the whois.above.com server, added by Yang Li 02/11/2013.
16
- class WhoisAboveCom < Base
17
-
18
- property_supported :admin_contacts do
19
- build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
20
- end
21
-
22
- property_supported :registrant_contacts do
23
- build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
24
- end
25
-
26
- property_supported :technical_contacts do
27
- build_contact("Technical Contact", Whois::Record::Contact::TYPE_TECHNICAL)
28
- end
29
-
30
- property_supported :billing_contacts do
31
- build_contact("Billing Contact", Whois::Record::Contact::TYPE_BILLING)
32
- end
33
-
34
- private
35
-
36
- def build_contact(element, type)
37
- reg=Record::Contact.new(:type => type)
38
- if content_for_scanner =~ /^\s+#{element}:\n((.+\n)+)\n/
39
- line_num=1
40
- $1.split(%r{\n}).each do |line|
41
- line=line.strip unless line.nil?
42
- reg["name"]=line if line_num==1
43
- reg["organization"]=line if line_num==1
44
- reg["address"]=line if line_num==2
45
- reg["city"]= line if line_num==3
46
- reg["state"]=line if line_num==4
47
- reg["zip"]=line if line_num==5
48
- reg["country_code"]=line if line_num==6
49
- reg["phone"]=line.split('Tel.')[1] if line=~ /Tel/i
50
- reg["fax"]=line.split('Fax.')[1] if line=~ /Fax/i
51
- reg["email"]=line if line =~ /\w+\@.+\.\w+/
52
- line_num=line_num+1
53
- end
54
- end
55
- return reg
56
- end
57
-
58
- end
59
- end
60
- end
61
- end
@@ -1,107 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- #
18
- # = whois.adamsnames.tc
19
- #
20
- # Parser for the whois.adamsnames.tc server.
21
- #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
27
- #
28
- class WhoisAdamsnamesTc < Base
29
-
30
- property_supported :status do
31
- if available?
32
- :available
33
- else
34
- :registered
35
- end
36
- end
37
-
38
- property_supported :available? do
39
- !!(content_for_scanner =~ /is not registered/)
40
- end
41
-
42
- property_supported :registered? do
43
- !available?
44
- end
45
-
46
- property_not_supported :created_on
47
-
48
- property_not_supported :updated_on
49
-
50
- property_not_supported :expires_on
51
-
52
- property_supported :nameservers do
53
- content_for_scanner.scan(/\s+ns\s+(.+?)\s+\n/).flatten.map do |name|
54
- Record::Nameserver.new(:name => name)
55
- end
56
- end
57
-
58
- # The following methods are implemented by Yang Li on 02/26/2013
59
- # ----------------------------------------------------------------------------
60
- property_supported :domain do
61
- return $1 if content_for_scanner =~ /domain name:\s+(.+)\n/i
62
- end
63
-
64
- property_not_supported :domain_id
65
-
66
- property_supported :admin_contacts do
67
- build_contact("admin", Whois::Record::Contact::TYPE_ADMIN)
68
- end
69
-
70
- property_supported :registrant_contacts do
71
- build_contact("owner", Whois::Record::Contact::TYPE_REGISTRANT)
72
- end
73
-
74
- property_supported :technical_contacts do
75
- build_contact("tech", Whois::Record::Contact::TYPE_TECHNICAL)
76
- end
77
-
78
- property_supported :billing_contacts do
79
- build_contact("billing", Whois::Record::Contact::TYPE_BILLING)
80
- end
81
-
82
- private
83
-
84
- def build_contact(element, type)
85
- reg=Record::Contact.new(:type => type)
86
- if content_for_scanner =~ /^#{element}\-contact:.+\n((.+\n)+)\n/i
87
- $1.scan(/^#{element}\-(.+):\s+(.+)\n/).map do |entry|
88
- reg["id"]=entry[1] if entry[0] =~ /contact/i
89
- reg["name"]=entry[1] if entry[0] =~ /name/i
90
- reg["organization"]=entry[1] if entry[0]=~ /organization/i
91
- reg["address"]=entry[1] if entry[0]=~ /street/i
92
- reg["city"]= entry[1] if entry[0]=~ /city/i
93
- reg["zip"]=entry[1] if entry[0]=~ /zip/i
94
- reg["country_code"]=entry[1] if entry[0]=~ /country/i
95
- reg["phone"]=entry[1] if entry[0]=~ /phone/i
96
- reg["fax"]=entry[1] if entry[0]=~ /fax/i
97
- reg["email"]=entry[1] if entry[0]=~ /email/i
98
- end
99
- end
100
- return reg
101
- end
102
- # ----------------------------------------------------------------------------
103
-
104
- end
105
- end
106
- end
107
- end
@@ -1,105 +0,0 @@
1
- #--
2
- # Ruby Whois
3
- #
4
- # An intelligent pure Ruby WHOIS client and parser.
5
- #
6
- # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
- #++
8
-
9
-
10
- require 'whois/record/parser/base'
11
-
12
-
13
- module Whois
14
- class Record
15
- class Parser
16
-
17
- #
18
- # = whois.aeda.net.ae parser
19
- #
20
- # Parser for the whois.aeda.net.ae server.
21
- #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
27
- #
28
- class WhoisAedaNetAe < Base
29
-
30
- property_supported :status do
31
- if content_for_scanner =~ /Status:\s+(.+?)\n/
32
- case $1.downcase
33
- when "ok" then :registered
34
- else
35
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
36
- end
37
- else
38
- :available
39
- end
40
- end
41
-
42
- property_supported :available? do
43
- content_for_scanner.strip == "No Data Found"
44
- end
45
-
46
- property_supported :registered? do
47
- !available?
48
- end
49
-
50
-
51
- property_not_supported :created_on
52
-
53
- property_not_supported :updated_on
54
-
55
- property_not_supported :expires_on
56
-
57
-
58
- property_supported :nameservers do
59
- content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |name|
60
- Record::Nameserver.new(:name => name)
61
- end
62
- end
63
-
64
- # The following methods are implemented by Yang Li on 12/19/2012
65
- # ----------------------------------------------------------------------------
66
- property_supported :domain do
67
- return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
68
- end
69
-
70
- property_not_supported :domain_id
71
-
72
- property_supported :registrar do
73
- reg=Record::Registrar.new
74
- content_for_scanner.scan(/^(Registrar.*):\s+(.+)\n/).map do |entry|
75
- reg["id"] = entry[1] if entry[0] =~ /Registrar\sID/i
76
- reg["name"] = entry[1] if entry[0] =~ /Registrar\sName$/i
77
- end
78
- return reg
79
- end
80
-
81
- property_supported :registrant_contacts do
82
- build_contact("Registrant Contact", Whois::Record::Contact::TYPE_REGISTRANT)
83
- end
84
-
85
- property_supported :technical_contacts do
86
- build_contact("Tech Contact", Whois::Record::Contact::TYPE_TECHNICAL)
87
- end
88
-
89
- private
90
-
91
- def build_contact(element, type)
92
- reg=Record::Contact.new(:type => type)
93
- content_for_scanner.scan(/^(#{element}.*):\s+(.+)\n/).map do |entry|
94
- reg["id"]=entry[1] if entry[0] =~ /#{element}\sID/i
95
- reg["name"]=entry[1] if entry[0] =~ /#{element}\sName/i
96
- reg["email"]=entry[1] if entry[0]=~ /#{element}\sEmail/i
97
- end
98
- return reg
99
- end
100
- # ----------------------------------------------------------------------------
101
-
102
- end
103
- end
104
- end
105
- end