class Torckapi::Tracker::HTTP
Constants
- REQUEST_ACTIONS
Public Class Methods
new(url, options={})
click to toggle source
Calls superclass method
Torckapi::Tracker::Base::new
# File lib/torckapi/tracker/http.rb, line 24 def initialize url, options={} super @url.query ||= "" end
Public Instance Methods
announce(info_hash)
click to toggle source
(see Base#announce
)
Calls superclass method
Torckapi::Tracker::Base#announce
# File lib/torckapi/tracker/http.rb, line 9 def announce info_hash super Torckapi::Response::Announce.from_http(info_hash, perform_request(url_for(@url.dup, Announce, info_hash))) end
scrape(info_hashes=[])
click to toggle source
(see Base#scrape
)
Calls superclass method
Torckapi::Tracker::Base#scrape
# File lib/torckapi/tracker/http.rb, line 15 def scrape info_hashes=[] super Torckapi::Response::Scrape.from_http(perform_request(url_for(@url.dup, Scrape, info_hashes))) end
Private Instance Methods
info_hash_params(info_hashes)
click to toggle source
# File lib/torckapi/tracker/http.rb, line 43 def info_hash_params info_hashes info_hashes.map { |i| "info_hash=%s" % URI.encode([i].pack('H*')) }.join('&') end
perform_request(url)
click to toggle source
# File lib/torckapi/tracker/http.rb, line 35 def perform_request url begin Net::HTTP.get(url) rescue Errno::ECONNRESET, Errno::ETIMEDOUT, Timeout::Error raise CommunicationFailedError end end
url_for(url, action, data)
click to toggle source
# File lib/torckapi/tracker/http.rb, line 29 def url_for url, action, data url.query += info_hash_params [*data] url.path.gsub!(/announce/, 'scrape') if Scrape == action url end