Here is a script that I modified (the original is from the example in Geo::METAR) that feeds a line of weather data to a Conky (software) script running on my linux box.

#!/usr/bin/perl -w # Get the site code. my $site_code = shift @ARGV; die "Usage: $0 <site_code>\n" unless $site_code; # Get the modules we need. use Data::Dumper; use Geo::METAR; use LWP::UserAgent; use strict; my $ua = new LWP::UserAgent; my $req = new HTTP::Request GET => "http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=$site_code"; my $response = $ua->request($req); if (!$response->is_success) { print $response->error_as_HTML; my $err_msg = $response->error_as_HTML; warn "$err_msg\n\n"; die "$!"; } else { # Yep, get the data and find the METAR. my $m = new Geo::METAR; $m->debug(0); my $data; $data = $response->as_string; # grap response $data =~ s/\n//go; # remove newlines $data =~ m/($site_code\s\d+Z.*?)</go; # find the METAR strin +g my $metar = $1; # keep it # Sanity check if (length($metar)<10) { die "METAR is too short! Something went wrong."; } # pass the data to the METAR module. $m->metar($metar); # Here we will take the information from the module and put it into ou +r variables. my $f_temp = int($m->TEMP_F) ; my $time = $m->TIME; my @sky_conds= @{$m->SKY()}; my $wind = int($m->WIND_MPH); my $w_dir = $m->WIND_DIR_ENG; my $gust = $m->WIND_GUST_MPH; my $vis =$m->VISIBILITY; my @cur_weather = @{$m->WEATHER()}; my $dew = $m->F_DEW; my $bar = $m->ALT; my $tz_adjust = -4; #to adjust the time zone so that the metar dat +a is in local time. #lets play with the time a litte bit now $time =~s/UTC//go; $vis =~s/Statute//go; my $hours; my $minutes; ($hours, $minutes) = ($time =~ /(\d\d):(\d\d)/); my $local_hours = ($hours + $tz_adjust); #now we need to see if the wind is gusting my $gusting; if ($gust) { $gusting =", gusting to $gust mph | "; } else { $gusting =" | "; } #the program wouldn't be any good without some output...so here it is. print "Conditions as of $local_hours:$minutes |"; print " @sky_conds "; print "$f_temp Degrees "; if (@cur_weather) { print "@cur_weather | "; } else{ print "| "; } print "visibility is $vis | $w_dir winds blowing at $wind mph"; print "$gusting"; print "barometer at $bar inches \n"; print @cur_weather; } # end else exit; __END__

and the conkyrc file that uses it is
#avoid flicker double_buffer yes #own window to run simultanious 2 or more conkys own_window yes own_window_transparent no own_window_type normal own_window_hints undecorate,sticky,skip_taskbar,skip_pager #borders draw_borders no border_margin 1 #shades draw_shades no #position gap_x 6 gap_y 6 alignment top_left #behaviour update_interval 900 #colour default_color 8f8f8f #default_shade_color 000000 own_window_colour 262626 #font use_xft yes xftfont bauhaus:pixelsize=10 #to prevent window from moving use_spacer no minimum_size 1268 0 #mpd TEXT ${voffset -1} ${color white}${font Liberation Sans:style=Bold:size=10 +}${execi 300 perl ~/perl/conky_weather.pl KISP}
update: * http://picasaweb.google.com/spullar/Public/photo#5197756579131422818 Just wanted to post a screen shot for everyone to see. the weather conky is the black bar across the top of the screen I would like to test the @cur_weather the same way I test for $gusting, so that my output section is a little neater, but I haven't figured that out yet. I need to fix the time zone change....it dosnt' work between 0:00 and 03:59 UTC. I want to change the sky condition print out so that it only prints out the most important information. Thanks to the guys in the chatter box for helping me figure out some things.


Stuffy
That's my story, and I'm sticking to it, unless I'm wrong in which case I will probably change it ;~)
may be reproduced under the SDL

In reply to Conky Weather Script by stuffy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.