前端之家收集整理的这篇文章主要介绍了
perl qq 机器人,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
t a1.pl
use Mojo::Webqq;
use Mojo::Webqq::Friend;
use Mojo::Util qw(md5_sum);
use Encode;
use Mojo::Webqq::Message::Recv::Message;
#初始化一个客户端对象
my $client=Mojo::Webqq->new(ua_debug=>0);
my $qq = 267020090;
my $pwd = "xxxxxxxxxxxx";
my $pwd_md5 = md5_sum($pwd);#得到原始密码的32位长度md5
#客户端进行登录
$client->login(qq=>$qq,pwd=>$pwd_md5);
#客户端加载ShowMsg插件,用于打印发送和接收的消息到终端
$client->load("ShowMsg");
#设置接收消息事件的回调函数,在回调函数中对消息以相同内容进行回复
$client->on(receive_message=>sub{
my ($client,$msg)=@_;
#已以相同内容回复接收到的消息
#$var group name
print "-----------------\n";
eval{$friend=$msg->sender->nick;};
eval{$var=$msg->group->gname};
$var = encode("gbk",decode("utf8","$var"));
$frined=$msg->sender->nick;
$friend=encode("gbk","$friend"));
$content=$msg->content;
#$content 消息内容
$content=encode("gbk","$content"));
print $content ;
print $friend;
print "#################\n";
if ( ($friend =~/悠悠球/i) or ($var =~/道森/i) or ($friend =~/zjcap/i) or ($var =~/oracle/i) ) {
print "come in\n";
chomp($content);
print "\$content is $content\n";
if (($content =~/sb/i) or ($content =~/2b/i) or ($content =~/大/i) or ($content =~/scan/i) or ($content =~/赵/i) or ($friend =~/落/i) or ($content =~/1/i)) {
if ($content =~/sb/){eval{$client->reply_message($msg,"you are really sb")}}
elsif ($content =~/2b/){eval{$client->reply_message($msg,"you are really 2b")}}
elsif ($content =~/赵/){eval{$client->reply_message($msg,"xiao li ya")}}
else{
eval{$client->reply_message($msg,$msg->content)}};
#你也可以使用$msg->dump() 来打印消息结构
}
}
}
);
#客户端开始运行
$client-> run();