最近一直在命令行下工作,除了 Google Chrome,几乎很少接触 GUI 相关的软件。前段时间把手机上的 QQ 给卸载了,希望可以把时间凝聚在更加有价值的位置,今天突然又想起了这个软件,突发奇想,在命令行下玩弄 QQ。我要说话

在知乎和 V2ex 上搜了一番,在 github 上找到了一个还比较满意的开源项目,使用 perl 语言编写的,虽然不动 perl ,但是人家提供了丰富的 API 可以调用,于是就深入了解了下。我要说话

我要说话

Mojo-Webqq 的安装和使用

项目名称叫做 Mojo-Webqq,它应该算是 smartQQ 的客户端非 GUI 框架,前几年玩 Linux 的人可能对 smartQQ 比较了解,就是一个网页上跑的 QQ,不过现在已经更名为 WebQQ 了,玩耍地址:http://web2.qq.com/。我要说话

估计作者也是一个 Linux 玩家,所有的安装指南都是 Linux 上的说明,我用的 mac,也尝试按照 ReadMe 文档安装了下。我要说话

1.首先配置 cpan,直接在命令行输入 cpan 按照提示选择默认配置即可。我要说话

$ cpan

2.然后安装 cpanm 工具我要说话

$ can -i App:coanminus

3.使用 cpanm 在线安装 Mojo:Webqq 模块我要说话

$ cpanm -v Mojo::Webqq

不了解 Perl 语言,也不知道 cpanm 是个什么东西,估计跟 Nodejs 的 npm 是一样的,包管理工具。我要说话

如果期间安装失败,很可能是某个依赖包安装不成功,这个时候多留意下错误提示,然后 google 搜索怎样安装才是正确的姿势。我要说话

使用方式就比较简单了,创建一个实例跑起来:我要说话

#!/usr/bin/env perl
use Mojo::Webqq;
my ($qq,$host,$port,$post_api); $qq = 12345678; #修改为你自己的实际QQ号码
$host = "0.0.0.0"; #发送消息接口监听地址,修改为自己希望监听的地址
$port = 5000; #发送消息接口监听端口,修改为自己希望监听的端口
$post_api = 'http://xxxx'; #接收到的消息上报接口,如果不需要接收消息上报,可以删除此行 my $client = Mojo::Webqq->new(qq=>$qq);
$client->login();
$client->load("ShowMsg");
$client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->run();

上述代码保存成 xxxx.pl 文件,然后使用 perl 来运行,就会完成 QQ 登录并在本机产生一个监听指定地址端口的 http server,发送好友消息的接口调用示例:我要说话

curl http://127.0.0.1:5000/openqq/send_message?qq=xxxxx&content=hello

具体可以翻阅 文档说明我要说话

IRC 相关学习

以前玩 Linux 的时候就接触过一些 IRC 的客户端,当时感觉找到了这个世界对程序员开放的窗口,各种技术 Channel,各种交流,很是激动(当然,现在不以为然)。我要说话

Google 找了下网上的推荐,一般都是使用 Weechat 或者 irssi。两个软件的安装都比较麻烦,依赖了很多软件包,不说安装和编译时间,就依赖软件包的下载时间就有半小时。我要说话

先选用的 Weechat ,安装好了之后,死活调不好中文设置,不知道这样是不是正确的:我要说话

/charset decode GB2312

反正我是没搞好,但是学会了 IRC 的基本使用。后面还是改用成 irssi,展示没有 weechat 友好,不过默认支持中文输入。我要说话

IRC 的使用,我觉得也不用太多地去看文档,进入交互命令行之后,键入 /help,系统会把所有的命令都打印出来,然后你感觉应该用哪个就去继续学习就行了,比如连接到一个频道,可以键入我要说话

/help server

或者我要说话

/help connect

这些关键词都是从 /help 中找到的,以 weechat 为例,给出几个设置命令以供入门。我要说话

# 添加一个 server
/server add free node chat.freenode.net
# 自动链接到 freenode
/set irc.server.freenode.autoconnect on
# 设置 nicks,username,realname
/set irc.server.freenode.nicks “nickname”
/set irc.server.freenode.username “username”
/set irc.server.freenode.realname “realname”

输入框中键入 /connect freenode 就可连接到 freenode 的服务器,输入 /join #javascript 就可以加入到 #javascript 群组里了。我要说话

