最近一直在命令行下工作,除了 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. java多线程(1) 线程的基本概念

    一.线程的基本概念: 线程是一个程序里面不同的执行路径. 程序里面不同的执行路径,每一个分支都是一个线程.   进程:静态的概念.机器上的一个class文件,机器上的一个exe文件,这叫一个进程. 机 ...

  2. CocoStudio资源区导入Plist/PSD文件

    这两种文件在使用中和普通文件稍有不同,下作简单介绍.如有不适的地方欢迎批评指正. 首先简单说一下Plist文件,Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的Mac OS ...

  3. 【转】浅析VO、DTO、DO、PO的概念、区别和用处

    原文地址:http://blog.csdn.net/zjrbiancheng/article/details/6253232 概念: VO(View Object):视图对象,用于展示层,它的作用是把 ...

  4. FastDFS:搭建文件管理系统

    文章转自:https://www.cnblogs.com/chiangchou/p/fastdfs.html#_label1 一.FastDFS介绍 FastDFS开源地址:https://githu ...

  5. 证件照制作:使用PS打印一寸照片

    1. 打开文件,文件-打开-选择要操作的图片: 2. 修改图片尺寸,图像-图像大小,弹出对话框后,设置 宽度:2.5cm,高度:3.5cm,分辨率:300 像素/英寸: 3. 为要打印的照片设置白边, ...

  6. 22_java之File对象

    01IO技术概述 * A:IO技术概述 * a: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 * b: Input * 把持久设备上的数据读取到内存中的这 ...

  7. c++builder 读写文件类

    c++builder 读写文件类 TStreamReader.TStreamWriter读取一行 http://docwiki.embarcadero.com/CodeExamples/XE8/en/ ...

  8. 设置Eclipse中的tab键为4个空格

    在工具栏上找到window,点击 window->preference 然后在打开的界面中选择 General->Editors->Text Editors, 再选中右侧的 inse ...

  9. android学习-Eclipse中修改Android项目图标

    参考原文:http://blog.csdn.net/wpwbb510582246/article/details/52556753 方法一:替换res文件夹下的ic_launcher-web.png图 ...

  10. 最近学习的sql查询语句连接查询,标记一下

    select wordbase.name,wb.name,wordconnection.wordid,wordconnection.aid,wordbase.goodsid,goods.hscode, ...