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