#!/usr/bin/perl -w use strict; use Bot::BasicBot; package TempBot; use base qw( Bot::BasicBot ); use Log::Log4perl qw(:easy); use RRDTool::OO; ########################################### sub said { ########################################### my($self, $mesg) = @_; return unless $mesg->{body} eq "temp"; my $rrd = RRDTool::OO->new( file => "/tmp/temperature.rrd" ); my $dsnames = $rrd->meta_data("dsnames"); $rrd->fetch_start( start => time() - 5*60, end => time() ); my $string; while(my($time, @values) = $rrd->fetch_next()) { for(my $i=0; $i<@$dsnames; $i++) { $string .= sprintf "%10s: %.1f\n", $dsnames->[$i], $values[$i]; } return $string; } } $^W = undef; TempBot->new( server => 'irc.freenode.net', channels => ['#sftemp'], nick => 'tempbot', )->run();