|
|
| |
Net::BitTorrent::File(3) |
User Contributed Perl Documentation |
Net::BitTorrent::File(3) |
Net::BitTorrent::File - Object for manipulating .torrent files
use Net::BitTorrent::File
# Empty N::BT::File object, ready to be filled with info
my $torrent = new Net::BitTorrent::File;
# Or, create one from a existing .torrent file
my $fromfile = new Net::BitTorrent::File ('somefile.torrent');
$torrent->name('Some_File_to_distribute.tar.gz');
$torrent->announce('http://address.of.tracker:6695');
# etc.
print $torrent->name()."\n";
# would print "Some_File_to_distribute.tar.gz" in this case.
This module handles loading and saveing of .torrent files as well as providing a
convenient way to store torrent file info in memory. Most users of the module
will most likely just call the new method with the name of a existing torrent
file and use the data from that.
The same method is used for setting and retrieving a value, and the methods have
the same name as the key in the torrent file, such as
"name()", and
"announce()". If the method is called with
no arguments or a undefined value, then the current value is returned,
otherwise its set to the value passed in.
There are two methods for generating info based on torrent data,
but not stored within the torrent itself. These are
"gen_info_hash()" and
"gen_pieces_array()". You can use the
methods "info_hash()" and
"pieces_array()" to return the calculated
values after calling there respective
"gen_X()" methods.
"info_hash()" returns the SHA1
hash of the info portion of the torrent which is used in the bittorrent
protocol.
"pieces_array()" returns a array
ref of the pieces field of the torrent split into the individual 20 byte
SHA1 hashes. For further details on what exactly these are used for, see the
docs for the bittorrent protocol mentioned in the SEE ALSO section.
- new( [$filename] )
Creates a new Net::BitTorrent::File object, and if a filename
is supplied will call the load method with that filename.
- load( $filename )
Loads the file passed into it and generates the
"info_hash" and
"pieces_array" propertys.
- save( $filename )
Saves the torrent to $filename. Note that
"info_hash" and
"pieces_array" are not saved to the
torrent file and must be regenerated when the torrent is loaded (but the
"load()" method does this for you
anyway).
- info_hash( [$new_value] )
When called with no arguments returns the info_hash
value, otherwise it sets it to the value in
$new_value. Note: Its very unlikely anyone will be
using to set the value of info_hash, rather you should populate
all the info fields then call
"gen_info_hash()" to set this
property.
- gen_info_hash( )
Calculates the SHA1 hash of the torrents info field and
stores this in the info_hash property which can be retrieved
using the "info_hash()" method.
- pieces_array( [$new_array] )
When called with no arguments returns a array ref whose values
are the SHA1 hashes contained in the pieces property. To set this
value, do not use this method, rather use the
"gen_pieces_array()" method, after
setting the pieces property.
- gen_pieces_array( )
Divides the pieces property into its component 20 byte
SHA1 hashes, and stores them as a array ref in the pieces_array
property.
- name( [$value] )
When called with no arguments returns the name
propertys current value, else it sets it to $value.
If this value is changed, the info_hash property needs to be
regenerated.
- announce( [$value] )
When called with no arguments returns the announce
propertys current value, else it sets it to
$value.
- piece_length( [$value] )
When called with no arguments returns the piece_length
propertys current value, else it sets it to $value.
If this value is changed, the info_hash property needs to be
regenerated.
- length( [$value] )
When called with no arguments returns the length
propertys current value, else it sets it to $value.
If this value is changed, the info_hash property needs to be
regenerated.
- pieces( [$value] )
When called with no arguments returns the pieces
propertys current value, else it sets it to $value.
If this value is changed, the info_hash and pieces_array
propertys need to be regenerated.
- files( [$value] )
When called with no arguments returns the files
propertys current value, else it sets it to $value.
$value should be a array ref filled with hash refs
containing the keys path and length. If this value is
changed, the info_hash property needs to be regenerated.
- info( [$value] )
When called with no arguments returns the info
propertys current value, else it sets it to $value.
$value should be a hash ref containing the keys
files, pieces, length, piece_length, and
name. If this value is changed, the info_hash property
needs to be regenerated.
Any bugs/suggestions/problems, feel free to send me a e-mail, I'm usually glad
to help, and enjoy hearing from people using my code. My e-mail is listed in
the AUTHOR section.
R. Kyle Murphy
orclev@rejectedmaterial.com
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
The full text of the license can be found in the LICENSE file
included with this module.
Convert::Bencode, http://bitconjurer.org/BitTorrent/protocol.html
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |