lib/wmap/wp_tracker.rb in wmap-2.5.4 vs lib/wmap/wp_tracker.rb in wmap-2.5.5
- old
+ new
@@ -48,10 +48,11 @@
next if line.empty?
next if line =~ /^\s*#/
line=line.downcase if lc==true
entry=line.split(',')
site = entry[0].strip()
+ next if site.nil?
if known_wp_sites.key?(site)
next
else
known_wp_sites[site] = Hash.new
known_wp_sites[site]['site'] = site
@@ -72,36 +73,46 @@
puts "Saving the current wordpress site table from memory to file: #{file_wps} ..." if @verbose
timestamp=Time.now
f=File.open(file_wps, 'w')
f.write "# Local wps file created by class #{self.class} method #{__method__} at: #{timestamp}\n"
f.write "# WP Site URL, WP Version, Redirection \n"
- wps.keys.sort.map do |key|
+ (wps.keys - [nil,'']).sort.map do |key|
f.write "#{key}, #{wps[key]['version']}, #{wps[key]['redirection']}\n"
end
f.close
puts "WordPress site cache table is successfully saved: #{file_wps}"
rescue => ee
puts "Exception on method #{__method__}: #{ee}" if @verbose
end
alias_method :save!, :save_to_file!
- # 'setter' to add wordpress entry to the cache one at a time
+ # Add wordpress entry to the cache one at a time
def add(url, use_cache=true)
puts "Add entry to the local cache table: #{url}" if @verbose
site=url_2_site(url)
if use_cache && @known_wp_sites.key?(site)
puts "Site is already exist. Skipping: #{site}"
else
record=Hash.new
redirection = landing_location(site)
- if is_wp?(redirection)
- version = wp_ver(site)
- record['site'] = site
- record['version'] = version
- record['redirection'] = redirection
- @known_wp_sites[site]=record
- puts "Entry loaded: #{record}"
+ if not [nil, ''].include?(redirection)
+ if is_wp?(redirection)
+ version = wp_ver(redirection)
+ record['site'] = site
+ record['version'] = version
+ record['redirection'] = redirection
+ @known_wp_sites[site]=record
+ puts "Entry added: #{record}"
+ end
+ else
+ if is_wp?(site)
+ version = wp_ver(site)
+ record['version'] = version
+ record['redirection'] = redirection
+ @known_wp_sites[site]=record
+ puts "Entry added: #{record}"
+ end
end
end
return record
rescue => ee
puts "Exception on method #{__method__}: #{ee}: #{url}" if @verbose
@@ -270,19 +281,24 @@
end
# Extract the WordPress version
def wp_ver(url)
if !wp_ver_readme(url).nil?
+ puts "WordPress version found by wp_ver_readme method. " if @verbose
return wp_ver_readme(url)
- elsif !wp_ver_meta(url).nil?
- return wp_ver_meta(url)
elsif !wp_ver_login(url,"login.min.css").nil?
+ puts "WordPress version found by login.min.css file. " if @verbose
return wp_ver_login(url,"login.min.css")
elsif !wp_ver_login(url,"buttons.min.css").nil?
+ puts "WordPress version found by buttons.min.css file. " if @verbose
return wp_ver_login(url,"buttons.min.css")
elsif !wp_ver_login(url,"wp-admin.min.css").nil?
+ puts "WordPress version found by wp-admin.min.css file. " if @verbose
return wp_ver_login(url,"wp-admin.min.css")
+ elsif !wp_ver_meta(url).nil?
+ puts "WordPress version found by wp_ver_meta method. " if @verbose
+ return wp_ver_meta(url)
else
return nil
end
rescue => ee
puts "Exception on method #{__method__} for url #{url}: #{ee}" if @verbose
@@ -324,13 +340,13 @@
doc=open_page(site)
#puts doc.inspect
meta=doc.css('meta')
#puts meta.inspect
meta.each do |tag|
- if tag.to_s =~ /wordpress/i
+ if tag['content'].to_s =~ /wordpress/i
#puts tag.to_s
k=nil
- return tag.to_s.scan(/[\d+\.]+\d+/).first
+ return tag['content'].to_s.scan(/[\d+\.]+\d+/).first
end
end
end
k=nil
return nil