class DoorKnock::Monitor

Public Class Methods

crawl(size = 100) click to toggle source
# File lib/doorknock/monitor.rb, line 38
def self.crawl(size = 100)
  new.crawl(size)
end
knock(url) click to toggle source
# File lib/doorknock/monitor.rb, line 42
def self.knock(url)
  new.knock(url)
end
new() click to toggle source
# File lib/doorknock/monitor.rb, line 7
def initialize
  @memo = {}
end

Public Instance Methods

crawl(size = 100) click to toggle source
# File lib/doorknock/monitor.rb, line 24
def crawl(size = 100)
  Parallel.each(Feed.phishy_urls(size)) do |phishy_url|
    knock phishy_url
  end
end
knock(url) click to toggle source
# File lib/doorknock/monitor.rb, line 11
def knock(url)
  generator = Generator.new(url)
  generator.admin_panel_urls.each do |panel_url|
    website = Website.new(panel_url)
    next if marked?(website.url)
    next unless website.ok? && website.panel?

    puts [website.url, website.title].join(",")
    mark(website.url)
    break
  end
end
mark(url) click to toggle source
# File lib/doorknock/monitor.rb, line 30
def mark(url)
  @memo[url] = true
end
marked?(url) click to toggle source
# File lib/doorknock/monitor.rb, line 34
def marked?(url)
  @memo.fetch(url, false)
end