#!/usr/bin/perl # voorbeeldbotje voor Unibot if ($^O !~ /win/i) { `echo $$ > /home/unibot/botje/botje.pid`; } $SIG{INT}=\&sigint; if ($^O !~ /win/i) { open STDERR, '>>/home/unibot/botje/botje_error.log'; } use unibot; use Time::HiRes qw ( gettimeofday ); use Text::Unidecode; my $irc=unibot::init(); if ($irc->{id} lt '3.1.3') { print "Requires Unibot version 3.1.3 or higher!\n"; exit 1 } $irc->{server}="141.138.137.123"; #lichtsnel $irc->{port}=6667; $irc->{servername}="LichtSnel IRC Community"; $irc->{nick}="botje"; $irc->{altnick}="botje_"; # $irc->{channels} = [ '#test','#radio' ]; $irc->{channels} = [ '#mychan1','#mychan2' ]; $irc->{ident}="stats"; $irc->{desc}="Uni Botje"; $irc->{nickserv}="NickServ!NickServ\@services.lichtsnel.nl"; #$irc->{nickserv}=undef; $irc->{password}="h4ckm3"; $irc->{autoreg}=1; $irc->{gaininfo}=0; $irc->{antiflood}=0; $irc->{verbose}=1; $irc->{verboseoutput}=0; $irc->{verbosepong}=0; $irc->{verboseevents}=0; $irc->{verbosewhois}=0; $irc->{verbosemotd}=0; $irc->{verboseprivmsg}=0; $irc->{events}{joined}=\&event_joined; $irc->{events}{join}=\&event_join; $irc->{events}{connect}=\&event_connect; $irc->{events}{disconnect}=\&event_disconnect; $irc->{events}{privmsg}=\&event_privmsg; $irc->{events}{whois}=\&event_whois; $irc->{events}{notice}=\&event_notice; # en er zijn veel meer events!!!!!!!!!! $irc->addtimer("nieuws",15,0,600,\&nieuws); $irc->start; sub sigint { $irc->{quitmessage}='Process killed by root'; $irc->stop } ############################################################################# # EVENTS # ############################################################################# sub event_connect { print STDOUT "*~*~* Welkom bij nieuws-bot botje *~*~*\n"; } sub event_disconnect { print STDOUT "*~*~* Tot ziens! *~*~*\n"; } sub event_privmsg { my ($client,$level,$message,$channel,$nick,$ident,$host) = @_; if ($message =~ /^\!uptime$/i) { handle_uptime($channel) } } sub event_notice { my ($client,$level,$message,$channel,$nick,$ident,$host) = @_; } sub event_joined { my ($client,$level,$channel,$nick) = @_; } sub event_join { my ($client,$level,$channel,$nick) = @_; } sub event_whois { my ($client,$level,$message,$channel,$nick,$ident,$host) = @_; } ############################################################################# # HANDLES # ############################################################################# sub handle_uptime { my ($channel) = @_; my $sec=gettimeofday()-$STARTTIME; my $out="Ik ben online voor "; if ($sec>86400) { my $days=($sec/86400)>>0; $sec=$sec % 86400; $out.="$days dagen, " } if ($sec>3600) { my $hr=($sec/3600)>>0; $sec=$sec % 3600; $out.="$hr uur, " } if ($sec>60) { my $min=($sec/60)>>0; $sec=$sec % 60; $out.="$min minuten, " } $out.="$sec seconden"; $irc->msg($channel,$out) } ############################################################################ # TIMERS # ############################################################################ sub nieuws { $irc->msg("#mychan1","Het nieuws om de 10 minuten") } # EOF