prototype irc bot! :D :D :D :D :D :D

git-svn-id: http://www.observium.org/svn/observer/trunk@1162 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong 2010-06-13 18:27:38 +00:00
parent c9bff08425
commit 7b2fc67837
2 changed files with 74 additions and 0 deletions

View File

@ -33,6 +33,12 @@ $config['syslog_age'] = "1 month";
$config['timestamp_format'] = 'd-m-Y H:i:s';
$config['page_gen'] = 1;
### Alerting Settings
#$config['alert']['email']]'default'] = NULL; ## Default alert recipient
#$config['alert']['email']['default_only'] = FALSE; ## Only use default recipient
#$config['alert']['email']['enable'] = TRUE; ## Enable email alerts
### Cosmetics
$config['rrdgraph_def_text'] = " -c BACK#EEEEEE00 -c SHADEA#EEEEEE00 -c SHADEB#EEEEEE00 -c FONT#000000 -c CANVAS#FFFFFF -c GRID#a5a5a5";

68
irc.php Executable file
View File

@ -0,0 +1,68 @@
#!/usr/bin/php
<?php
include("includes/defaults.inc.php");
include("config.php");
include("includes/functions.php");
include("includes/discovery/functions.inc.php");
include_once('Net/SmartIRC.php');
class observerbot
{
function device_info (&$irc, &$data)
{
$hostname = $data->messageex[1];
$device = mysql_fetch_array(mysql_query("SELECT * FROM `devices` WHERE `hostname` = '".mres($hostname)."'"));
if($device['status'] == 1) { $status = "Up " . formatUptime($device['uptime'] . " "); } else { $status = "Down "; }
if($device['ignore']) { $status = "*Ignored*"; }
if($device['disabled']) { $status = "*Disabled*"; }
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'id'.$device['device_id'] . " " . $device['os'] . " " . $device['version'] . " " .
$device['features'] . " " . $status);
}
function port_info (&$irc, &$data)
{
$hostname = $data->messageex[1];
$ifname = $data->messageex[2];
$device = mysql_fetch_array(mysql_query("SELECT * FROM `devices` WHERE `hostname` = '".mres($hostname)."'"));
$port = mysql_fetch_Array(mysql_query("SELECT * FROM `ports` WHERE `ifName` = '".$ifname."' OR `ifDescr` = '".$ifname."' AND device_id = '".$device['device_id']."'"));
$bps_in = formatRates($port['ifInOctets_rate']);
$bps_out = formatRates($port['ifOutOctets_rate']);
$pps_in = format_bi($port['ifInUcastPkts_rate']);
$pps_out = format_bi($port['ifOutUcastPkts_rate']);
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'id' . $port['interface_id'] . " " . $port['ifAdminStatus'] . "/" . $port['ifOperStatus'] . " " .
$bps_in. " > BPS > " . $bps_out . " | " . $pps_in. "pps > PPS > " . $pps_out ."pps");
}
}
$host = "chat.eu.freenode.net";
$port = 6667;
$nick = "ObserverBOT";
$chan = "#observernms";
$bot = &new observerbot( );
$irc = &new Net_SmartIRC( );
$irc->setUseSockets( TRUE );
$irc->registerActionhandler( SMARTIRC_TYPE_CHANNEL, '!device', $bot, 'device_info' );
$irc->registerActionhandler( SMARTIRC_TYPE_CHANNEL, '!port', $bot, 'port_info' );
$irc->connect( $host, $port );
$irc->login( $nick, 'ObserverNMS Bot', 0, $nick );
$irc->join( array( $chan ) );
$irc->listen( );
$irc->disconnect( );
?>