SVN: toys/rsget.pl: RSGet/AutoUpdate.pm RSGet/Curl.pm RSGet/FileList.pm RSGet/Get.pm RSGet/Line.pm R...
sparky
sparky at pld-linux.org
Thu Oct 1 19:47:13 CEST 2009
Author: sparky
Date: Thu Oct 1 19:47:13 2009
New Revision: 10643
Added:
toys/rsget.pl/RSGet/Main.pm
Modified:
toys/rsget.pl/RSGet/AutoUpdate.pm
toys/rsget.pl/RSGet/Curl.pm
toys/rsget.pl/RSGet/FileList.pm
toys/rsget.pl/RSGet/Get.pm
toys/rsget.pl/RSGet/Line.pm
toys/rsget.pl/RSGet/Processor.pm
toys/rsget.pl/RSGet/Tools.pm
toys/rsget.pl/rsget.pl
Log:
- moved most of the code from rsget.pl to RSGet::Main
- some other changes
Modified: toys/rsget.pl/RSGet/AutoUpdate.pm
==============================================================================
--- toys/rsget.pl/RSGet/AutoUpdate.pm (original)
+++ toys/rsget.pl/RSGet/AutoUpdate.pm Thu Oct 1 19:47:13 2009
@@ -7,6 +7,15 @@
set_rev qq$Id$;
+def_settings(
+ use_svn => [ "Set to 'update' to automatically update rsget.pl components from SVN. " .
+ "Set to 'yes' to use downloaded components without updating first.",
+ "no", qr{no|yes|update} ],
+ svn_uri => [ "SVN path to rsget.pl source code.",
+ 'http://svn.pld-linux.org/svn/toys/rsget.pl',
+ qr{(svn|http)://\.{4,}} ],
+);
+
sub update
{
unless ( require_prog( "svn" ) ) {
@@ -14,13 +23,16 @@
return 0;
}
my $start_dir = getcwd();
- chdir $main::configdir or die "Can't chdir to '$main::configdir'\n";
+ my $svn_dir = $main::local_path;
+ mkdir $svn_dir unless -d $svn_dir;
+ chdir $svn_dir or die "Can't chdir to '$svn_dir'\n";
warn "Updating from SVN\n";
+ my $svn_uri = setting("svn_uri");
my $updated = 0;
foreach my $dir ( qw(data RSGet Get Link) ) {
my $last;
- open SVN, "-|", "svn", "co", "$settings{svn_uri}/$dir";
+ open SVN, "-|", "svn", "co", "$svn_uri/$dir";
while ( <SVN> ) {
chomp;
$updated++ if /^.{4}\s+$dir/;
Modified: toys/rsget.pl/RSGet/Curl.pm
==============================================================================
--- toys/rsget.pl/RSGet/Curl.pm (original)
+++ toys/rsget.pl/RSGet/Curl.pm Thu Oct 1 19:47:13 2009
@@ -12,6 +12,17 @@
use Fcntl qw(SEEK_SET);
set_rev qq$Id$;
+def_settings(
+ backup => [ "Make backups if downloaded file exists.",
+ "copy,move", qr/copy,move|copy|move|no/ ],
+ backup_suf => [ "Rename backup files with specified suffix. " .
+ "If none defined file extension won't be changed",
+ undef, qr/.+/ ],
+ outdir => [ "Output directory; where finished files are moved.", '.', undef ],
+ workdir => [ "Work directory; where unfinished files are stored.", '.', undef ],
+);
+
+
my $curl_multi = new WWW::Curl::Multi;
my $curl_headers = [
@@ -90,7 +101,7 @@
# if file exists try to continue
my $fn = $get_obj->{_opts}->{fname};
if ( $fn ) {
- my $fp = filepath( $settings{workdir}, $get_obj->{_opts}->{dir}, $fn );
+ my $fp = filepath( setting("workdir"), $get_obj->{_opts}->{dir}, $fn );
if ( -r $fp ) {
my $got = (stat(_))[7];
#p "File '$fn' already exists, trying to continue at $got";
@@ -119,10 +130,10 @@
{
my $fn = shift;
my $type = shift;
- return undef unless $settings{backup} =~ /$type/;
+ return undef unless setting("backup") =~ /$type/;
return undef unless -r $fn;
- if ( my $s = $settings{backup_suf} ) {
+ if ( my $s = setting("backup_suf") ) {
my $i = 1;
++$i while -r $fn . $s . $i;
return $fn . $s . $i;
@@ -218,7 +229,7 @@
{
my $fn = $supercurl->{filepath} =
- filepath( $settings{workdir}, $get_obj->{_opts}->{dir}, $supercurl->{fname} );
+ filepath( setting("workdir"), $get_obj->{_opts}->{dir}, $supercurl->{fname} );
my $old = file_backup( $fn, "move" );
if ( $old ) {
rename $fn, $old;
@@ -320,7 +331,7 @@
my $func = $get_obj->{after_curl};
if ( $supercurl->{file} ) {
rename $supercurl->{filepath},
- filepath( $settings{outdir}, $get_obj->{_opts}->{dir}, $supercurl->{fname} );
+ filepath( setting("outdir"), $get_obj->{_opts}->{dir}, $supercurl->{fname} );
$get_obj->{dlinfo} = sprintf 'DONE %s %s / %s',
$supercurl->{fname},
bignum( $supercurl->{size_got} ),
Modified: toys/rsget.pl/RSGet/FileList.pm
==============================================================================
--- toys/rsget.pl/RSGet/FileList.pm (original)
+++ toys/rsget.pl/RSGet/FileList.pm Thu Oct 1 19:47:13 2009
@@ -6,6 +6,11 @@
use RSGet::Tools;
set_rev qq$Id$;
+def_settings(
+ list_lock => [ "If lock file exists, list file won't be updated.", '.${file}.swp', qr/.+/ ],
+ list_file => [ "Use specified file as URI list.", undef, qr/.+/ ],
+);
+
my $file;
my $file_swp;
@@ -23,10 +28,12 @@
sub set_file
{
- $file = shift;
+ $file = setting( "list_file" );
unless ( defined $file ) {
$file = 'get.list';
- unless ( -r $file ) {
+ if ( -r $file ) {
+ p "Using '$file' file list\n";
+ } else {
p "Creating empty file list '$file'";
open F_OUT, '>', $file;
print F_OUT "# empty list\n";
@@ -36,8 +43,7 @@
p "Using '$file' file list\n";
}
die "Can't read '$file'\n" unless -r $file;
- my $make_swp = $settings{list_lock};
- $file_swp = eval "\"$make_swp\"";
+ ( $file_swp = setting( "list_lock" ) ) =~ s/\${file}/$file/g;
p "Using '$file_swp' as file lock\n";
}
Modified: toys/rsget.pl/RSGet/Get.pm
==============================================================================
--- toys/rsget.pl/RSGet/Get.pm (original)
+++ toys/rsget.pl/RSGet/Get.pm Thu Oct 1 19:47:13 2009
@@ -7,6 +7,9 @@
use RSGet::Wait;
use URI;
set_rev qq$Id$;
+def_settings(
+ errorlog => [ "Save errors", 0, qr/\d/ ],
+);
BEGIN {
our @ISA;
@@ -48,7 +51,7 @@
bless $self, $pkg;
$self->bestinfo();
- if ( $settings{logging} > 1 or $cmd eq "get" ) {
+ if ( setting("verbose") > 1 or $cmd eq "get" ) {
my $outifstr = $outif ? "[$outif]" : "";
hadd $self,
@@ -222,7 +225,7 @@
{
my $self = shift;
my $msg = shift;
- if ( $self->{body} and $settings{errorlog} ) {
+ if ( $self->{body} and setting("errorlog") ) {
my $n = 0;
my $name;
do {
@@ -292,7 +295,7 @@
return 0 unless $self->{_cmd} eq "check";
p "info( $self->{_uri} ): $self->{bestname} ($self->{bestsize})\n"
- if $settings{logging} > 0;
+ if setting("verbose") > 0;
RSGet::Dispatch::finished( $self );
return 1;
}
Modified: toys/rsget.pl/RSGet/Line.pm
==============================================================================
--- toys/rsget.pl/RSGet/Line.pm (original)
+++ toys/rsget.pl/RSGet/Line.pm Thu Oct 1 19:47:13 2009
@@ -6,8 +6,6 @@
use Term::Size;
set_rev qq$Id$;
-$| = 1;
-
our %active;
my %dead;
our @dead;
@@ -31,7 +29,6 @@
push @newdead, $date;
}
-
foreach my $key ( sort { $a <=> $b } keys %dead ) {
my $text = $dead{$key};
$text = $time . $text if $text =~ /\S/;
@@ -175,32 +172,37 @@
hadd( \%status, @_ );
}
-$SIG{INT} = sub {
- print_all_lines();
- print "\nTERMINATED\n";
- exit 0;
-};
+sub init
+{
+ $| = 1;
-$SIG{WINCH} = sub {
- print "\033[2J\033[1;1H\n";
- my ( $columns, $rows ) = Term::Size::chars;
- my $start = $#dead - $rows;
- $start = 0 if $start < 0;
- print join( "\n", @dead[($start..$#dead)] ), "\n";
- update();
-};
-
-$SIG{__WARN__} = sub {
- new RSGet::Line( "WARNING: ", shift );
- update();
-};
-
-local $SIG{__DIE__} = sub {
- print_all_lines();
- print "\n";
- print "DIED: ", shift, "\n\n";
- exit 1;
-};
+ $SIG{INT} = sub {
+ print_all_lines();
+ print "\nTERMINATED\n";
+ exit 0;
+ };
+
+ $SIG{WINCH} = sub {
+ print "\033[2J\033[1;1H\n";
+ my ( $columns, $rows ) = Term::Size::chars;
+ my $start = $#dead - $rows;
+ $start = 0 if $start < 0;
+ print join( "\n", @dead[($start..$#dead)] ), "\n";
+ update();
+ };
+
+ $SIG{__WARN__} = sub {
+ new RSGet::Line( "WARNING: ", shift );
+ update();
+ };
+
+ local $SIG{__DIE__} = sub {
+ print_all_lines();
+ print "\n";
+ print "DIED: ", shift, "\n\n";
+ exit 1;
+ };
+}
1;
Added: toys/rsget.pl/RSGet/Main.pm
==============================================================================
--- (empty file)
+++ toys/rsget.pl/RSGet/Main.pm Thu Oct 1 19:47:13 2009
@@ -0,0 +1,188 @@
+package RSGet::Main;
+#
+# 2009 (c) Przemysław Iskra <sparky at pld-linux.org>
+# Use/modify/distribute under GPL v2 or newer.
+#
+use strict;
+use warnings;
+use RSGet::AutoUpdate;
+use RSGet::Captcha;
+use RSGet::Curl;
+use RSGet::Dispatch;
+use RSGet::FileList;
+use RSGet::Get;
+use RSGet::Line;
+use RSGet::ListManager;
+use RSGet::Processor;
+use RSGet::Tools;
+use RSGet::Wait;
+use Time::HiRes;
+
+set_rev qq$Id$;
+
+def_settings(
+ interfaces => [ "Specify output interfaces or IP addresses", undef, qr/\d+/ ],
+ http_port => [ "Start HTTP server on specified port.", 0, qr/\d+/ ],
+ verbose => [ "Verbosity level", 0, qr/\d+/ ],
+);
+
+my $http = undef;
+sub init
+{
+ my $help = shift;
+ my $main_rev = shift;
+ my $argv = shift;
+ my $ifs = shift;
+ set_rev $main_rev;
+
+ print_help() if $help;
+ check_settings();
+
+ $SIG{CHLD} = "IGNORE";
+ maybe_update( $argv );
+ RSGet::Line::init();
+ print_settings() if setting( "verbose" ) >= 1;
+ RSGet::FileList::set_file();
+ maybe_start_http();
+ set_interfaces( $ifs );
+
+ new RSGet::Line();
+
+ find_getters();
+
+ new RSGet::Line();
+ new RSGet::Line( "rsget.pl started successfully" );
+ new RSGet::Line();
+ RSGet::Line::update();
+
+ loop();
+}
+
+sub print_help
+{
+ require Term::Size;
+ my ( $columns, $rows ) = Term::Size::chars;
+ warn "No help yet\n";
+
+ exit 0;
+}
+
+sub maybe_update
+{
+ my $argv = shift;
+ if ( setting( "use_svn" ) eq "update" ) {
+ if ( RSGet::AutoUpdate::update() ) {
+ warn "Update successful, restarting\n";
+ exec $0, @$argv, "--use_svn", "yes";
+ }
+ }
+}
+
+sub check_settings
+{
+ warn "Unable to check settings\n";
+}
+
+sub print_settings
+{
+ p "Settings:";
+ foreach my $s ( sort keys %main::settings ) {
+ p " $s => " . setting( $s );
+ }
+}
+
+sub maybe_start_http
+{
+ my $port = setting( "http_port" );
+ return unless $port;
+
+ require RSGet::HTTPServer;
+ $http = new RSGet::HTTPServer( setting("http_port") );
+ if ( $http ) {
+ p "HTTP server started on port $port";
+ } else {
+ warn "HTTP server failed (port $port)\n";
+ }
+}
+
+sub set_interfaces
+{
+ my $ifs = shift;
+ my $if = setting( "interfaces" );
+ RSGet::Dispatch::add_interface( $if ) if $if;
+ foreach my $if ( @$ifs ) {
+ RSGet::Dispatch::add_interface( $if );
+ }
+}
+
+sub find_getters
+{
+ my @paths = ( $main::install_path );
+ if ( setting( "use_svn" ) eq "yes" ) {
+ unshift @paths, $main::local_path;
+ }
+ foreach my $path ( @paths ) {
+ foreach my $type ( qw(Get Link) ) {
+ my $dir = "$path/$type";
+ next unless -d $dir;
+ foreach ( sort glob "$path/$type/*" ) {
+ add_getter( $type, $_ );
+ }
+ }
+ }
+}
+
+sub add_getter
+{
+ my $type = shift;
+ local $_ = shift;
+ return if /~$/;
+ return if m{/\.[^/]*$};
+ ( my $file = $_ ) =~ s#.*/##;
+ return if exists $getters{ $type . "::" . $file };
+ my ( $pkg, $getter ) = RSGet::Processor::read_file( $type, $_ );
+ my $msg = "${type}/$file: failed";
+ if ( $pkg and $getter ) {
+ $getters{ $pkg } = $getter;
+ $msg = "$pkg: added\n";
+ new RSGet::Line( "INIT: ", $msg );
+ } else {
+ warn "$msg\n";
+ }
+}
+
+sub loop
+{
+ # main loop
+ my $lasttime = 0;
+ for (;;) {
+ if ( RSGet::Curl::need_run() ) {
+ RSGet::Curl::maybe_abort();
+ foreach ( 0..4 ) {
+ RSGet::Curl::perform();
+ Time::HiRes::sleep(0.050);
+ }
+ } else {
+ Time::HiRes::sleep(0.250);
+ }
+ RSGet::Curl::update_status();
+ RSGet::Line::update();
+ $http->perform() if $http;
+
+ my $time = time;
+ next if $time == $lasttime;
+ $lasttime = $time;
+
+ RSGet::Wait::wait_update();
+ RSGet::Captcha::captcha_update();
+
+ my $getlist = RSGet::FileList::readlist();
+ if ( $getlist ) {
+ my $allchk = RSGet::Dispatch::process( $getlist );
+ RSGet::ListManager::autoadd( $getlist );
+ }
+ }
+}
+
+1;
+# vim:ts=4:sw=4
Modified: toys/rsget.pl/RSGet/Processor.pm
==============================================================================
--- toys/rsget.pl/RSGet/Processor.pm (original)
+++ toys/rsget.pl/RSGet/Processor.pm Thu Oct 1 19:47:13 2009
@@ -5,7 +5,7 @@
use RSGet::Tools;
set_rev qq$Id$;
-my $options = "name|short|slots|cookie|status";
+my $options = "name|short|slots|cookie|status|min_ver";
my $parts = "pre|start|perl";
my $processed = "";
@@ -233,7 +233,7 @@
if ( $@ ) {
p "Error(s): $@\n";
- return undef unless $settings{logging} > 0;
+ return undef unless setting("verbose") > 0;
my $err = $@;
return undef unless $err =~ /line \d+/;
my @p = split /\n/, $processed;
Modified: toys/rsget.pl/RSGet/Tools.pm
==============================================================================
--- toys/rsget.pl/RSGet/Tools.pm (original)
+++ toys/rsget.pl/RSGet/Tools.pm Thu Oct 1 19:47:13 2009
@@ -7,10 +7,10 @@
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(set_rev s2string bignum de_ml hadd hprint p isotime require_prog
- data_file dump_to_file randomize %getters %settings);
+ def_settings setting
+ data_file dump_to_file randomize %getters);
@EXPORT_OK = qw();
-our %settings;
our %getters;
our %revisions;
@@ -114,13 +114,32 @@
sub data_file
{
my $file = shift;
- my $f = "$main::configdir/data/$file";
+ my $f = "$main::local_path/data/$file";
return $f if -r $f;
- $f = "$main::data_path/data/$file";
+ $f = "$main::install_path/data/$file";
return $f if -r $f;
return undef;
}
+sub def_settings
+{
+ my %s = @_;
+ foreach my $k ( keys %s ) {
+ my $v = $s{ $k };
+ die "Incorrect setting '$k' declaration\n"
+ if ref $v ne "ARRAY" or scalar @$v != 3;
+ $main::def_settings{ $k } = $v;
+ }
+}
+
+sub setting
+{
+ my $name = shift;
+ die "Setting '$name' is not defined\n" unless exists $main::def_settings{ $name };
+ return $main::settings{ $name }->[0] if exists $main::settings{ $name };
+ return $main::def_settings{ $name }->[1];
+}
+
sub dump_to_file
{
my $data = shift;
Modified: toys/rsget.pl/rsget.pl
==============================================================================
--- toys/rsget.pl/rsget.pl (original)
+++ toys/rsget.pl/rsget.pl Thu Oct 1 19:47:13 2009
@@ -5,71 +5,72 @@
#
use strict;
use warnings;
+my $rev = qq$Id$;
-our $data_path;
-our $configdir;
-BEGIN {
- $data_path = $ENV{PWD};
- unshift @INC, $data_path;
-
- my $cd = "$ENV{HOME}/.rsget.pl";
- if ( -r $cd and -d $cd ) {
- $configdir = $cd;
- unshift @INC, $configdir;
- } else {
- $configdir = $data_path;
- }
-}
+our $install_path = $ENV{PWD};
+our $local_path = $install_path;
-use Time::HiRes;
-use RSGet::Line;
-use RSGet::Tools;
-use RSGet::AutoUpdate;
-use RSGet::Processor;
-use RSGet::Curl;
-use RSGet::FileList;
-use RSGet::Get;
-use RSGet::Wait;
-use RSGet::Captcha;
-use RSGet::Dispatch;
-use RSGet::ListManager;
-$SIG{CHLD} = "IGNORE";
-
-set_rev qq$Id$;
-
-%settings = (
- auto_update => undef,
- svn_uri => 'http://svn.pld-linux.org/svn/toys/rsget.pl',
- backup => "copy,move",
- backup_suf => undef,
- logging => 0,
- list_lock => '.${file}.swp', # vim-like swap file
- http_port => undef,
- list_file => undef,
- errorlog => 0,
- outdir => '.',
- workdir => '.',
+our %def_settings;
+our %settings = (
+ use_svn => [ "no", undef ]
);
+unshift @INC, $install_path;
+
+my $cdir = "$ENV{HOME}/.rsget.pl";
+read_config( "$cdir/config" );
+
my @save_ARGV = @ARGV;
+my $help;
+my @ifs;
+parse_args();
+
+if ( $settings{use_svn}->[0] =~ /^(yes|update)$/ and -d "$cdir/RSGet") {
+ $local_path = $cdir;
+ unshift @INC, $local_path;
+
+ eval {
+ require RSGet::Main;
+ };
+ if ( $@ ) {
+ shift @INC;
+ warn "Cannot use components from SVN: $@\n";
+ set( "use_svn", "no", "disabled because of errors" )
+ if $settings{use_svn}->[0] eq "yes";
+ }
+}
+
+eval {
+ require RSGet::Main;
+};
+if ( $@ ) {
+ die "Cannot start rsget.pl: $@\n";
+}
+
+RSGet::Main::init( $help, $rev, \@save_ARGV, \@ifs );
+die "init failed";
sub set
{
- my ( $key, $val ) = @_;
- if ( exists $settings{ $key } ) {
- $settings{ $key } = $val;
- } else {
- warn "Option '$key' does not exist\n";
- }
+ my $name = shift;
+ my $value = shift;
+ my $where_defined = shift;
+ $name =~ tr/-/_/;
+ $settings{ $name } = [ $value, $where_defined ];
}
-if ( -r "$configdir/config" ) {
- open F_IN, "<", "$configdir/config";
+sub read_config
+{
+ my $cfg = shift;
+ return unless -r $cfg;
+ my $line = 0;
+ open F_IN, "<", $cfg;
while ( <F_IN> ) {
+ $line++;
next if /^\s*(?:#.*)?$/;
chomp;
if ( s/^\s*([a-z_]+)\s*=\s*// ) {
- set( $1, $_ );
+ set( $1, $_, "config file, line $line" );
next;
}
warn "Incorrect config line: $_\n";
@@ -77,107 +78,25 @@
close F_IN;
}
-# read options
-while ( my $arg = shift @ARGV ) {
- if ( $arg eq '-h' ) {
- die "No help here, sorrt. For real help read documentation.\n";
- } elsif ( $arg eq '-i' ) {
- my $ifs = shift @ARGV || die "argument missing";
- RSGet::Dispatch::add_interface( $ifs );
- } elsif ( $arg eq '-p' ) {
- set( "http_port", shift @ARGV || die "port missing" );
- } elsif ( $arg =~ s/^--(.*?)=// ) {
- set( $1, $arg );
- } elsif ( $arg =~ s/^--(.*)// ) {
- my $key = $1;
- my $var = shift @ARGV;
- die "argument missing" unless defined $var;
- set( $key, $var );
- } else {
- set( "list_file", $arg );
- }
-}
-
-if ( $settings{auto_update} ) {
- if ( RSGet::AutoUpdate::update() ) {
- warn "Update successful, restarting\n";
- exec $0, @save_ARGV, "--auto_update", 0;
- }
-}
-if ( keys %settings ) {
- p "Settings:";
- hprint \%settings;
-}
-
-RSGet::FileList::set_file( $settings{list_file} );
-
-my $http = undef;
-if ( $settings{http_port} ) {
- require RSGet::HTTPServer;
- $http = new RSGet::HTTPServer( $settings{http_port} );
- p "HTTP server " . ( $http ? "started on port $settings{http_port}" : "failed" ) ;
-}
-
-if ( $settings{interfaces} ) {
- RSGet::Dispatch::add_interface( $settings{interfaces} );
-}
-
-new RSGet::Line();
-
-# add getters
-foreach my $path ( ( $configdir, $data_path ) ) {
- foreach my $type ( qw(Get Link) ) {
- foreach ( sort glob "$path/$type/*" ) {
- next if /~$/;
- next if m{/\.[^/]*$};
- ( my $file = $_ ) =~ s#.*/##;
- next if exists $getters{ $type . "::" . $file };
- my ( $pkg, $getter ) = RSGet::Processor::read_file( $type, $_ );
- my $msg = "${type}/$file: failed";
- if ( $pkg and $getter ) {
- $getters{ $pkg } = $getter;
- $msg = "$pkg: added\n";
- new RSGet::Line( "INIT: ", $msg );
+sub parse_args
+{
+ my $argnum = 0;
+ while ( my $arg = shift @ARGV ) {
+ $argnum++;
+ if ( $arg =~ /^-?-h(elp)?$/ ) {
+ $help = 1;
+ } elsif ( $arg =~ s/^--(.*?)=// ) {
+ set( $1, $arg, "command line, argument $argnum" );
+ } elsif ( $arg =~ s/^--(.*)// ) {
+ my $key = $1;
+ my $var = shift @ARGV;
+ die "value missing for '$key'" unless defined $var;
+ my $a = $argnum++;
+ set( $key, $var, "command line, argument $a-$argnum" );
} else {
- warn "$msg\n";
+ set( "list_file", $arg, "command line, argument $argnum" );
}
}
- }
}
-new RSGet::Line();
-new RSGet::Line( "rsget.pl started successfully" );
-new RSGet::Line();
-RSGet::Line::update();
-
-# main loop
-my $lasttime = 0;
-for (;;) {
- if ( RSGet::Curl::need_run() ) {
- RSGet::Curl::maybe_abort();
- foreach ( 0..4 ) {
- RSGet::Curl::perform();
- Time::HiRes::sleep(0.050);
- }
- } else {
- Time::HiRes::sleep(0.250);
- }
- RSGet::Curl::update_status();
- RSGet::Line::update();
- $http->perform() if $http;
-
- my $time = time;
- next if $time == $lasttime;
- $lasttime = $time;
-
- RSGet::Wait::wait_update();
- RSGet::Captcha::captcha_update();
-
- my $getlist = RSGet::FileList::readlist();
- if ( $getlist ) {
- my $allchk = RSGet::Dispatch::process( $getlist );
- RSGet::ListManager::autoadd( $getlist );
- }
-}
-
# vim:ts=4:sw=4
More information about the pld-cvs-commit
mailing list