summaryrefslogtreecommitdiff
path: root/util/OLD/cleanimg.pl
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-14 21:57:56 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-14 21:57:56 +0000
commitd0dd5ff69592ce332471c8ef49dd5bb3fd4ec3b2 (patch)
treeaec746ab23ae98aa6c1ba5564c9ba6dd0d8da078 /util/OLD/cleanimg.pl
parent1c71b23985ace088dd8fa01001521c3844a14c40 (diff)
Deleted /util/OLD, because, seriously, that -is- old!
git-svn-id: svn://vndb.org/vndb@86 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
Diffstat (limited to 'util/OLD/cleanimg.pl')
-rw-r--r--util/OLD/cleanimg.pl111
1 files changed, 0 insertions, 111 deletions
diff --git a/util/OLD/cleanimg.pl b/util/OLD/cleanimg.pl
deleted file mode 100644
index 45032106..00000000
--- a/util/OLD/cleanimg.pl
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/perl
-
-
-
-#
-# O L D - D O N O T U S E !
-#
-
-
-use strict;
-use warnings;
-use Time::HiRes 'gettimeofday', 'tv_interval';
-BEGIN {
- our $ST = [ gettimeofday ];
-}
-use DBI;
-use Image::Magick;
-use Image::MetaData::JPEG;
-use File::Copy 'cp', 'mv';
-use Digest::MD5;
-
-require '/www/vndb/lib/global.pl';
-
-our $ST;
-
-my $sql = DBI->connect(@VNDB::DBLOGIN,
- { RaiseError => 1, PrintError => 0, AutoCommit => 1, pg_enable_utf8 => 1 });
-
-my $imgpath = '/www/vndb/static/img';
-my $tmpimg = '/tmp/vndb-clearimg.jpg';
-
-imgscan();
-
-printf "Finished in %.3f seconds\n", tv_interval($ST);
-
-sub imgscan {
- print "Scanning images...\n";
- my $done = 0;
- for my $c ('0'..'9', 'a'..'f') {
- opendir(my $D, "$imgpath/$c") || die "$imgpath/$c: $!";
- for my $f (readdir($D)) {
- my $cur = "$imgpath/$c/$f";
- next if !-s $cur || $f !~ /^(.+)\.jpg$/;
- my $cmd5 = $1;
-
- # delete unused images
- if($f =~ /^tmp/ || $f =~ /\.jpg\.jpg$/) {
- printf "Deleting temp image %s/%s\n", $c, $f;
- unlink $cur or die $!;
- next;
- }
- my $q = $sql->prepare('SELECT 1 FROM vn_rev WHERE image = DECODE(?, \'hex\')');
- $q->execute($cmd5);
- my $d = $q->fetchrow_arrayref();
- if(!$d || ref($d) ne 'ARRAY' || $d->[0] <= 0) {
- printf "Deleting %s/%s\n", $c, $f;
- unlink $cur or die $!;
- $done++;
- next;
- }
- $q->finish();
-
- # remove metadata
- my $i = Image::MetaData::JPEG->new($cur);
- $i->drop_segments('METADATA');
- $i->save($tmpimg);
- if(-s $tmpimg < (-s $cur)-32) {
- printf "Removed metadata from %s/%s: %.2f to %.2f kB\n", $c, $f, (-s $cur)/1024, (-s $tmpimg)/1024;
- cp $tmpimg, $cur;
- }
-
- # compress large images
- if(-s $cur > 20*1024) { # > 20 KB
- $i = Image::Magick->new;
- $i->Read($cur);
- $i->Set(quality => 80);
- $i->Write($tmpimg);
- undef $i;
- #if(-s $tmpimg > 35*1024) { # extremely large images get a quality of 65
- # $i = Image::Magick->new;
- # $i->Read($cur);
- # $i->Set(quality => 65);
- # $i->Write($tmpimg);
- # undef $i;
- #}
- if(-s $tmpimg < (-s $cur)-1024) {
- printf "Compressed %s/%s from %.2f to %.2f kB\n", $c, $f, (-s $cur)/1024, (-s $tmpimg)/1024;
- cp $tmpimg, $cur or die $!;
- $done++;
- }
- }
-
- # rename file if MD5 is different
- open(my $T, '<:raw:bytes', $cur) || die $!;
- my $md5 = Digest::MD5->new()->addfile($T)->hexdigest;
- close($T);
- if($md5 ne $cmd5) {
- $sql->do('UPDATE vn_rev SET image = DECODE(?, \'hex\') WHERE image = DECODE(?, \'hex\')', undef, $md5, $cmd5);
- mv $cur, sprintf "%s/%s/%s.jpg", $imgpath, substr($md5, 0, 1), $md5 or die $!;
- printf "Renamed %s/%s to %s/%s\n", $c, $cmd5, substr($md5, 0, 1), $md5;
- }
- }
- closedir($D);
- }
- unlink $tmpimg;
- print "Everything seems to be ok\n" if !$done;
-}
-
-
-
-1;