#!/usr/bin/perl # Downloads stock quotes from Yahoo and formats them as XML for # display on a Betabrite LED sign. # # Author: Darin Franklin # http://pobox.com/~dfranklin/bbxml/ use Finance::Quote; my $label = "K"; use Getopt::Long; GetOptions( "label=s" => \$label, ); my @symbols = @ARGV; my $q = new Finance::Quote("-defaults"); my $src = 'yahoo'; my %colors = ( symbol => '', up => '', down => '', price => '', ); my $time = ''; my $date = ''; print< $colors{symbol} EOF ; my $info = $q->fetch($src, @symbols); foreach my $sym (@symbols) { my $price = $info->{$sym, 'price'} or 0; next unless $price; my $p_change = $info->{$sym, 'p_change'} or 0; $date = $info->{$sym, 'date'} or 0; $time = $info->{$sym, 'time'} or 0; if ($p_change < 0) { $p_change = "$colors{down}$p_change"; } else { $p_change = "$colors{up}$p_change"; } my $lbl = esc($sym); print<$lbl $colors{price}$price $colors{symbol}($p_change\%$colors{symbol}) EOF ; } print<[$date $time] EOF ; sub esc { my $v = shift @_; $v =~ s/\&/\&/g; $v =~ s/\/\>/g; return $v; }