Net-Gadu
view release on metacpan or search on metacpan
contrib/irssi_gg.pl view on Meta::CPAN
} else {
Irssi::printformat(MSGLEVEL_NOTICES,'gginfo',$uin." jest zalogowany");
}
}
Irssi::command_bind('list','cmd_list','gg');
sub cmd_list {
foreach my $n (keys %nicks) {
my $res = $gg->search_uin($n,1);
if (@{$res}->[0]->{active} == 1) {
Irssi::printformat(MSGLEVEL_NOTICES,'gginfo',$nicks{$n}." $n zalogowany");
} else {
Irssi::printformat(MSGLEVEL_NOTICES,'gginfo',$nicks{$n}." $n nie zalogowany");
}
}
}
Irssi::command_bind('active','cmd_active','gg');
sub cmd_active {
foreach my $n (keys %nicks) {
my $res = $gg->search_uin($n,1);
if (@{$res}->[0]->{active} == 1) {
Irssi::printformat(MSGLEVEL_NOTICES,'gginfo',$nicks{$n}." $n zalogowany");
}
}
}
Irssi::command_bind('ggmsg','cmd_ggmsg','gg');
sub cmd_ggmsg {
my ($data,$ser,$witem) = @_;
if (!check_session()) { return; }
$server = $ser;
my $add = "";
my @d = split(/ /,$data);
my $uin = $d[0];
my $msg = substr($data,length($uin)+1);
my $nick = $uin;
if ($uin =~ m/[0-9]/) { # podany UIN
if (exists($nicks{$uin})) { $nick = $nicks{$uin} };
} else { # podany NICK
if (scalar( grep(/$nick/,%nicks) ) > 0 ) {
foreach my $n (keys %nicks) { if ($nicks{$n} =~ m/$nick/) { $uin = $n; $add = " ($uin)";last; } }
} else {
print_err("$nick nie jest na liscie znanych mi osob sprawdz plik ~/.gg/userlist");
return;
}
}
Irssi::printformat(MSGLEVEL_MSGS,'ggmsg',"->",$nick.$add,$msg);
# if (!check_session()) { return; }
$gg->send_message_chat($uin,$msg);
}
Irssi::command_bind('away','cmd_ggaway','gg');
sub cmd_ggaway {
my ($data) = @_;
if (!check_session()) { return; }
if (($data eq "")) { $gg->set_available(); }
if (($data ne "")) { $gg->set_busy(); }
}
Irssi::command_bind('help','cmd_help','gg');
sub cmd_help {
my ($data) = @_;
if ($data =~ /gadu\-gadu/i) {
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"Eksperymentalny modul obslugujacy gadu-gadu (www.gadu-gadu.pl) dla irssi (www.irssi.org)");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"Korzysta z modulu Net::Gadu (http://krzak.linux.net.pl/perl/perlgadu.html)");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"Autor : Marcin Krzyzanowski <krzak\@hakore.com>\n");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/connect gadu-gadu - loguje do serwera gadu-gadu, UIN pobiera z HOME/.gg/config");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/away - ustawia stan na dostepny lub zajety");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/finduin UIN - sprawdza czy UIN jest zalogowany do serwera gadu-gadu");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/ggmsg UIN MSG - wysyla MSG do UIN (UIN moze byc liczba lub wpisem z listy w ~/.gg/userlist np. /ggmsg Felek czesc)");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/quit - wylogowuje rowniez z gadu-gadu");
Irssi::printformat(MSGLEVEL_NOTICES,'gghelp',"/help gadu-gadu - pomoc");
Irssi::signal_stop();
}
}
Irssi::command_bind('connect','cmd_connect','gg');
sub cmd_connect {
my ($data,$pass) = @_;
if ($data =~ /gadu\-gadu/i) {
$gg->login($uin,$password);
$eventloop_tag = Irssi::timeout_add(1000,\&eventloop,$gg);
Irssi::signal_stop();
}
}
Irssi::command_bind('quit','cmd_quit','gg');
sub cmd_quit {
if (check_session()) { $gg->logoff(); }
}
Irssi::signal_add('complete word',\&complete_word);
sub complete_word {
my ($complist,$window,$word,$linestart,$want_space) = @_;
if ($linestart =~ /ggmsg/) {
foreach my $n (keys %nicks) {
if ($nicks{$n} =~ m/^$word/i) {
push(@{$complist},$nicks{$n});
}
}
}
if ($linestart =~ /connect/) {
if ($word =~ m/g/) { push(@{$complist},"gadu-gadu"); }
}
if ($linestart =~ /help/) {
if ($word =~ m/g/) { push(@{$complist},"gadu-gadu"); }
}
}
( run in 1.951 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )