Sha256: 1caabccbe0e629a8a1f3114bbf72a311a45d1bd123d9ad3b4cfd76b0e97a64a3
Contents?: true
Size: 1.69 KB
Versions: 5
Compression:
Stored size: 1.69 KB
Contents
require 'awesome_bot/links' require 'awesome_bot/log' require 'awesome_bot/result' require 'awesome_bot/statuses' # Check links module AwesomeBot NUMBER_OF_THREADS = 10 STATUS_OK = '✓' STATUS_OTHER = 'x' STATUS_REDIRECT = '→' class << self def check(content, white_listed = nil, skip_dupe = false, log = Log.new) log.add '> Will allow duplicate links' if skip_dupe temp = links_filter(links_find(content)) r = Result.new(temp, white_listed) r.skip_dupe = skip_dupe log.add "> White list: #{white_listed.join ', '}" if r.white_listing r.dupes = r.links.select { |e| r.links.count(e) > 1 } unless skip_dupe log.addp "Links found: #{r.links.count}" log.addp ", #{r.rejected.count} white listed" if r.white_listing unless skip_dupe log.addp ", #{r.links.uniq.count} unique" if r.dupes.count > 0 end log.add '' r.links.uniq.each_with_index { |u, j| log.add " #{j + 1}. #{u}" } log.addp 'Checking URLs: ' if r.links.count > 0 r.status = statuses(r.links.uniq, NUMBER_OF_THREADS) do |s| if (s > 299) && (s < 400) log.addp STATUS_REDIRECT else log.addp(s == 200 ? STATUS_OK : STATUS_OTHER) end end log.add '' return r if !r.white_listing || (r.rejected.count == 0) log.addp 'Checking white listed URLs: ' r.white_listed = statuses(r.rejected.uniq, NUMBER_OF_THREADS, true) do |s| if (s > 299) && (s < 400) log.addp STATUS_REDIRECT else log.addp(s == 200 ? STATUS_OK : STATUS_OTHER) end end log.add '' r end # check end # class end
Version data entries
5 entries across 5 versions & 1 rubygems