#!/usr/bin/perl #turn jpg and png files into animated gifs # #requires ImageMagick and Ghostscript use IO::Handle; use LWP::Simple; $|=1; $animate = 0; $count = 0; $debug=0; $pid = $$; #note- $basedir must be writable by 'nobody' $basedir = "/home/ciscostu/prank-o-matic.com/html/tourette/tmp"; $baseurl = "http://prank-o-matic.com/tourette/tmp"; @dirty_words = ('shit','piss','fuck','cunt','cocksucker','motherfucker','tits'); $dirty_word = $dirty_words[int rand($#dirty_words + 1)]; if ($debug == 1) { open (DEBUG, '>>/usr/local/squid/var/logs/tourette_debug.log'); } autoflush DEBUG 1; while (<>) { chomp $_; if ($_ =~ /(.*\.jpg)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.jpg"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("/usr/local/bin/convert", "$file", "$basedir/$pid-$count.gif"); system("chmod", "a+r", "$basedir/$pid-$count.gif"); if ($debug == 1) { print DEBUG "converted jpg to gif- $url\n"; } $animate = 1; } elsif ($_ =~ /(.*\.png)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.png"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("/usr/local/bin/convert", "$file", "$basedir/$pid-$count.gif"); system("chmod", "a+r", "$basedir/$pid-$count.gif"); if ($debug == 1) { print DEBUG "converted png to gif- $url\n"; } $animate = 1; } elsif ($_ =~ /(.*\.gif)/i) { $url = $1; if ($debug == 1) { print DEBUG "INPUT- $url\n"; } $file = "$basedir/$pid-$count.gif"; getstore($url,$file); if ($debug == 1) { print DEBUG "fetched image- $url\n"; } system("chmod", "a+r", "$basedir/$pid-$count.gif"); $animate = 1; } else { print "$_\n"; if ($debug == 1) { print DEBUG "PASS- $_\n"; } } if ($animate == 1) { $size = `/usr/local/bin/identify $basedir/$pid-$count.gif | cut -d" " -f 3`; chomp $size; if ($debug == 1) { print DEBUG "calculated image size- $url\n"; } system("/usr/local/bin/convert -background black -fill white -gravity center -size $size label:'$dirty_word' $basedir/$pid-$count-text.gif"); system("chmod", "a+r", "$basedir/$pid-$count-text.gif"); if ($debug == 1) { print DEBUG "created alternate image- $url\n"; } system("/usr/local/bin/convert -delay 100 -size $size -page +0+0 $basedir/$pid-$count.gif -page +0+0 $basedir/$pid-$count-text.gif -loop 0 $basedir/$pid-$count-animation.gif"); system("chmod", "a+r", "$basedir/$pid-$count-animation.gif"); if ($debug == 1) { print DEBUG "created animated gif- $url\n"; } if ($debug == 1) { print DEBUG "OUTPUT- $url to $baseurl/$pid-$count-animation.gif\n"; } print "$baseurl/$pid-$count-animation.gif\n"; } $animate = 0; $count++; }