linux中用IRC聊QQ

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
回复
头像
momova
帖子: 3381
注册时间: 2007-07-11 21:43
系统: archlinux
来自: 东江边

linux中用IRC聊QQ

#1

帖子 momova » 2016-11-19 16:42

原帖在:https://www.douban.com/note/592778849/
先看图两张:图在原帖子里,不搬运了。

想在linux里使用QQ,目前只有两个方法,一是wineqq,缺点是少量的功能不可用,并且占用资源比较多。还有一种就是用webqq。
现在这里说的是第三种方法--mojo-webqq。

mojo-webqq项目主页在: https://github.com/sjdy521/Mojo-Webqq
详细文档在: https://metacpan.org/release/Mojo-Webqq

这是一个用perl语言基于smartqq协议写出的QQ框架。比windows下以及webqq的好处是:
它能保存所有聊天到本地(原版是要值钱的,webqq没有的)。
它可以进行群管理(欢迎进群,提示退群,如果有管理权限可以设置条件禁言踢人等等)。
可以挂机器人(机器人可以聊天,可以查天气,可以查机票股票快递绕口令……)。
可以自定义知识库(微商推广用处多,你懂的)。
群签到,查手机归属……等等)
有开放的API,你可以用API开发出你想要的东西。有着无限的可能。(目前已经有用户在mojo-webqq项目基础上,应用到服务器状态监控,抢红包,多群互联,群发推广,快递查询,股票查询等方面。)
其它插件请看网址: https://metacpan.org/pod/distribution/M ... ebqq.pod#6


缺点:smartqq协议天生不支持图片、语音和视频,所以mojo-webqq也没办法支持。

适用人群:
使用linux等系统,不想wine,对图片表情的需求不大的用户。
想让自己的QQ或者QQ群功能多一点的用户 (陪聊,群管理,查天气快递……)。
做微商、推广的用户。
学习perl的用户。
学习webqq协议的用户。
监控系统运行的用户。
有想法的windows用户。

如果你有种种原因需要安装并使用mojo-webqq,请跟我一起安装配置,本文有详细的安装和启动脚本。
一、安装方法
方法a: 通过cpan安装cpanm (如果没有cpan,请安装。)
$ cpan -i App::cpanminus

方法b: 直接在线安装cpanm
$ curl -kL https://cpanmin.us | perl - App::cpanminus

官方服务器在国外,如果无法访问,可以选择下面的命令:

$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus

使用cpanm在线安装 Mojo::Webqq 模块(如果系统已经安装了该模块,执行此步骤会对模块进行升级)
$ cpanm Mojo::Webqq


二、如何使用
1、写启动脚本

写一个perl脚本,内容如下:

代码: 全选

use Mojo::Webqq;
my $client = Mojo::Webqq->new(qq=>QQ,ua_debug=>0,state=>"hidden"); ##设置登录状态,默认是online,支持online|away|busy|silent|hidden|offline

$client->load("ShowMsg");

#$client->load("Weather");

##定时检查知识库变动,自动实时加载,插件中的check_time参数可以设置定时检测间隔
$client->load("KnowledgeBase2",data=>{
# allow_group => ["498880156"], #可选,允许插件的群,可以是群名称或群号码
    ban_group => [2222222,"交流群"], #可选,禁用该插件的群,可以是群名称或群号码
    file => '~/KnowledgeBase2.txt', #数据库保存路径,纯文本形式,可以编辑
    learn_command => 'learn', #可选,自定义学习指令关键字
    delete_command =>'del', #可选,自定义删除指令关键字
    learn_operator => [18888], # 允许学习权限的操作人qq号
    delete_operator => [18888], #允许删除权限的操作人qq号
    mode => 'fuzzy', # fuzzy|regex|exact 分别表示模糊|正则|精确, 默认模糊
    check_time => 10, #默认10秒检查一次文件变更
    show_keyword => 0, #消息是否包含触发关键字信息,默认开启
});


##对qq消息中出现的"大神"关键词进行鄙视
#$client->load("FuckDaShen");


##手机号码查询,手机 68998765556789
$client->load("MobileInfo");

$client->load("Pu"); #占卜
$client->load("ZiYue"); #论语,子曰……

#群管理
$client->load("GroupManage",data=>{
    allow_group => [1234], #可选,允许插件的群,可以是群名称或群号码
     ban_group => ["498880156"], #可选,禁用该插件的群,可以是群名称或群号码
     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 => 4,
        warn_message => '@%s 警告, 您发图过多,可能会被禁言或踢出本群,这不是演习',
        shutup_limit => 6,
        kick_limit => 8,
    },
    keyword_limit => {
        period=> 600,
        keyword=>[qw(骂人,需要过滤的写这)],
        warn_limit=>3,
        shutup_limit=>5,
        #kick_limit=>undef,
    },
});


