电影里的黑客们聊天不想我们生活中的一样,用QQ、微信的客户端,都是通过命令行来进行聊天交流的,大概是为了提升逼格吧。
今天发现一个有趣的项目:使用mojoqq来实现命令行QQ
目标版本是:Mojo-Webqq v2.1.4
项目地址:https://github.com/sjdy521/Mojo-Webqq
安装方法
推荐使用cpanm在线安装或升级Mojo::Webqq模块, 如果使用docker方式请参见Docker镜像安装及使用方法
安装perl
安装之前请先确认下你的系统是否已经安装了Perl,因为除了windows,其他大部分的平台默认都可能已经预装过
并且你的Perl版本至少5.10.1 ,推荐5.14
Perl官网下载页面 有包含Unix/Linux、Mac OS X、Windows多平台比较全面详细的安装说明
建议大家尽量选择Binaries(二进制预编译)的版本,安装即可使用,比较方便
平台 | 推荐选择 | 下载地址 |
---|---|---|
Windows | 1. StrawberryPerl2. ActivePerl3. Mojo-StrawberryPerl | StrawberryPerl下载地址Mojo-StrawberryPerl下载地址ActivePerl下载地址 |
Linux | 1. 系统自带2. yum/apt等包管理器3. 官方源码编译4. Mojo-CentosPerl5. ActivePerl6. Mojo-ActivePerl7. DWIM-Perl | Mojo-CentosPerl下载地址ActivePerl下载地址Mojo-ActivePerl下载地址DWIM-Perl下载地址 |
Mac | 1. 系统自带2. ActivePerl | ActivePerl下载地址 |
注意:
Mojo-CentosPerl是基于Centos系统编译打包而成,适合Centos6.5以上的x86_64系统
Mojo-ActivePerl是基于ActivePerl打包的而成,适用于linux x86_64系统,并且系统glibc 2.15
Mojo-StrawberryPerl是基于StrawberryPerl精简打包而成,适用于windows 32位/64位系统
安装cpanm包管理工具(如果系统已经安装了cpanm可以忽略此步骤)
方法a: 通过cpan安装cpanm
代码语言:javascript复制$ cpan -i App::cpanminus
方法b: 直接在线安装cpanm
代码语言:javascript复制 $ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
代码语言:javascript复制$ curl http://share-10066126.cos.myzijiebao.com/cpanm.pl|perl - App::cpanminus
使用cpanm在线安装 Mojo::Webqq 模块(如果系统已经安装了该模块,执行此步骤会对模块进行升级)
代码语言:javascript复制$ cpanm Mojo::Webqq
如果安装过程中一直提示下载失败,很可能是因为访问到国外服务器网络比较差
这种情况下可以尝试按如下方式手动指定国内的镜像站点
代码语言:javascript复制$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
安装失败可能有帮助的解决方法如果你运气不佳,通过cpanm没有一次性安装成功,这里提供了一些可能有用的信息在安装 Mojo::Webqq 的过程中,cpan或者cpanm会帮助我们自动安装很多其他的依赖模块
在众多的依赖模块中,安装经常容易出现问题的主要是 IO::Socket::SSL
IO::Socket::SSL 主要提供了 https 支持,在安装过程中可能会涉及到SSL相关库的编译
对于 Linux 用户,通常采用的是编译安装的方式,系统缺少编译安装必要的环境,则会导致编译失败
对于 Windows 用户,由于不具备良好的编译安装环境,推荐采用一些已经打包比较全面的Perl运行环境
例如比较流行的 strawberryperl 或者 activeperl 的最新版本都默认包含 Mojo::Webqq 的核心依赖模块
RedHat/Centos:
代码语言:javascript复制$ yum install -y openssl-devel
Ubuntu:
代码语言:javascript复制$ sudo apt-get install libssl-dev
搞定了编译和运行环境之后,再重新回到 步骤2 安装Mojo::Webqq即可
使用Perl语言编写的Smartqq客户端框架,基于Mojolicious,要求Perl版本5.10 ,可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
郑重声明
本项目完全遵循QQ官方提供的原始功能,不包含任何破坏、盗号等行为,本项目完全开源,目的是为了促进技术交流学习,禁止任何对国家、企业、个人等构成危害的非法用途,否则后果自负
特色功能
- 支持 群组踢人、禁言、设置/取消管理员、修改群成员名片、邀请好友入群、群签到
- 支持 获取好友、群组、群成员的真实QQ号码
- 支持 新增/失去好友、新增/退出群组、新增/失去群成员 等事件提醒(非实时)
- 支持 Windows/Linux/Mac 多平台,支持docker镜像,易安装部署,不懂Perl也能用
- 提供 基于HTTP协议的API接口 ,简洁丰富,方便和其他编程语言集成
- 一个产品狗的倾情之作,代码由内而外都更加注重“用户体验”,外加主人人品极好,你懂的
插件列表
名称 | 优先级 | 当前状态 | github作者 | 功能说明 |
---|---|---|---|---|
ShowMsg | 100 | 已发布 | sjdy521 | 打印客户端接收和发送的消息 |
GroupManage | 100 | 已发布 | sjdy521 | 群管理,入群欢迎、限制发图频率等 |
IRCShell | 99 | 已发布 | sjdy521 | Linux环境下通过irc客户端使用qq |
Openqq | 98 | 已发布 | sjdy521 | 提供qq发送消息api接口 |
Perlcode | 97 | 已发布 | sjdy521 | 通过qq消息执行perl代码 |
Perldoc | 96 | 已发布 | sjdy521 | 通过qq消息查询perl文档 |
Translation | 93 | 已发布 | sjdy521 | 多国语言翻译功能 |
KnowledgeBase | 3 | 已发布 | sjdy521 | 自定义可编辑问答知识库 |
Qiandao | 1 | 已发布 | sjdy521 | QQ群每日签到 |
PostQRcode | 0 | 已发布 | sjdy521 | 登录二维码发送到邮箱实现远程扫码 |
UploadQRcode | 0 | 已发布 | sjdy521 | 二维码上传图床获得公网访问url |
ShowQRcode | 0 | 已发布 | autodataming | 调用系统图片查看程序来示二维码(目前仅支持win) |
SmartReply | 0 | 已发布 | sjdy521 | 智能聊天回复 |
插件下载请参考:完整插件列表
效果展示
敲一行命令就能启动一个智能聊天机器人,Perl 和你都如此优雅. Enjoy!
- cpanm Mojo::Webqq && perl -MMojo::Webqq -e "Mojo::Webqq->new->load('ShowMsg')->load('SmartReply')->run()"
- [15/09/30 15:11:59] [info] 初始化 smartqq 客户端参数...
- [15/09/30 15:11:59] [info] 检查验证码...
- [15/09/30 15:11:59] [info] 检查结果: 很幸运,本次登录不需要验证码
- [15/09/30 15:11:59] [info] 正在获取登录二维码...
- [15/09/30 15:11:59] [info] 二维码已下载到本地[ /tmp/mojo_webqq_qrcode_xxx.png ]
- [15/09/30 15:12:00] [info] 登录二维码已经发送到邮箱: ******
- [15/09/30 15:12:00] [info] 等待手机QQ扫描二维码...
- [15/09/30 15:12:43] [info] 手机QQ扫码成功,请在手机上点击[允许登录smartQQ]按钮...
- [15/09/30 15:12:46] [info] 检查安全代码...
- [15/09/30 15:12:47] [info] 设置登录验证参数...
- [15/09/30 15:12:47] [info] 尝试进行登录(2)...
- [15/09/30 15:12:47] [info] 登录成功
- [15/09/30 15:12:47] [info] 更新个人信息...
- [15/09/30 15:12:47] [info] 更新好友信息...
- [15/09/30 15:12:47] [info] 更新[ PERL学习交流 ]信息
- [15/09/30 15:12:52] [info] 更新[ Mojolicious ]信息
- [15/09/30 15:12:55] [info] 开始接收消息...
- [15/09/30 14:09:20] [群消息] 小灰|PERL学习交流 : Mojo::Webqq不错哦
- [15/09/30 14:10:20] [群消息] 我->PERL学习交流 : 多谢多谢