|
@@ -20,7 +20,8 @@ sub delTor($);
|
|
|
sub guessExt($);
|
|
sub guessExt($);
|
|
|
sub processFile($$);
|
|
sub processFile($$);
|
|
|
sub unrar($$);
|
|
sub unrar($$);
|
|
|
-sub localSeriesCleanup($);
|
|
|
|
|
|
|
+sub seriesCleanupLocal($);
|
|
|
|
|
+sub seriesCleanupCore($);
|
|
|
sub seriesCleanup($);
|
|
sub seriesCleanup($);
|
|
|
sub readDir($$);
|
|
sub readDir($$);
|
|
|
sub findMediaFiles($$);
|
|
sub findMediaFiles($$);
|
|
@@ -275,7 +276,7 @@ sub getSSE($) {
|
|
|
my $sIndex = index($name, $seasonBlock);
|
|
my $sIndex = index($name, $seasonBlock);
|
|
|
if ($sIndex > 0) {
|
|
if ($sIndex > 0) {
|
|
|
$series = substr($name, 0, $sIndex - 1);
|
|
$series = substr($name, 0, $sIndex - 1);
|
|
|
- $series = seriesCleanup($series);
|
|
|
|
|
|
|
+ $series = seriesCleanupCore($series);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ($DEBUG) {
|
|
if ($DEBUG) {
|
|
@@ -301,15 +302,16 @@ sub getDest($$$$) {
|
|
|
while (<SHOWS>) {
|
|
while (<SHOWS>) {
|
|
|
chomp;
|
|
chomp;
|
|
|
my $orig = $_;
|
|
my $orig = $_;
|
|
|
- my $clean = localSeriesCleanup($_);
|
|
|
|
|
|
|
+ my $clean = seriesCleanupLocal($_);
|
|
|
push(@shows, $clean);
|
|
push(@shows, $clean);
|
|
|
$showsCan{$clean} = $orig;
|
|
$showsCan{$clean} = $orig;
|
|
|
}
|
|
}
|
|
|
close SHOWS or die("Unable to read monitored series list: ${!} ${?}\n");
|
|
close SHOWS or die("Unable to read monitored series list: ${!} ${?}\n");
|
|
|
|
|
|
|
|
# See if we can find a unique series name match
|
|
# See if we can find a unique series name match
|
|
|
- my $sClean = seriesCleanup($series);
|
|
|
|
|
- my $sMatch = '\b' . $sClean . '\b';
|
|
|
|
|
|
|
+ my $sClean = seriesCleanup($series);
|
|
|
|
|
+ my $sCleanCore = seriesCleanupCore($series);
|
|
|
|
|
+ my $sMatch = '\b' . $sClean . '\b';
|
|
|
$series = '';
|
|
$series = '';
|
|
|
|
|
|
|
|
foreach my $show (@shows) {
|
|
foreach my $show (@shows) {
|
|
@@ -353,7 +355,7 @@ sub getDest($$$$) {
|
|
|
}
|
|
}
|
|
|
foreach my $line (@lines) {
|
|
foreach my $line (@lines) {
|
|
|
chomp($line);
|
|
chomp($line);
|
|
|
- if (!eval('$sClean =~ m' . $line)) {
|
|
|
|
|
|
|
+ if (!eval('$sCleanCore =~ m' . $line)) {
|
|
|
if ($DEBUG) {
|
|
if ($DEBUG) {
|
|
|
print STDERR 'Skipping ' . $show . ' due to must_match failure for: ' . $line . "\n";
|
|
print STDERR 'Skipping ' . $show . ' due to must_match failure for: ' . $line . "\n";
|
|
|
}
|
|
}
|
|
@@ -615,23 +617,21 @@ sub unrar($$) {
|
|
|
return @newFiles;
|
|
return @newFiles;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-sub localSeriesCleanup($) {
|
|
|
|
|
|
|
+sub seriesCleanupLocal($) {
|
|
|
my ($name) = @_;
|
|
my ($name) = @_;
|
|
|
$name =~ s/\.//g;
|
|
$name =~ s/\.//g;
|
|
|
return seriesCleanup($name);
|
|
return seriesCleanup($name);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-sub seriesCleanup($) {
|
|
|
|
|
|
|
+sub seriesCleanupCore($) {
|
|
|
my ($name) = @_;
|
|
my ($name) = @_;
|
|
|
$name =~ s/\b(?:and|\&)\b/ /ig;
|
|
$name =~ s/\b(?:and|\&)\b/ /ig;
|
|
|
$name =~ s/^\s*The\b//ig;
|
|
$name =~ s/^\s*The\b//ig;
|
|
|
- $name =~ s/\s*\(?US\)?\s*$//ig;
|
|
|
|
|
$name =~ s/\[[^\]]*\]//g;
|
|
$name =~ s/\[[^\]]*\]//g;
|
|
|
$name =~ s/\{[^\}]*\}//g;
|
|
$name =~ s/\{[^\}]*\}//g;
|
|
|
$name =~ s/[\(\)]//g;
|
|
$name =~ s/[\(\)]//g;
|
|
|
$name =~ s/[\'\"]//g;
|
|
$name =~ s/[\'\"]//g;
|
|
|
$name =~ s/[^\w\s]+/ /g;
|
|
$name =~ s/[^\w\s]+/ /g;
|
|
|
- $name =~ s/\b20[01][0-9]\s*$//;
|
|
|
|
|
$name =~ s/_+/ /g;
|
|
$name =~ s/_+/ /g;
|
|
|
$name =~ s/\s+/ /g;
|
|
$name =~ s/\s+/ /g;
|
|
|
$name =~ s/^\s*//;
|
|
$name =~ s/^\s*//;
|
|
@@ -639,6 +639,13 @@ sub seriesCleanup($) {
|
|
|
return $name;
|
|
return $name;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+sub seriesCleanup($) {
|
|
|
|
|
+ my ($name) = @_;
|
|
|
|
|
+ $name =~ s/\s*\(?US\)?\s*$//i;
|
|
|
|
|
+ $name =~ s/\s*\(?20[01][0-9]\)?\s*$//;
|
|
|
|
|
+ return seriesCleanupCore($name);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
sub readDir($$) {
|
|
sub readDir($$) {
|
|
|
my ($indir, $long) = @_;
|
|
my ($indir, $long) = @_;
|
|
|
|
|
|