=================================================================== RCS file: /cvs/openbsd/OpenBSDTorrents/CurrentTorrents.pl,v retrieving revision 1.4 retrieving revision 1.12 diff -u -r1.4 -r1.12 --- openbsd/OpenBSDTorrents/CurrentTorrents.pl 2005/03/24 00:20:33 1.4 +++ openbsd/OpenBSDTorrents/CurrentTorrents.pl 2005/05/02 21:27:00 1.12 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -#$Id: CurrentTorrents.pl,v 1.4 2005/03/24 00:20:33 andrew Exp $ +#$Id: CurrentTorrents.pl,v 1.12 2005/05/02 20:27:00 andrew Exp $ use strict; use warnings; use diagnostics; @@ -14,8 +14,18 @@ #use YAML; +justme(); + +my $Name_Filter = shift || ''; +if ($Name_Filter =~ /^(\w*)$/) { + $Name_Filter = $1; +} else { + die "Invalid filter: $Name_Filter"; +} + my %files; -opendir DIR, $TorrentDir or die "Couldn't opendir $TorrentDir: $!"; +opendir DIR, $OBT->{DIR_TORRENT} + or die "Couldn't opendir $OBT->{DIR_TORRENT}: $!"; foreach (readdir DIR) { if (/^([^\/]+)$/) { $_ = $1; @@ -26,9 +36,10 @@ my ($name, $year, $mon, $mday, $hour, $min) = /^(.*)-(\d{4})-(\d{2})-(\d{2})-(\d{2})(\d{2})/; + $mon--; my $epoch = timegm(0,$min,$hour,$mday,$mon,$year); - print "Adding $_\n"; + #print "Adding $_\n"; $files{$name}{$epoch} = { file => $_, @@ -46,14 +57,15 @@ my %keep; my @delete; foreach my $name (keys %files) { - #print "$name\n"; + next unless $name =~ /^$Name_Filter/; + print "Checking $name\n"; foreach my $epoch ( sort { $b <=> $a } keys %{ $files{$name} } ) { #print "\t$epoch\n"; my $torrent = $files{$name}{$epoch}{file}; my $t; - eval { $t = BT::MetaInfo->new("$TorrentDir/$torrent"); }; + eval { $t = BT::MetaInfo->new($OBT->{DIR_TORRENT} . "/$torrent"); }; if ($@) { warn "Error reading torrent $torrent\n"; next; @@ -62,13 +74,13 @@ $files{$name}{$epoch}{comment} = $t->{comment}; my ($path) = $t->{comment} =~ /Files from ([^\n]+)\n/s; - unless (-d "$TorrentDir/$path") { - print "Deleting $files{$name}{$epoch}{file} the path doesn't exist.\n"; + unless (-d $OBT->{DIR_FTP} . "/$path") { + #print "Deleting $files{$name}{$epoch}{file} the path doesn't exist.\n"; push @delete, $files{$name}{$epoch}{file}; } if (keys %{ $files{$name} } == 1) { - print "Skipping torrent for $name there is only one.\n"; + #print "Skipping torrent for $name there is only one.\n"; next; } @@ -99,5 +111,5 @@ foreach (@delete) { print "Deleting '$_'\n"; - unlink "$TorrentDir/$_" or die "Couldn't unlink $_"; + unlink $OBT->{DIR_TORRENT} . "/$_" or die "Couldn't unlink $_"; }