Scrapar
view release on metacpan or search on metacpan
lib/Scrapar/Util.pm view on Meta::CPAN
print "[LWP-GET] @_\n";
LWP::Simple::get(@_);
}
sub xml_query {
Scrapar::XMLQuery::xml_query(@_);
}
sub str2time2str {
my $pattern = shift;
my $time = shift;
return time2str($pattern, str2time $time);
}
sub mysql_dateformat {
my $time = shift;
return time2str("%Y-%m-%d", $time);
}
sub html2text {
my $html = shift;
my $out;
my $in;
local $/;
open2($out, $in, 'python ' . $FindBin::Bin . '/html2text.py');
print { $in } $html . "\n";
close $in;
my $ret = <$out>;
return $ret;
}
sub trim_head {
my $string = shift;
my $regex = shift;
$string =~ s[^$regex][];
return $string;
}
sub trim_tail {
my $string = shift;
my $regex = shift;
$string =~ s[$regex$][];
return $string;
}
use Scrapar::PArray;
sub parray {
my @array_data = @_;
# make a unique digest based on where parray() is called and on
# the data in parray initially
my $digest = join q//, (caller(1))[3,2]; # sub name, line number
for my $data (sort @array_data) {
$digest = md5_hex($data . $digest);
}
mkdir "/tmp/parray/";
my $filename = "/tmp/parray/" . join q/-/, (caller)[0], $digest ;
$ENV{SCRAPER_LOGGER}->info("parray filename: $filename");
my $X = Scrapar::PArray->new($filename);
$X->push(@array_data) if $X->{is_file_empty};
return $X;
}
sub match {
my $text = shift;
my $regex = shift;
if ($text =~ m[$regex]) {
{
no strict 'refs';
my $count = 1;
return map { ${$count++} } @-;
}
}
}
sub match_first {
(match(@_))[0];
}
sub free_mem_ratio {
my $ratio = (freemem() + freeswap()) / (totalmem() + totalswap());
return $ratio;
}
# deletes log files older than one month
sub recycle_log_files {
my $log_path = shift;
# (stat($_))[9] => mtime
unlink for grep { time - (stat($_))[9] > 30 * 86400 } glob("$log_path/*.log");
}
# return the usage of a disk on which a path resides
sub disk_usage {
my $path = shift;
my $df = `df -l -h /tmp/`;
if ($df =~ m[(\d+)%]) {
return $1;
}
}
__END__
=pod
=head1 NAME
Scrapar::Util - Some utility functions/methods
=head1 COPYRIGHT
Copyright 2009-2010 by Yung-chung Lin
All right reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
( run in 1.408 second using v1.01-cache-2.11-cpan-364913b4093 )