Class: ESpider::API::Dianping::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/espider/api/dianping/base.rb

Direct Known Subclasses

Business, Metadata

Constant Summary collapse

Domain =
"http://api.dianping.com"
Version =
"v1"

Instance Method Summary collapse

Constructor Details

#initialize(appkey, app_secret) ⇒ Base

Returns a new instance of Base.



10
11
12
13
14
# File 'lib/espider/api/dianping/base.rb', line 10

def initialize(appkey,app_secret)
  @appkey = appkey
  @app_secret = app_secret
  @params = {}
end

Instance Method Details

#calc_digestObject



15
16
17
18
19
20
21
# File 'lib/espider/api/dianping/base.rb', line 15

def calc_digest
  @params.delete(:appkey)
  @params.delete(:sign)
  digest = Digest::SHA1.hexdigest(@appkey+@params.sort.map{|e| e[0].to_s+e[1].to_s}.join('')+@app_secret).upcase
  @params[:appkey] = @appkey
  @params[:sign] = digest
end

#getObject



22
23
24
25
26
27
# File 'lib/espider/api/dianping/base.rb', line 22

def get
  calc_digest
  @uri.query = URI.encode_www_form(@params)
  res = HTTParty.get @uri.to_s
  res.body
end

#next_pageObject



28
29
30
31
# File 'lib/espider/api/dianping/base.rb', line 28

def next_page
  @params[:page] = @params[:page] + 1
  get
end