summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2009-12-03 17:51:33 +0000
committerAndreas Brachold <vdr07@deltab.de>2009-12-03 17:51:33 +0000
commitabc4ab6ab1c532074516025f7b95ce7c8571110a (patch)
treebebbb4be33f3d600a487d6a28a17f5ca273d8851 /lib
parent433733cea4a3596119f3497f081a6ce7d9241fa5 (diff)
downloadxxv-abc4ab6ab1c532074516025f7b95ce7c8571110a.tar.gz
xxv-abc4ab6ab1c532074516025f7b95ce7c8571110a.tar.bz2
* improve find files
Diffstat (limited to 'lib')
-rw-r--r--lib/Tools.pm8
-rw-r--r--lib/XXV/MODULES/HTTPD.pm7
-rw-r--r--lib/XXV/MODULES/MUSIC.pm18
-rw-r--r--lib/XXV/MODULES/RECORDS.pm16
-rw-r--r--lib/XXV/MODULES/STREAM.pm3
-rw-r--r--lib/XXV/MODULES/WAPD.pm26
-rw-r--r--lib/XXV/MODULES/XMLTV.pm17
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}
);