# 自动认证 nickname
/set irc.server.freenode.command "/msg nickserv identify xxxxxx"
# 自动加入群组
/set irc.server.freenode.autojoin "#channel1,#channel2"

对鼠标的支持:我要说话

# 启动鼠标支持
/moune enable
# 打开时就支持
/set weechat.look.mouse on

更多文档,可以在 google 中检索下。我要说话

有好多天没有码字了,今天学习的主题是 Mojo-Webqq 和 IRC,就先说这么多,后续会把每天学习和关注的知识点都记录下,方便自己,也方便他人。我要说话

本文链接:http://www.barretlee.com/blog/2016/02/14/mojo-webqq-and-irc/

转:开启命令行下的社交-webqq脚本的更多相关文章

  1. 命令行下IIS的配置脚本Adsutil.vbs

    命令行下IIS的配置脚本Adsutil.vbs 2009-08-20 12:26:52  www.hackbase.com  来源:Jackal's Blog Jackal's Blog文件存在于:C ...

  2. window下,nodejs 安装 http-server,开启命令行HTTP服务器

    第一步:http://nodejs.cn/  官网下载安装文件,安装nodejs: 第二步:运行中输入cmd进入命令行模式,输入  node -v ,显示版本号,代表安装成功: 第三步:在node命令 ...

  3. 命令行下更好显示 postgresql 的查询结果

    之前在用 mysql 的时候发现,当列数特别多的时候,在 linux 命令行下,显示不太友好, 然后可以通过将 sql 末尾的 “:” 改为 “\G” 来处理,详情看 命令行下更好显示 mysql 查 ...

  4. Linux系统——28个命令行下的工具

    Unix/Linux下的28个命令行下的工具 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不 ...

  5. kvm--virsh命令行下管理虚拟机

    virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式: (1)基础操作 --- 命令行下管理虚拟机 virsh list ...

  6. Eclipse使用github并开启命令行

    1. 安装EGit插件 2. 导入git项目 选择Import: 选择“Clone URI” 输入想要导入的git项目地址和用户名密码: 选择代码分支: 一路点击next完成导入github项目即可. ...

  7. 详解Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  8. MySQL命令行下执行.sql脚本详解

    本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧.现在我们开始介绍这一过程. 1.首先编写sql脚本,保存为的:book.sq ...

  9. 在linux命令行下执行php 程序

    如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...

随机推荐

  1. nginx基于TCP的反向代理

    一.4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能.从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请.也就是说,Nginx除了 ...

  2. springmvc和activemq的整合使用

    1.简介:ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台 ...

  3. MySQL5.7.18,初始化完成登录,提示密码过

    初始化完成登录,提示密码过期 原因: 安装CentOs的时候,默认安装了mysql,并且版本与自己安装的mysql版本不一致,直接使用mysql -uroot -p'password'连接,默认调用的 ...

  4. 【洛谷】P2904 [USACO08MAR]跨河River Crossing(dp)

    题目描述 Farmer John is herding his N cows (1 <= N <= 2,500) across the expanses of his farm when ...

  5. java类继承总结一 父类类型与子类类型之间的转化问题(转)

    java类继承总结一 父类类型与子类类型之间的转化问题 本文将通过一个实例描述父类类型与子类类型之间的转化问题,这个很特殊的问题常常会导致一些潜在的危险,让你整整一个晚上都在调试程序以解决一个让人抓狂 ...

  6. ubuntu安装Percona Server

    Percona Server是mysql数据库的一个衍生版本,在性能,稳定性和可管理性上都有很大的提升,目前淘宝的mysql数据库就是基于Percona Server,请原谅我这么喜欢研究淘宝的技术. ...

  7. Redis实战——redis主从备份和哨兵模式实践

    借鉴:http://redis.majunwei.com/topics/sentinel.html     https://blog.csdn.net/u011784767/article/detai ...

  8. Nginx 安装与使用

    作者:吴秦出处:http://www.cnblogs.com/skynet/ 前言 nginx Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一 ...

  9. Framework​Element.​Find​Name 根据名字查找控件

    WPF Framework​Element.​Find​Name 根据名字查找控件 运行环境:Window7 64bit,NetFramework4.7,C# 7.0, 编者:乌龙哈里 2017-10 ...

  10. 【310】◀▶ Python 日期和时间

    参考: python 时间日期计算 Python 日期和时间(菜鸟教程) 8.1. datetime — Basic date and time types python中datetime模块中dat ...