Class: Torrenter::HTTPTracker
Instance Attribute Summary
#stream
Instance Method Summary
collapse
#build_tracker, #determine_protocol, #establish_reactor, #parse_addresses, #peer_info, #port, #sha_pieces
Constructor Details
#initialize(address, stream) ⇒ HTTPTracker
Returns a new instance of HTTPTracker.
4
5
6
7
|
# File 'lib/torrenter/http_tracker.rb', line 4
def initialize(address, stream)
@address = URI(address)
super(stream)
end
|
Instance Method Details
#address_hashes ⇒ Object
19
20
21
|
# File 'lib/torrenter/http_tracker.rb', line 19
def address_hashes
@response['peers']
end
|
#address_list ⇒ Object
23
24
25
|
# File 'lib/torrenter/http_tracker.rb', line 23
def address_list
parse_addresses(address_hashes, address_hashes.bytesize / 6)
end
|
#connect ⇒ Object
9
10
11
12
13
14
15
16
17
|
# File 'lib/torrenter/http_tracker.rb', line 9
def connect
@address.query = URI.encode_www_form(tracker_params)
@response =
begin
BEncode.load(Net::HTTP.get(@address))
rescue
false
end
end
|
#connected? ⇒ Boolean
36
37
38
|
# File 'lib/torrenter/http_tracker.rb', line 36
def connected?
@response
end
|
#tracker_params ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/torrenter/http_tracker.rb', line 27
def tracker_params
{
:info_hash => @sha,
:peer_id => PEER_ID,
:left => @piece_length,
:pieces => @file_list
}
end
|