sjdy521/Mojo-Webqq
Mojo-Webqq插件使用文档
#!/usr/bin/env perl
#作者:znw
#作用:自动复读机
# 当QQ群冷群了,或者某人发了一条消息,超过一定时间没人回复,复读之。
use Mojo::Webqq;
my ($host,$port,$post_api);
my $group;#指定群
my %group_msgs;#群消息
my %last_msgs;#最新消息
my $suces_nums;#复读成功数量
$host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改
$port = 5000; #发送消息接口监听端口,修改为自己希望监听的端口
#$post_api = 'http://xxxx' #接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行
my $client = Mojo::Webqq->new(
security=>true,
allow_message_sync=>1,
);
$client->on(ready=>sub{
my $client = shift;
#你的代码写在此处
$group = $client->search_group(name=>"Perl学习群");
$suces_nums = 0;
});
$client->load("ShowMsg");
$client->on(receive_message=>sub{
my ($client,$msg)=@_;
if($msg->group == $group){
if(exists($group_msgs{$msg->group->uid})){
$group_msgs{$msg->group->uid} += 1;
#print "$msg->group->uid => $group_msgs{$msg->group->uid}\n";
print $msg->group->name.":".$group_msgs{$msg->group->uid}."\n";
}
else
{
$group_msgs{$msg->group->uid} = 1;
print $msg->group->name.":".$group_msgs{$msg->group->uid}."\n";
}
#$last_msgs{$msg->group->uid} = $msg->text;
#30秒一查
$client->timer(30,sub{
#确实没人回复,且自己没有复读过这句话,进行复读
if($group_msgs{$msg->group->uid} eq 1 && $msg->text ne $last_msgs{$msg->group->uid})
{
$client->reply_message($msg,$msg->text);
$group_msgs{$msg->group->uid} = 0;
$last_msgs{$msg->group->uid} = $msg->text;
$suces_nums += 1;
print "success post : ".$suces_nums."\n";
}
#否则,积压消息-1
else{
$group_msgs{$msg->group->uid} -= 1;
print $msg->group->name.":".$group_msgs{$msg->group->uid}."\n";
}
});
}
#$msg->dump();
});
#$client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->run();