img-save.pl: more eval magic, cleanups and coding style stuff
This commit is contained in:
@@ -4,6 +4,8 @@ use warnings "all";
|
|||||||
use strict;
|
use strict;
|
||||||
use Cache::Memcached;
|
use Cache::Memcached;
|
||||||
use URI::URL;
|
use URI::URL;
|
||||||
|
use threads;
|
||||||
|
|
||||||
my $HTINY = undef;
|
my $HTINY = undef;
|
||||||
my $HTINYS = undef;
|
my $HTINYS = undef;
|
||||||
|
|
||||||
@@ -34,12 +36,17 @@ if ($@ eq '') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $IMAGEMAGICK = undef; # use on demand
|
my $IMAGEMAGICK = undef; # use on demand
|
||||||
if ($^O ne 'cygwin') { # cygwin 2.882 64-bit has broken Image::Magick
|
|
||||||
$IMAGEMAGICK = eval {
|
if ($^O ne 'cygwin') { # cygwin 2.882 64-bit has broken Image::Magick
|
||||||
|
eval {
|
||||||
require Image::Magick;
|
require Image::Magick;
|
||||||
import Image::Magick qw(ping);
|
import Image::Magick qw(ping);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if ($@ eq '') {
|
||||||
|
$IMAGEMAGICK = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub dlfunc(@);
|
sub dlfunc(@);
|
||||||
@@ -61,16 +68,25 @@ while ( 1 ) {
|
|||||||
my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11211" ] };
|
my $memd = new Cache::Memcached { 'servers' => [ "127.0.0.1:11211" ] };
|
||||||
my $itemref = $memd->stats(['items']);
|
my $itemref = $memd->stats(['items']);
|
||||||
|
|
||||||
if (defined($itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'}) and (length($itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'}) > 2)) {
|
if (defined($itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'})
|
||||||
|
and (length($itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'}) > 2)) {
|
||||||
|
|
||||||
my $slabinfo = (split("\n", $itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'}))[0];
|
my $slabinfo = (split("\n", $itemref->{'hosts'}->{'127.0.0.1:11211'}->{'items'}))[0];
|
||||||
my $slab = (split(/\:/, $slabinfo))[1];
|
my $slab = (split(/\:/, $slabinfo))[1];
|
||||||
my $itemsamount = (split(/ /, $slabinfo))[2];
|
my $itemsamount = (split(/ /, $slabinfo))[2];
|
||||||
my $cachedump = $memd->stats(["cachedump $slab $itemsamount"]);
|
my $cachedump = $memd->stats(["cachedump $slab $itemsamount"]);
|
||||||
my @keys = map { (split(/ /))[1] } split(/\n/, $cachedump->{'hosts'}->{'127.0.0.1:11211'}->{"cachedump $slab $itemsamount"});
|
|
||||||
|
my @keys = map {
|
||||||
|
(split(/ /))[1];
|
||||||
|
} split(/\n/, $cachedump->{'hosts'}->{'127.0.0.1:11211'}->{"cachedump $slab $itemsamount"});
|
||||||
|
|
||||||
foreach my $key (@keys) {
|
foreach my $key (@keys) {
|
||||||
|
next unless ($key =~ /^hcht_/);
|
||||||
|
next unless ($key =~ /^irssi_/);
|
||||||
my $url = $memd->get($key);
|
my $url = $memd->get($key);
|
||||||
cdlfunc($url);
|
my $t = threads->create('cdlfunc', $url);
|
||||||
|
$t->detach() if (defined($t)); # detach only if we succeed in creating thread :)
|
||||||
|
undef $t;
|
||||||
$memd->delete($key);
|
$memd->delete($key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,7 +105,7 @@ sub cdlfunc($) {
|
|||||||
mkdir ($savepath) unless (-d $savepath);
|
mkdir ($savepath) unless (-d $savepath);
|
||||||
my $fname = $url;
|
my $fname = $url;
|
||||||
$fname =~ s/[^\w!., -#]/_/g;
|
$fname =~ s/[^\w!., -#]/_/g;
|
||||||
$savepath = $savepath . "/" . $fname . ".$extension";
|
$savepath = sprintf("%s/%s.%s", $savepath, $fname, $extension);
|
||||||
|
|
||||||
if ( (lc($url) =~ /\.(gif|jpe?g|png|webm|mp4)$/) and ($1 eq $extension) ) {
|
if ( (lc($url) =~ /\.(gif|jpe?g|png|webm|mp4)$/) and ($1 eq $extension) ) {
|
||||||
$savepath = $ENV{'HOME'} . "/imgsave/" . $fname;
|
$savepath = $ENV{'HOME'} . "/imgsave/" . $fname;
|
||||||
|
|||||||
Reference in New Issue
Block a user