Net-YahooMessenger
view release on metacpan or search on metacpan
lib/Net/YahooMessenger/ChangeState.pm view on Meta::CPAN
package Net::YahooMessenger::ChangeState;
use base 'Net::YahooMessenger::Event';
sub source {
my $self = shift;
if (@_) {
$self->SUPER::source(@_);
my $yahoo = $self->get_connection;
my $buddy = $yahoo->get_buddy_by_name( $self->from );
return unless $buddy;
$buddy->status( $self->status_code );
if ( $self->status_code == 99 ) {
$buddy->custom_status( $self->body );
$buddy->busy( $self->busy );
}
}
$self->SUPER::source();
}
sub from {
my $self = shift;
$self->_set_by_name( 'BUDDY_ID', shift ) if @_;
$self->_get_by_name('BUDDY_ID');
}
sub body {
my $self = shift;
$self->_set_by_name( 'STATUS_MESSAGE', shift ) if @_;
$self->_get_by_name('STATUS_MESSAGE');
}
sub busy {
my $self = shift;
$self->_set_by_name( 'BUSY_CODE', shift ) if @_;
$self->_get_by_name('BUSY_CODE');
}
sub status_code {
my $self = shift;
$self->_set_by_name( 'STATUS_CODE', shift ) if @_;
$self->_get_by_name('STATUS_CODE');
}
sub code {
return 3;
}
sub to_string {
my $self = shift;
sprintf "%s: transit to '%s'", $self->{sender}, $self->{body};
}
1;
__END__
( run in 3.072 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )