]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Net.pl
take a few more things literally
[infobot.git] / src / Net.pl
index fb1959cebab756fec93b7918d8c991904192b964..2050c9e8b65c5e0234b24a3faf7e4a3e1ca038c7 100644 (file)
@@ -5,9 +5,9 @@
 #  Created: 20000309
 #
 
-if (&IsParam("useStrict")) { use strict; }
+use strict;
 
-use vars qw(%ftp);
+use vars qw(%ftp %param);
 
 # Usage: &ftpGet($host,$dir,$file,[$lfile]);
 sub ftpGet {
@@ -22,10 +22,7 @@ sub ftpGet {
 ###    'BlockSize'     => 1024,        # ???
     );
 
-    if ($@) {
-       &ERROR("FTP: $@.");
-       return;
-    }
+    return if ($@);
 
     # login.
     if ($ftp->login()) {
@@ -57,7 +54,7 @@ sub ftpGet {
                &status("FTP: local size is $lsize; downloading.") if ($verbose_ftp);
            } else {
                &status("FTP: same size; skipping.");
-               &system("touch $thisfile");     # lame hack.
+               system("touch $thisfile");      # lame hack.
                $ftp->quit();
                return 1;
            }
@@ -68,7 +65,7 @@ sub ftpGet {
        return 0;
     }
 
-    my $start_time = &gettimeofday();
+    my $start_time     = &timeget();
     if (defined $lfile) {
        &status("FTP: getting $file as $lfile.") if ($verbose_ftp);
        $ftp->get($file,$lfile);
@@ -80,17 +77,17 @@ sub ftpGet {
     if (defined $lsize) {
        &DEBUG("FTP: locsize => '$lsize'.");
        if ($size != $lsize) {
-           &WARN("FTP: downloaded file seems truncated. FIXME.");
+           &FIXME("FTP: downloaded file seems truncated.");
        }
     }
 
-    my $delta_time = &gettimeofday() - $start_time;
+    my $delta_time     = &timedelta($start_time);
     if ($delta_time > 0 and $verbose_ftp) {
        &status(sprintf("FTP: %.02f sec to complete.", $delta_time));
-       my ($rateunit,$rate) = ("B", $size / $delta_time);
+       my ($rateunit,$rate) = ('B', $size / $delta_time);
        if ($rate > 1024) {
            $rate /= 1024;
-           $rateunit = "kB";
+           $rateunit = 'kB';
        }
        &status(sprintf("FTP: %.01f ${rateunit}/sec.", $rate));
     }
@@ -110,10 +107,7 @@ sub ftpList {
     &status("FTP: opening connection to $host.") if ($verbose_ftp);
     my $ftp = Net::FTP->new($host,'Timeout'=>60);
 
-    if ($@) {
-###    &ERROR("FTP: $@.");
-       return;
-    }
+    return if ($@);
 
     # login.
     if ($ftp->login()) {
@@ -151,6 +145,7 @@ sub ftpList {
 
 ### LWP.
 # Usage: &getURL($url, [$post]);
+# TODO: rename this to getHTTP
 sub getURL {
     my ($url,$post) = @_;
     my ($ua,$res,$req);
@@ -158,7 +153,7 @@ sub getURL {
     return unless &loadPerlModule("LWP::UserAgent");
 
     $ua = new LWP::UserAgent;
-    $ua->proxy('http', $param{'httpProxy'}) if &IsParam("httpProxy");
+    $ua->proxy('http', $param{'httpProxy'}) if &IsParam('httpProxy');
 
     if (defined $post) {
        $req = new HTTP::Request('POST',$url);
@@ -186,14 +181,19 @@ sub getURL {
 sub getURLAsFile {
     my ($url,$file) = @_;
     my ($ua,$res,$req);
+    my $time = time();
 
-    return unless &loadPerlModule("LWP::Simple");
+    unless (&loadPerlModule('LWP::UserAgent')) {
+       &::DEBUG('getURLAsFile: LWP::UserAgent not installed');
+       return;
+    }
 
-### PROXY NOT SUPPORTED WITH SIMPLE?
-###    $ua->proxy('http', $param{'httpProxy'}) if &IsParam("httpProxy");
-    my $time   = time();
+    $ua = new LWP::UserAgent;
+    $ua->proxy('http', $param{'httpProxy'}) if &IsParam('httpProxy');
+    $req = HTTP::Request->new('GET', $url);
     &status("getURLAsFile: getting '$url' as '$file'");
-    my $retval = getstore($url, $file);
+    $res = $ua->request($req, $file);
+
     my $delta_time     = time() - $time;
     if ($delta_time) {
        my $size = -s $file || 0;
@@ -201,7 +201,7 @@ sub getURLAsFile {
        &status("getURLAsFile: Done. ($rate kB/sec)");
     }
 
-    return $retval;
+    return $res;
 }
 
 1;