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 " (".$event->from.") : ".$body." \n";
	 }
}



sub Login
{
	 my $self = shift;
	 my $event = shift;
	 my $yahoo = $event->get_connection;

	 printf "[system] Friends for - %s \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 "[system] %s(%s) goes in. \n", $event->from,$nametonum{"$from"};
}


sub GoesOffline
{
	 my $self = shift;
	 my $event = shift;

	 if ($event->from) {
		  print "[system]".$event->from."goes out. \n";
	 } else {
		  print "[system] You have been logged off as you have logged in on a different machine. \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 " [system] New Friend Alert: %s added %s as a Friend.\n",
	 $event->from, $event->to;
	 $message .= sprintf "and also sent the following message: %s\n",
	 $event->body; 
	 print $message."";
}

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 "Your Offline messages :\n[They have been saved in the file \'offline\' in the current directory]\n";
		  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 ";[%s(%s)] %s \n", $from[$i],$nametonum{"$from[$i]"},$body[$i];
			   print $message."";
		  }
	 }

}

1;
__END__




( run in 0.789 second using v1.01-cache-2.11-cpan-39bf76dae61 )