X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;ds=sidebyside;f=sensor_graph%2Fget_realraum_picture.pl;fp=sensor_graph%2Fget_realraum_picture.pl;h=bd9714823f4a73dd61977a2772d8072a6b7822a1;hb=206ca77952614d9bfa0925bd3c9287bf88459cae;hp=0000000000000000000000000000000000000000;hpb=2fb32081f6e153dd6529ae581b441a504160d649;p=svn42.git diff --git a/sensor_graph/get_realraum_picture.pl b/sensor_graph/get_realraum_picture.pl new file mode 100755 index 0000000..bd97148 --- /dev/null +++ b/sensor_graph/get_realraum_picture.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl -w +# +# + +use strict; +use utf8; +require LWP::UserAgent; +my $ua = LWP::UserAgent->new(env_proxy => 1, + keep_alive => 1, + timeout => 30, + ); +use HTTP::Cookies; +use LWP; +$ua->cookie_jar({}); + +############### +$cam::url = "http://slug.realraum.at:8088/?action=snapshot"; +#$cam::get = {action=>"snapshot"}; +$cam::localpath = "/tmp/realraum.jpg"; +$cam::mintime = 0.00025; +############### + +sub output_saved_image +{ + return 0 if ( not -e $cam::localpath); + my $fh; + print STDOUT "Content-type: image/jpeg\n\n"; + open($fh,"<$cam::localpath") or exit; + while (<$fh>) {print $_}; + close($fh); + return 1; +} + +sub output_remote_image_and_save +{ + my $response; + $response = $ua->get($cam::url); + if (defined $response and $response->content =~ /^\xff\xd8/) + { + my $fh; + open($fh,">$cam::localpath"); + print $fh $response->content; + close($fh); + print STDOUT "Content-type: image/jpeg\n\n"; + print $response->content; + $response->clear; + return 1; + } + return 0; +} + +sub output_error +{ + print STDOUT "Status: 404 Not Found\n"; + print STDOUT "Content-type: text/html\n\n"; + print STDOUT "

Sorry

The picture you requested could not be found

\n"; + return 1; +} + +if (-e $cam::localpath and -M $cam::localpath < $cam::mintime) +{ + exit if (&output_saved_image); +} +else +{ + exit if (&output_remote_image_and_save); + exit if (&output_saved_image); +} +&output_error;