class Tjplurk::API

Attributes

access_token[R]
consumer[R]
request_token[R]

Public Class Methods

config_file_path() click to toggle source
# File lib/tjplurk/api.rb, line 8
def self.config_file_path
  ENV['TJPLURK_FILE'] || File.join(ENV['HOME'], '.tjplurk')
end
new(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil) click to toggle source
# File lib/tjplurk/api.rb, line 12
def initialize(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil)
  if consumer_key.nil? || consumer_secret.nil?
    raise 'Consumer key & secret are not found.' unless File.exist? Tjplurk::API.config_file_path
    consumer_key, consumer_secret, token_key, token_secret = File.readlines(Tjplurk::API.config_file_path).map(&:strip!).delete_if(&:empty?)
  end
  @consumer = OAuth::Consumer.new(consumer_key, consumer_secret, Tjplurk::OAUTH_OPTIONS)
  @access_token = OAuth::AccessToken.new(@consumer, token_key, token_secret) if token_key && token_secret
end

Public Instance Methods

real_time() { |plurk| ... } click to toggle source
# File lib/tjplurk/api.rb, line 29
def real_time
  ret = request('/APP/Realtime/getUserChannel')
  comet_server = ret['comet_server']
  loop do
    uri = URI(comet_server)
    json = JSON.parse(Net::HTTP.get(uri)[/CometChannel.scriptCallback\((.*)\);/m, 1])
    json['data'].each{ |plurk| yield plurk } if json['data']
    comet_server.sub!(/(offset=)\d+/, "\\1#{json['new_offset']}")
  end
end
request(path, body = '', headers = {}) click to toggle source
# File lib/tjplurk/api.rb, line 25
def request path, body = '', headers = {}
  JSON.parse(@access_token.post(path, body, headers).body)
end