82 lines
1.2 KiB
Perl
82 lines
1.2 KiB
Perl
|
$database = 'yolanda';
|
||
|
$dbhost = 'localhost';
|
||
|
$dbuser = 'root';
|
||
|
$dbpass = '';
|
||
|
$root = '/var/www/yolanda';
|
||
|
|
||
|
|
||
|
use Digest::SHA qw{sha1};
|
||
|
|
||
|
open(FILE, "<$root/videos/1");
|
||
|
while (my $BytesRead = read (FILE, $buff, 262144))
|
||
|
{
|
||
|
$hash .= sha1($buff);
|
||
|
}
|
||
|
close(FILE);
|
||
|
|
||
|
%torrent = (
|
||
|
'announce' => 'http://my.tracker.tld/announce',
|
||
|
'announce-list' =>
|
||
|
[
|
||
|
[
|
||
|
'tracker1'
|
||
|
]
|
||
|
],
|
||
|
'creation date' => 2342134213,
|
||
|
'comment' => 'kommentar',
|
||
|
'created by' => 'yolanda',
|
||
|
'httpseeds' =>
|
||
|
[
|
||
|
'mydomain.tld/seed'
|
||
|
],
|
||
|
'info' =>
|
||
|
{
|
||
|
'length' => -s "$root/videos/1",
|
||
|
'name' => 'some name',
|
||
|
'piece length' => 262144,
|
||
|
'pieces' => $hash
|
||
|
}
|
||
|
);
|
||
|
|
||
|
open(TORRENT, ">$root/1.torrent");
|
||
|
print TORRENT bencode(\%torrent);
|
||
|
close(TORRENT);
|
||
|
|
||
|
sub bencode {
|
||
|
no locale;
|
||
|
my $item = shift;
|
||
|
my $line = '';
|
||
|
|
||
|
if(ref($item) eq 'HASH')
|
||
|
{
|
||
|
$line = 'd';
|
||
|
foreach my $key (sort(keys %{$item}))
|
||
|
{
|
||
|
$line .= bencode($key);
|
||
|
$line .= bencode(${$item}{$key});
|
||
|
}
|
||
|
$line .= 'e';
|
||
|
}
|
||
|
elsif(ref($item) eq 'ARRAY')
|
||
|
{
|
||
|
$line = 'l';
|
||
|
foreach my $l (@{$item})
|
||
|
{
|
||
|
$line .= bencode($l);
|
||
|
}
|
||
|
$line .= 'e';
|
||
|
}
|
||
|
elsif($item =~ /^\d+$/)
|
||
|
{
|
||
|
$line = 'i';
|
||
|
$line .= $item;
|
||
|
$line .= 'e';
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$line = length($item).":";
|
||
|
$line .= $item;
|
||
|
}
|
||
|
return $line;
|
||
|
}
|