diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2009-12-03 17:51:33 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2009-12-03 17:51:33 +0000 |
| commit | abc4ab6ab1c532074516025f7b95ce7c8571110a (patch) | |
| tree | bebbb4be33f3d600a487d6a28a17f5ca273d8851 /lib | |
| parent | 433733cea4a3596119f3497f081a6ce7d9241fa5 (diff) | |
| download | xxv-abc4ab6ab1c532074516025f7b95ce7c8571110a.tar.gz xxv-abc4ab6ab1c532074516025f7b95ce7c8571110a.tar.bz2 | |
* improve find files
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Tools.pm | 8 | ||||
| -rw-r--r-- | lib/XXV/MODULES/HTTPD.pm | 7 | ||||
| -rw-r--r-- | lib/XXV/MODULES/MUSIC.pm | 18 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 16 | ||||
| -rw-r--r-- | lib/XXV/MODULES/STREAM.pm | 3 | ||||
| -rw-r--r-- | lib/XXV/MODULES/WAPD.pm | 26 | ||||
| -rw-r--r-- | lib/XXV/MODULES/XMLTV.pm | 17 |
7 files changed, 46 insertions, 49 deletions
diff --git a/lib/Tools.pm b/lib/Tools.pm index 10b715a..77aa655 100644 --- a/lib/Tools.pm +++ b/lib/Tools.pm @@ -854,18 +854,16 @@ sub findttf } find({ wanted => sub{ if($File::Find::name =~ /\.ttf$/sig) { - my $f = basename($File::Find::name); + my $f = $_; # keep name of file without path my $fontname = $f; if($font) { - $fontname = Font::TTF::Font->open($f) || $f; + $fontname = Font::TTF::Font->open($File::Find::name) || $f; $fontname = $fontname->{name} || $f if ref $fontname; $fontname = $fontname->read->find_name(4) || $f if ref $fontname; } push(@{$found},[$fontname,$f]); } - }, - follow => 1, - follow_skip => 2, + } }, $directory ); diff --git a/lib/XXV/MODULES/HTTPD.pm b/lib/XXV/MODULES/HTTPD.pm index 6edcd26..f336b71 100644 --- a/lib/XXV/MODULES/HTTPD.pm +++ b/lib/XXV/MODULES/HTTPD.pm @@ -2,7 +2,6 @@ package XXV::MODULES::HTTPD; use XXV::OUTPUT::Html; use XXV::OUTPUT::Ajax; -use File::Basename; use File::Find; use Tools; @@ -549,14 +548,14 @@ sub findskins my $max_depth = $self->{paths}->{HTMLDIR} =~ tr[/][]; find({ wanted => sub { + my $l = $_; my $depth = $File::Find::dir =~ tr[/][]; if(-d $File::Find::name and ( $depth <= $max_depth ) - and ( -e $File::Find::name.'/index.tmpl' - or -e $File::Find::name.'/index.html') + and ( -r $File::Find::name.'/index.tmpl' + or -r $File::Find::name.'/index.html') ) { - my $l = basename($File::Find::name); push(@skins,[$l,$l]); } }, diff --git a/lib/XXV/MODULES/MUSIC.pm b/lib/XXV/MODULES/MUSIC.pm index 51bced0..6fc2392 100644 --- a/lib/XXV/MODULES/MUSIC.pm +++ b/lib/XXV/MODULES/MUSIC.pm @@ -230,15 +230,16 @@ sub _init { # $self->{ICE}->add_directory($self->{path}); find( { wanted => sub{ - if(-r $File::Find::name) { - $self->{ICE}->add_file($File::Find::name) - if($File::Find::name =~ /\.mp3$/sig); # Lookup for *.mp3 - } else { - lg "Permissions deny, couldn't read : $File::Find::name"; + if($File::Find::name =~ /\.mp3$/sig) { # Lookup for *.mp3 + if(-r $File::Find::name) { + $self->{ICE}->add_file($File::Find::name) + } else { + lg "Permissions deny, couldn't read : $File::Find::name"; + } } }, follow => 1, - follow_skip => 2, + follow_skip => 2 }, $self->{path} ); @@ -1254,15 +1255,16 @@ sub _findcover { find( { wanted => sub{ + if($File::Find::name =~ /\.jpg$|\.jpeg$|\.gif$|\.png/sig) { # Lookup for images if(-r $File::Find::name) { push(@images,$File::Find::name) - if($File::Find::name =~ /\.jpg$|\.jpeg$|\.gif$|\.png/sig); # Lookup for images } else { lg "Permissions deny, couldn't read : $File::Find::name"; } + } }, follow => 1, - follow_skip => 2, + follow_skip => 2 }, $directory ); diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index 1836416..843df49 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -599,11 +599,10 @@ sub scandirectory { find( { wanted => sub{ - if(-r $File::Find::name) { - if($File::Find::name =~ /\.$typ\/(\d{3}.vdr)|(\d{5}.ts)$/sig) { # Lookup for *.rec/001.vdr or *.rec/001.ts + if($File::Find::name =~ /\.$typ\/(\d{3}.vdr)|(\d{5}.ts)$/sig) { # Lookup for *.rec/001.vdr or *.rec/001.ts + if(-r $File::Find::name) { my $filename = $File::Find::name; - - my $path = dirname($filename); + my $path = $File::Find::dir; my $hash = md5_hex($path); unless(exists $files->{$hash}) { my $rec; @@ -645,17 +644,14 @@ sub scandirectory { $files->{$hash} = $rec; } else { - push(@{$files->{$hash}->{files}},$filename); - } + } else { + lg "Permissions deny, couldn't read : $File::Find::name"; } - } else { - lg "Permissions deny, couldn't read : $File::Find::name"; } }, - follow => 1, - follow_skip => 2, + follow_fast => 1 }, $directory ); diff --git a/lib/XXV/MODULES/STREAM.pm b/lib/XXV/MODULES/STREAM.pm index 5b568e8..6e2a004 100644 --- a/lib/XXV/MODULES/STREAM.pm +++ b/lib/XXV/MODULES/STREAM.pm @@ -2,9 +2,6 @@ package XXV::MODULES::STREAM; use strict; use Tools; -use File::Basename; -use File::Find; -use File::Path; use File::stat; use File::Glob ':glob'; diff --git a/lib/XXV/MODULES/WAPD.pm b/lib/XXV/MODULES/WAPD.pm index f63c29b..eb0a562 100644 --- a/lib/XXV/MODULES/WAPD.pm +++ b/lib/XXV/MODULES/WAPD.pm @@ -1,7 +1,6 @@ package XXV::MODULES::WAPD; use XXV::OUTPUT::Wml; -use File::Basename; use File::Find; use Tools; @@ -442,11 +441,19 @@ sub findskins # ------------------ { my $self = shift || return error('No object defined!'); - my $found; - find({ wanted => sub{ - if(-d $File::Find::name and -e $File::Find::name.'/wapd.tmpl' ) { - my $l = basename($File::Find::name); - push(@{$found},[$l,$l]); + my @skins; + + my $max_depth = $self->{paths}->{HTMLDIR} =~ tr[/][]; + + find({ wanted => sub { + my $l = $_; + my $depth = $File::Find::dir =~ tr[/][]; + + if(-d $File::Find::name + and ( $depth <= $max_depth ) + and ( -r $File::Find::name.'/wapd.tmpl') + ) { + push(@skins,[$l,$l]); } }, follow => 1, @@ -454,9 +461,10 @@ sub findskins }, $self->{paths}->{HTMLDIR} ); - error "Couldn't find useful WML Skin at : $self->{paths}->{HTMLDIR}" - if(scalar $found == 0); - return $found; + error "Couldn't find useable WML Skin at : $self->{paths}->{HTMLDIR}" + unless(scalar @skins); + @skins = sort { lc($a->[0]) cmp lc($b->[0]) } @skins; + return \@skins; } 1; diff --git a/lib/XXV/MODULES/XMLTV.pm b/lib/XXV/MODULES/XMLTV.pm index aa6bf35..4f4c9ec 100644 --- a/lib/XXV/MODULES/XMLTV.pm +++ b/lib/XXV/MODULES/XMLTV.pm @@ -2,7 +2,6 @@ package XXV::MODULES::XMLTV; use strict; use File::Find; -use File::Basename; use Tools; use Encode; @@ -753,16 +752,14 @@ sub findfiles my $self = shift || return error('No object defined!'); my @files; find({ wanted => sub{ - if(-r $File::Find::name) { - if($File::Find::name =~ /\.xml$/sig # Lookup for *.xml - or $File::Find::name =~ /\.tpl$/sig) { # Lookup for *.tpl - my $l = basename($File::Find::name); - push(@files,[$l,$l]); - } + if($File::Find::name =~ /\.xml$/sig # Lookup for *.xml + or $File::Find::name =~ /\.tpl$/sig) { # Lookup for *.tpl + my $l = $_; # keep name of file without path + if(-r $File::Find::name) { + push(@files,[$_,$_]); + } } - }, - follow => 1, - follow_skip => 2, + } }, $self->{paths}->{XMLTV} ); |
