上回用 GCalcli 实现了 给 aMule 增加下载完成短信通知功能,不过由于 GCal 的短信格式问题并不完美,在 Druggo 的提示 下转而使用飞信来实现这个吧。

飞信虽然在 linux 下已经有 libfetion 和 linux-fetion for purple 了,不过都没有直观的纯 CLI 操作方式。找来找去只找到个闭源的 飞信机器人,这软件优点是:纯命令操作,简单快捷。

不爽的地方是:

  1. 闭源,依赖的库文件有版本要求。而且从主页来看,商业味比较浓,怕有猫腻
  2. 初次运行后会生成数个当前用户无访问权限的文件夹,强行删除再运行又会重新生成

唉,我又开始二了,用人家的东西还这么多牢骚。下面是实现方法: 在 此处下载飞信机器人的 linux 版,运行程序依赖的库文件有 4 个:libcrypto.so.0.9.8, libssl.so.0.9.8, libACE.so.5.6.8, libACE_SSL.so.5.6.8。前两个属于 openssh,后两个可以 # emerge dev-libs/ace 得到,鉴于版本问题和 libACE 8MB 的体积问题,还是直接下载它提供的 库文件包 吧。

建议解压后放到自己的 $HOME 目录下,例如我把它解压到 $HOME/fetion-cli 下,把解压的 4 个库文件也放到此目录下。

飞信机器人支持 config 文件读取帐户信息,创建一个 $HOME/.fetion-cli.conf,按以下格式输入你的帐户信息:

# ID    Mobile          Password
1        你的手机号码   你的飞信密码

然后是建立一个 bash 脚本 fetion-sms.sh

#!/bin/bash
#usage: fetion-sms.sh MobileNum. ENTRY

cd /home/punkid/fetion-cli
LD_LIBRARY_PATH=. ./fetion --config=$HOME/.fetion-cli.conf --index=1 --to=$1 --msg-utf8="$2"

这个脚本用法很简单,输入 $ sh fetion-sms.sh 接收方的手机好码 飞信消息内容 就完成了。

所以在 aMule 的 Download completed event 里配置如下就行了:

sh /home/punkid/scripts/fetion-sms.sh 你的手机号码 "%NAME 下载完成"

这回算是比较满意了,飞信接收速度快而且不像 GCal 那样分两条不完整短信发过来。