Sha256: aa2ceb54083dfc1a0dfe1834d94c1671a2e55103dfaccc3b322146e6f370ebc6

Contents?: true

Size: 649 Bytes

Versions: 6

Compression:

Stored size: 649 Bytes

Contents

require "openssl"
require "open-uri"
require "json"
require "dotenv"

module EmailCrawler
  class Proxy
    class << self
      def random
        all.sample
      end

    private

      def all
        @all ||= begin
          Dotenv.load

          json = JSON.parse(open("https://api.digitalocean.com/droplets/?client_id=#{ENV['DO_CLIENT_ID']}&api_key=#{ENV['DO_API_KEY']}",
                                 ssl_verify_mode: ::OpenSSL::SSL::VERIFY_NONE).read)
          json["droplets"].
            select{ |droplet| droplet["name"] =~ /proxy\d+/ }.
            map { |droplet| droplet["ip_address"] }
        end
      end
    end
  end
end


Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
email_crawler-0.0.9 lib/email_crawler/proxy.rb
email_crawler-0.0.8 lib/email_crawler/proxy.rb
email_crawler-0.0.7 lib/email_crawler/proxy.rb
email_crawler-0.0.6 lib/email_crawler/proxy.rb
email_crawler-0.0.5 lib/email_crawler/proxy.rb
email_crawler-0.0.4 lib/email_crawler/proxy.rb