=================================================================== RCS file: /cvs/openbsd/OpenBSDTorrents/CurrentTorrents.pl,v retrieving revision 1.24 retrieving revision 1.26 diff -u -r1.24 -r1.26 --- openbsd/OpenBSDTorrents/CurrentTorrents.pl 2007/11/02 03:36:01 1.24 +++ openbsd/OpenBSDTorrents/CurrentTorrents.pl 2009/10/20 20:04:28 1.26 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -#$RedRiver: CurrentTorrents.pl,v 1.23 2007/10/01 20:17:23 andrew Exp $ +#$RedRiver: CurrentTorrents.pl,v 1.25 2008/11/14 18:18:31 andrew Exp $ use strict; use warnings; use diagnostics; @@ -79,7 +79,8 @@ closedir DIR; } -foreach my $name (keys %{ $files{torrent} }) { +#print Dump \%files; +foreach my $name (sort keys %{ $files{torrent} }) { next unless $name =~ /^$Name_Filter/; #print "Checking $name\n"; @@ -134,6 +135,12 @@ if (exists $keep{$name}) { if (exists $keep{$name}{$hash}) { + if ( $keep{$name}{$hash}{epoch} == $epoch ) { + next; + } + print "Removing [$name] [$hash]\n\t", + $keep{$name}{$hash}{path}, + "\n"; push @delete, $keep{$name}{$hash}; delete $files{torrent}{ $keep{$name}{$hash}{name} @@ -142,11 +149,22 @@ }; $keep{$name}{$hash} = $files{torrent}{$name}{$epoch}; + print "Keeping additional instance of [$name] [$hash]\n\t", + $keep{$name}{$hash}{path}, + "\n"; } else { + print "Removing old [$name] [$hash]\n"; + if ( $keep{$name}{$hash}{path} ) { + print "\t", $keep{$name}{$hash}{path}, + "\n"; + } push @delete, $files{torrent}{$name}{$epoch}; delete $files{torrent}{$name}{$epoch}; } } else { + print "Keeping first instance of $name [$hash]\n\t", + $files{torrent}{$name}{$epoch}{path}, + "\n"; $keep{$name}{$hash} = $files{torrent}{$name}{$epoch}; @@ -176,8 +194,8 @@ #print Dump \%keep; foreach my $name (keys %keep) { foreach my $hash (keys %{ $keep{$name} }) { - my $file = $keep{$name}{$hash}{file}; - my $dir = $keep{$name}{$hash}{dir }; + my $file = $keep{$name}{$hash}{file} || q{}; + my $dir = $keep{$name}{$hash}{dir } || q{}; if ($dir eq $OBT->{DIR_NEW_TORRENT}) { print "Moving $file to current torrents\n"; rename("$dir/$file", $OBT->{DIR_TORRENT} . "/" . $file)