Huginn

应用

Huginn 是我常用的一个 IFTTT 工具,不同于 IFTTT App,Huginn 是一个需要部署在服务器端的 IFTTT 工具,所以它实际上更像是 Zaper。Huginn 实际上上手难度很高,而且网络上的教程也并不多见,我自己在完了一段时间之后也才慢慢熟悉起来。有机会再慢慢补充细节吧。

Telegram 中我有提到我常用的几个 Bot,实际上这些 Bot 都是通过 Huginn 在处理的。

Telegram bot

Telegram bot 需要一下几个 Agent:

  1. Webhook agent:用于接收 Telegram 中的消息;
  2. Formatter agent:用于格式化 Webhook agent 中接收到的消息;
  3. POST agent:用于将信息 POST 到对应的 API;

RSS 和网页抓取

我是 RSS 重度用户,目前来说 RSSHUB 虽然已经可以满足大部分的需求,但是有时候也会碰到一些完整没有被收录,那这个时候就需要使用 Huginn 来讲网站的信息流转化为 RSS 服务了。具体来说需要一下几个 Agents:

  1. Websites agent:监控网页上的数据;
  2. PhantomJS agent:这个是可选的,少部分的网站依赖于前端执行 JS 来加载内容,这就需要在抓去信息的时候模拟浏览器来执行 JS 脚步,PhantomJS 是这样一个平台,可以在 JS 执行之后再渲染出完整的 HTML 文件返回;
  3. Outpost agent:将数据转换成 RSS 进行输出;

Twitter Bot

这个还是一个计划中的项目,我目前使用 Zapier 当 Blog 中有新的文章发布时,将文章转发到 Twitter 上,但是 Zapier 目前只能处理新文章发布,而 Ghost 后台实际上可以设定一系列的 Webhook 事件,包括文章更新、草稿更新、新的 Member 等,所以我打算通过 Huginn 以及 Twitter API 来自己做一个转发的机器人。目前还在等 Twitter 的 API 申请。

缺点

原本以为 Huginn 的缺点主要是难于上手,最近发现在功耗上也是非常厉害,最近经常收到 CPU 负载的邮件警告,一查才发现 Huginn 消耗了绝大多数的资源,在关闭 Huginn 之后整个 CPU 负载降低了 50% 左右。


huginn/huginn
Create agents that monitor and act on your behalf. Your agents are standing by! - huginn/huginn