Net-YMSG
view release on metacpan or search on metacpan
example/yahoo.pl view on Meta::CPAN
my $event = shift;
my $from = $event->from;
if(! defined $ignorehash{"$from"}) {
my $body = $event->body;
$body =~ s{</?(?:font|FACE).+?>}{}g;
print "[06;32m (".$event->from.")[06;36m : ".$body."[0m \n";
}
}
sub Login
{
my $self = shift;
my $event = shift;
my $yahoo = $event->get_connection;
printf "[06;31m[system] Friends for - %s[0m \n", $event->from;
my $baddy_status = join "\n", map {
$_->to_string
} $yahoo->buddy_list;
print $baddy_status, "\n";
}
sub GoesOnline
{
my $self = shift;
my $event = shift;
my $from = $event->from;
if( ! defined $nametonum{"$from"} ) {
$nametonum{"$from"} = $count;
$numtoname{"$count"}=$from;
$count++;
}
printf "[05;31m[system] %s(%s) goes in.[0m \n", $event->from,$nametonum{"$from"};
}
sub GoesOffline
{
my $self = shift;
my $event = shift;
if ($event->from) {
print "[06;31m[system]".$event->from."goes out.[0m \n";
} else {
print "[05;31m[system] You have been logged off as you have logged in on a different machine.[00;00m \n";
exit;
}
}
sub ChangeState
{
my $self = shift;
my $event = shift;
my $busy_status = $event->busy == 1 ?
'(Busy) ' :
$event->busy == 2 ?
'(Sleep) ' : '';
my $message;
if ($event->status_code == 99) {
$message = sprintf "[%s] %sTransit to '%s'\n",
$event->from, $busy_status, $event->body;
}
else {
$message = sprintf "[%s] %sTransit to '%s'\n",
$event->from, $busy_status, STATUS_MESSAGE->[$event->status_code];
}
print $message;
}
sub NewFriendAlert
{
my $self = shift;
my $event = shift;
my $message = sprintf "[05;31m [system] New Friend Alert: %s added %s as a Friend.\n",
$event->from, $event->to;
$message .= sprintf "and also sent the following message: %s[06;36m\n",
$event->body;
print $message."[0m";
}
sub ReceiveMessage
{
my $self = shift;
my $event = shift;
my @from = split("\x80",$event->from);
my @body = split("\x80",$event->body);
my $i;
if($first==0 && $#from >= 1) {
#might be offline messages
print "[05;31mYour Offline messages :\n[They have been saved in the file \'offline\' in the current directory]\n[0m";
open(OFFLINE,">>offline") || printf "Error opening file offline";
for($i=0;$i<=$#from;$i++) {
print OFFLINE "[".$from[$i]."]: ".$body[$i]."\n";
}
close(OFFLINE);
}
$first=1;
# print "body$body from $from\n";
for($i=0;$i<=$#from;$i++) {
if ($body[$i] ne "") {
$body[$i] =~ s{</?(?:font|FACE).+?>}{}g;
if( ! defined $nametonum{"$from[$i]"} ) {
$nametonum{"$from[$i]"} = $count;
$numtoname{"$count"}=$from[$i];
$count++;
}
my $message = sprintf "[06;32m;[%s(%s)][06;36m %s [0m\n", $from[$i],$nametonum{"$from[$i]"},$body[$i];
print $message."[0m";
}
}
}
1;
__END__
( run in 0.789 second using v1.01-cache-2.11-cpan-39bf76dae61 )