Sha256: 5c9672f17d9904b7827d1bb09ac0f3f025d923ba5b148dc732360d4b74a1b4b4
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
require 'logger' require 'oauth/cli/twitter' class UserStreamReceiver include OAuth::CLI::Twitter CONSUMER_TOKEN = 'kHOuxYqXSINzOW3UzEqEcA' CONSUMER_SECRET = 'x6dzx1oFjgDrtJSM2v8YYEYhyN2LnB1zUOeNo9Y' def run(&block) loop { begin self.process &block rescue => error self.logger.warn error sleep 1 end } end protected ENDPOINT = URI.parse('https://userstream.twitter.com/2/user.json') def access_token @access_token ||= self.get_access_token(:pit => 'user-stream-receiver') end def logger @logger ||= Logger.new(STDOUT) @logger.level = Logger::INFO @logger end def process(&block) self.logger.info("connecting") https = Net::HTTP.new(ENDPOINT.host, ENDPOINT.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE https.start{ |https| request = Net::HTTP::Get.new(ENDPOINT.request_uri) request.oauth!(https, self.access_token.consumer, self.access_token) https.request(request){ |response| raise response.code.to_i unless response.code.to_i == 200 raise 'Response is not chuncked' unless response.chunked? self.logger.info("connected") response.read_body{ |chunk| self.logger.debug("received: #{chunk}") yield chunk } } } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
user-stream-receiver-0.1.0 | lib/user-stream-receiver.rb |