当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 0

huangzz / Mojo-Webqq-Scripts
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
login.pl 10.29 KB
一键复制 编辑 原始数据 按行查看 历史
huangzz 提交于 2017-04-23 20:43 . 信息获取错误容错100次。
#!/usr/bin/perl
use Mojo::Webqq;
# 注意:
# 程序内部数据全部使用UTF8编码,因此二次开发源代码也请尽量使用UTF8编码进行编写,否则需要自己做编码处理
# 在终端上执行程序,会自动检查终端的编码进行转换,以防止乱码
# 如果在某些IDE的控制台中查看执行结果,程序无法自动检测输出编码,可能会出现乱码,可以手动设置输出
# 手动设置输出编码参考文档中关于 log_encoding 的说明
# 帐号可能进入保护模式的原因:
# 多次发言中包含网址
# 短时间内多次发言中包含敏感词汇
# 短时间多次发送相同内容
# 频繁异地登陆
# 推荐手机安装[QQ安全中心]APP,方便随时掌握自己帐号的情况
# 初始化一个客户端对象,设置登录的qq号
my $client=Mojo::Webqq->new(
ua_debug => 0, #是否打印详细的debug信息
log_level => "info", #日志打印级别
login_type => "qrlogin", #"qrlogin"表示二维码登录
poll_failure_count_max => 100, # 获取信息失败重试次数
);
# 注意: 腾讯可能已经关闭了帐号密码的登录方式,这种情况下只能使用二维码扫描登录
# 发送二维码到邮箱
# $client->load("PostQRcode",data=>{
# smtp => 'smtp.xxx.com', #邮箱的smtp地址
# port => '25', #smtp服务器端口,默认25
# from => 'xxx@xxx.com', #发件人
# to => 'xxx@xxx.com', #收件人
# user => 'xxxxxxxxx', #smtp登录帐号
# pass => 'xxxxxxxxx', #smtp登录密码
# });
# 发送验证码到邮箱
# $client->load("PostImgVerifycode",data=>{
# smtp => 'smtp.xxx.com', #邮箱的smtp地址
# port => '25', #smtp服务器端口,默认25
# from => 'xxx@xxx.com', #发件人
# to => 'xxx@xxx.com', #收件人
# user => 'xxxxxxxxx', #smtp登录帐号
# pass => 'xxxxxxxxx', #smtp登录密码
# post_host => '127.0.0.1' , #本机公网IP地址,需要远程访问
# post_port => '1987' , #提交验证码的链接地址中使用的端口,默认1987
# });
# 客户端进行登录
$client->login();
# 主要用于主动更新好友、群、讨论组数据库,或者用于测试
$client->on(receive_message=>sub{
my $msg = $_[1];
$client->relogin() if $msg->content eq "relogin";
$client->_relink() if $msg->content eq "_relink";
$client->relink() if $msg->content eq "relink";
$client->update_user() if $msg->content eq "update_user";
$client->update_group() if $msg->content eq "update_group";
$client->update_group_ext() if $msg->content eq "update_group_ext";
$client->update_friend() if $msg->content eq "update_friend";
$client->update_friend_ext() if $msg->content eq "update_friend_ext";
$client->update_discuss() if $msg->content eq "update_discuss";
});
# 客户端加载ShowMsg插件,用于打印发送和接收的消息到终端
$client->load("ShowMsg");
# 股票查询
$client->load("StockInfo");
# 示例:股票 000001
# 开启本地irc server
# 需要先安装Mojo::IRC::Server::Chinese
$client->load("IRCShell",data=>{
host=>"127.0.0.1", #默认0.0.0.0
port=>6667, #默认6667
# master_irc_user # 和qq匹配的irc user帐号,默认按照和qq号相同的user或者客户端ip是本机地址作为识别规则
# load_friend # 0|1 默认是1 是否初始为每个好友生成irc虚拟帐号并加入频道 #我的好友
image_api => "http://paste.perfi.wang/", # 兼容elimage图床api地址,将qq图片转为连接,方便在irc上查看图片,默认没有启用
});
#显示perl文档
#$client->load("Perlcode");
#示例 perldoc -f|-v xxx
#执行perl命令
#$client->load("Perldoc");
#示例 >>> print "hello world";
#代码测试
$client->load("ProgramCode");
#示例:code|c>>>
# #include <stdio.h>
# int main() {
# printf("Hello World!\n");
# return 0;
# }
#手机归属地查询
$client->load("MobileInfo");
#示例:手机 1888888888
#创建知识库
$client->load("KnowledgeBase",data=>{
allow_group => [ "PERL学习交流" ], # 可选,允许插件的群,可以是群名称或群号码
ban_group => [ "私人群", 123456 ], # 可选,禁用该插件的群,可以是群名称或群号码
file => './KnowledgeBase.txt', # 数据库保存路径,纯文本形式,可以编辑
learn_command => 'learn', # 可选,自定义学习指令关键字
delete_command => 'del', # 可选,自定义删除指令关键字
learn_operator => [ 12345, 678910 ], # 允许学习权限的操作人qq号
delete_operator => [ 12345, 678910 ], # 允许删除权限的操作人qq号
mode => 'fuzzy', # fuzzy|regex|exact 分别表示模糊|正则|精确, 默认模糊
check_time => 10, # 默认10秒检查一次文件变更
show_keyword => 1, # 消息是否包含触发关键字信息,默认开启
});
# 示例:learn 今天天气怎么样 天气很好
# 学习 "你吃了吗" 当然吃了
# learn '哈哈 你真笨' "就你聪明"
# del 今天天气怎么样
# 删除 '哈哈 你真笨'
# 对大神进行鄙视
$client->load("FuckDaShen");
# 翻译
$client->load("Translation");
# 示例:翻译 hello
# 猜灯谜
$client->load("Riddle",data=>{
allow_group => [ "PERL学习交流" ], # 可选,允许插件的群,可以是群名称或群号码
ban_group => [ "私人群", 123456 ], # 可选,禁用该插件的群,可以是群名称或群号码
ban_user => [ "坏蛋", 123456 ], # 可选,禁用该插件的用户,可以是用户的显示名称或qq号码
command => "猜谜", # 可选,触发关键字
apikey => "xxxx", # 可选,参见 http://apistore.baidu.com/apiworks/servicedetail/440.html?qq-pf-to=pcqq.c2c
timeout => 30, # 等待答案的超时时间,超时后会自动公布答案
});
# 显示油价
$client->load("GasPrice",data=>{
allow_group => [ "PERL学习交流" ], # 可选,允许插件的群,可以是群名称或群号码
ban_group => [ "私人群", 123456 ], # 可选,禁用该插件的群,可以是群名称或群号码
command => "油价", # 可选,触发关键字
apikey => "xxxx", # 可选,参见 http://apistore.baidu.com/apiworks/servicedetail/710.html
msg_tail => "消息尾巴", # 可选
is_need_at => 0, # 是否需要艾特,默认值为0
});
# 每日签到
$client->load("Qiandao",data=>{
allow_group => [ "PERL学习交流" ], # 可选,允许插件的群,可以是群名称或群号码
ban_group => [ "私人群", 123456 ], # 可选,禁用该插件的群,可以是群名称或群号码
is_qiandao_on_login => 0, # 可选,是否登录时进行签到,默认值为0
qiandao_time => "09:30", # 可选,每日签到的时间,默认是 09:30
});
# 加载群管理
$client->load("GroupManage",data=>{
allow_group => [ "PERL学习交流" ], # 可选,允许插件的群,可以是群名称或群号码
ban_group => [ "私人群", 123456 ], # 可选,禁用该插件的群,可以是群名称或群号码
new_group_member => '欢迎新成员 @%s 入群[鼓掌][鼓掌][鼓掌]', # 新成员入群欢迎语,%s会被替换成群成员名称
lose_group_member => '很遗憾 @%s 离开了本群[流泪][流泪][流泪]', # 成员离群提醒
speak_limit => { # 发送消息频率限制
period => 10, # 统计周期,单位是秒
warn_limit => 8, # 统计周期内达到该次数,发送警告信息
warn_message => '@%s 警告, 您发言过于频繁,可能会被禁言或踢出本群', # 警告内容
shutup_limit => 10, # 统计周期内达到该次数,成员会被禁言
shutup_time => 600, # 禁言时长
# kick_limit => 15, # 统计周期内达到该次数,成员会被踢出本群
},
pic_limit => { # 发图频率限制
period => 600,
warn_limit => 6,
warn_message => '@%s 警告, 您发图过多,可能会被禁言或踢出本群',
shutup_limit => 8,
kick_limit => 10,
},
keyword_limit => {
period=> 600,
keyword=>[qw(fuck 傻逼 你妹 滚)],
warn_limit=>3,
shutup_limit=>5,
# kick_limit=>undef,
},
});
# smartQQ
$client->load("SmartReply", data => {
apikey => 'd288214dcba801d180167635f3a8deb7', # 可选,参考http://www.tuling123.com/html/doc/apikey.html
# allow_group => ["PERL学习交流"], # 可选,允许插件的群,可以是群名称或群号码
# ban_group => ["私人群",123456], # 可选,禁用该插件的群,可以是群名称或群号码
# ban_user => ["坏蛋",123456], # 可选,禁用该插件的用户,可以是用户的显示名称或qq号码
# notice_reply => ["对不起,请不要这么频繁的艾特我","对不起,您的艾特次数太多"], # 可选,提醒时用语
# notice_limit => 8 , # 可选,达到该次数提醒对话次数太多,提醒语来自默认或 notice_reply
# warn_limit => 10, # 可选,达到该次数,会被警告
# ban_limit => 12, # 可选,达到该次数会被列入黑名单不再进行回复
# ban_time => 1200,# 可选,拉入黑名单时间,默认1200秒
# period => 600, # 可选,限制周期,单位 秒
# is_need_at => 1, # 默认是1 是否需要艾特才触发回复
# keyword => [qw(小灰 小红 小猪)], # 触发智能回复的关键字,使用时请设置is_need_at=>0
});
# 需要私聊或@机器人
# 提供HTTP API接口,方便获取客户端帐号、好友、群、讨论组信息,以及通过接口发送和接收好友消息、群消息、群临时消息和讨论组临时消息
$client->load("Openqq",data=>{
listen => [ { host => "0.0.0.0", port => 5011 }, ], # 监听的地址和端口,支持多个
# auth => sub {my($param,$controller) = @_}, # 可选,认证回调函数,用于进行请求鉴权
# post_api => 'http://xxxx', # 可选,设置接收消息的上报接口
});
# 客户端开始运行
$client->run();
Perl
1
https://gitee.com/huangzhongzhang/Mojo-Webqq-Scripts.git
git@gitee.com:huangzhongzhang/Mojo-Webqq-Scripts.git
huangzhongzhang
Mojo-Webqq-Scripts
Mojo-Webqq-Scripts
master

搜索帮助