#QQ群每日签到插件
#$client->load("Qiandao");
$client->load("Qiandao",data=>{
# allow_group => ["PERL学习交流"], #可选,允许插件的群,可以是群名称或群号码
    ban_group => ["Linux交流"], #可选,禁用该插件的群,可以是群名称或群号码
    is_qiandao_on_login => 0 , #可选,是否登录时进行签到,默认值为0
    qiandao_time => "09:10" , #可选,每日签到的时间,默认是 09:30
});

#$client->load("Translation");

#智能回复
$client->load("SmartReply",data=>{
    apikey => '5f9b4fb331f247d2a03bf1bd8d6bbf6f', ##果果,新注册图灵
    allow_group => ["PERL学习交流"], #可选,允许插件的群,可以是群名称或群号码
    ban_group => ["私人群",123456], #可选,禁用该插件的群,可以是群名称或群号码
    ban_user => ["坏蛋",123456], #可选,禁用该插件的用户,可以是用户的显示名称或qq号码
    notice_reply => ["不要这样一直@人家,人家很忙的","住手,你艾特次数太多,等下把你家电全关了"], #可选,提醒时用语
    notice_limit => 8 , #可选,达到该次数提醒对话次数太多,提醒语来自默认或 notice_reply
    warn_limit => 10, #可选,达到该次数,会被警告
    ban_limit => 12, #可选,达到该次数会被列入黑名单不再进行回复
    period => 600, #可选,限制周期,单位 秒
    is_need_at => 1, #默认是1 是否需要艾特才触发回复
    keyword => [qw(果果,鸽舍)], #触发智能回复的关键字,使用时请设置is_need_at=>0
});


$client->load("IRCShell",data=>{
    listen=>[ {host=>"127.0.0.1",port=>6667},], #可选,IRC服务器监听的地址+端口,默认0.0.0.0:6667
    load_friend => 0, #默认是0 是否初始为每个好友生成irc虚拟帐号并加入频道 #我的好友
    master_irc_user => "me", #用于识别哪个irc用户是你自己
});

$client->load("Openqq",data=>{
    listen => [ {host=>"127.0.0.1",port=>5000}, ] , #监听的地址和端口,支持多个
# auth => sub {my($param,$controller) = @_}, #可选,认证回调函数,用于进行请求鉴权
# post_api => 'http://127.0.0.1', #可选,自定义的接收消息上报接口,并可以根据接口返回内容回复消息
});

$client->run();
保存上面的文本为qq.pl。

2、启动mojo-webqq
在终端执行perl qq.pl,然后用手机QQ扫描二维码就可以登陆QQ,打开IRC,连接服务器127.0.0.1/6667,/list 列出所有QQ群,/join #群名 进入到群,如果是xchat用鼠标右键也可以加入相应的群组。

当然你可以把它放在容器里,在远程运行,二十四小时不断电……
在使用的过程中有任何问题,可以加QQ群讨论:498880156
qq.jpg
PS:后面会写一写怎么用这个项目监控服务器状态。
关键词: mojo-webqq mojo-weixin linuxqq linux-weinxin mojo:weinxin mojo:webqq linuxQQ linux微信 机器人 微信机器人 QQ机器人 多群直播 抢红包机器人 群发 nagios监控 多群直播
我来了,我看见了,我征服了!
求勾搭,不管饭。
头像
djyou
帖子: 32
注册时间: 2008-09-29 2:29

Re: linux中用IRC聊QQ

#2

帖子 djyou » 2016-11-20 13:08

:em11 :em11 :em11 支持,非常不错,等有时间装装
头像
momova
帖子: 3381
注册时间: 2007-07-11 21:43
系统: archlinux
来自: 东江边

Re: linux中用IRC聊QQ

#3

帖子 momova » 2016-11-22 19:47

djyou 写了::em11 :em11 :em11 支持,非常不错,等有时间装装
这几天webqq的协议变化非常大,普遍反应webqq登录不上,好友信息获取不到,群列表、用户也获取不到。
不过我这勉强还能用,信微就特别好用。可以先试试微信。
我来了,我看见了,我征服了!
求勾搭,不管饭。
henshan2002
帖子: 24
注册时间: 2006-11-24 11:27

Re: linux中用IRC聊QQ

#4

帖子 henshan2002 » 2016-12-17 15:20

扯蛋吧你 :em05
回复