#!/usr/bin/perl -w

# Skrypt do pobierania artykuw
#
# Andrzej Radecki <radecki@wpk.p.lodz.pl>
#
# Ostatnie zmiany: 13.08.2001r.

use strict;
use Feeder::feeder;
use IO::Socket;


my $boundary = "-----$$" . "000034985682568";

my $request = "POST $Feeder::feeder::remote_file HTTP/1.0\015\012" .
	"User-Agent: Sciagacz/$Feeder::feeder::version ($, $ENV{'USER'})\015\012";

my $body;

foreach (keys(%Feeder::feeder::params)) {
	$body .= "--$boundary\015\012Content-Disposition: form-data; name=\"$_\"\015\012\015\012$Feeder::feeder::params{$_}\015\012";
}
foreach (keys(%Feeder::feeder::numery)) {
	$body .= "--$boundary\015\012Content-Disposition: form-data; name=\"count-$_\"\015\012\015\012$Feeder::feeder::numery{$_}\015\012";
}

open (KILLFILE, "$Feeder::feeder::killfile") or die "Can't open file $Feeder::feeder::killfile: $!\n";
local $/ = \10000;
$body .= "--$boundary\015\012Content-Disposition: form-data; name=\"killfile\"; filename=\"killf\"\015\012\015\012" . <KILLFILE> . "\015\012";
close KILLFILE or warn "Can't close file $Feeder::feeder::killfile: $!\n";

$body .= "--$boundary--\015\012";

$request .= "Content-type: multipart/form-data; boundary=$boundary\015\012" .
	"Content-Length: " . length($body). "\015\012\015\012" . $body;

#print "$request\n";
local $/="\r\n";
my $socket=IO::Socket::INET->new(PeerAddr => "$Feeder::feeder::remote_server", PeerPort => $Feeder::feeder::remote_port,
	Timeout => 30, Proto => 'tcp') or die "Can't connect to $Feeder::feeder::remote_server: $!\n";
$socket->print($request);
my $line = <$socket>;
$line =~ /^\S+\s+(\d+)/;
($1 !~ /^2/) and die "HTTP protocol error: $line";
while (<$socket>) {
#	print;
	last if /^\r?\n/;
	print if /^X-Notice/;
}

open PACZKA, ">$Feeder::feeder::paczka" or die "Can't create file $Feeder::feeder::paczka: $!\n";
binmode PACZKA;
$/ = \1024;
my $count=0;
STDOUT->autoflush(1);
while (<$socket>) {
	$count++;
	print '.';
	print ' ' if !($count % 10);
	print "\t$count KB\n" if !($count % 50);
	print PACZKA;
}
print "\t$count KB\nPackage received.\n";
close PACZKA or warn "Can't close file $Feeder::feeder::paczka: $!\n";
close $socket or warn "Can't close socket\n: $!\n";
