Sha256: 3001081929cf3b56103e500455da19b4f807865ffda038fc286a65c753f5816b

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

#!/usr/bin/env ruby
#encoding: utf-8

require 'logger'

$:.unshift(File.dirname(__FILE__) + "/../lib")
require 'proxies-scanner'

include ProxiesScanner

$logger = Logger.new(STDOUT)
# $logger.level = Logger::DEBUG
# $logger.level = Logger::INFO
# $logger.level = Logger::ERROR
$logger.level = Logger::FATAL

QUEUE_SIZE_PROXIES = 15
QUEUE_SIZE_HTTP    = 3

def scan_areas(areas)
  proxies = []
  wq = WorkQueue.new(QUEUE_SIZE_HTTP)

  beginning_time = Time.now

  i = 0
  areas.each do |area|
    wq.enqueue_b do 
    i += 1
      begin
        s_pos = " [#{i}/#{areas.size}]"
        print "\033[36m ** HTTP/GET #{area.upcase} proxies #{s_pos.rjust(52, '.')}\033[0m\n"
        proxies += Proxies.find_by_area(area)
      rescue SignalException => e
        raise e
      rescue Exception => e
        print "\033[31m~ Error: #{e.message}\033[0m\n"
      end
    end
  end
  wq.join
  end_time = Time.now

  print "\033[36m ** #{areas.size} areas scanned in #{((end_time - beginning_time)*1000).round(2)} ms \033[0m\n"
  puts

  return proxies
end


begin
  proxies = []
  if ARGV.size > 0
    if ARGV[0] = '-f'
      proxies = Proxies.from_file(ARGV[1])
    else
      proxies = scan_areas(ARGV)
    end
  else
    proxies = scan_areas(Proxies::ALL_AREAS)
  end

  print "\033[32m ** #{proxies.size} proxies founded\033[0m\n"

  wq = WorkQueue.new(QUEUE_SIZE_PROXIES)
  proxies.each do |p|
    wq.enqueue_b do
      p.check
      print p.format
    end
  end
  wq.join

rescue SignalException => e
rescue Exception => e
  puts 'Error:'
  puts e.message
  puts e.backtrace
end
puts
$logger.close

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
proxies-scanner-0.0.1 bin/proxies-scanner