跳至主要內容

流水线

Mereith大约 3 分钟

流水线功能允许你在特定的事件发生前后,执行基本上任意的 javascript 代码,处理事件发生前后的数据,甚至改写事件发生的结果。例如:

  • 在每次登录时,发送登录信息到微信机器人
  • 在每次保存草稿或文章前,自动给文章增加统一的前置段落描述
  • 在每次修改草稿或文章后,同步此文章到其他平台

结合 API 系统,可以做更多事情:

  • 在每次删除文章前,调用 API,保存一份到草稿。
  • 每次发布文章时,在另一篇文章里的引用链接加入新发布的文章

再结合 手动触发事件手动触发 API,还可以做更多事情:

  • 创建一键整理所有文字格式的流水线,通过 API 手动触发,做一个浏览器插件
  • 做一个一键爬取其他平台文章的流水线,通过 API 手动触发,触发时传入要爬取的 URL

以后会有 定时触发事件 等更多事件类型,敬请期待。

事件类型

目前只有一些内置的系统事件,后续会逐步添加新事件。

名称触发事件输入修改后的影响
登录登录成功后触发登录成功后的用户和 token
登出登出时触发会当前登出的 token
更新文章之前更新文章之前被更新的文章信息修改后会影响更新后保存到数据库的结果
更新文章之后更新文章之后被更新文章的全部信息
删除文章删除文章被删除文章的全部信息
更新草稿之前更新草稿之前被更新的草稿信息修改后会影响更新后保存到数据库的结果
更新草稿之后更新草稿之后被更新草稿的全部信息
删除草稿删除草稿被删除草稿的全部信息
更新站点信息更新站点信息更新的站点信息
手动触发事件手动运行代码或手动通过 API 触发手动触发时可传入

自定义代码

流水线可以执行的自定义代码是 javascript 代码,可以在其中使用 require 引入自定义依赖。编写时有几点注意事项:

  • 脚本从上到下执行走一遍视为结束,异步操作请在顶层使用 await 关键字,不然将被不恰当终止
  • 脚本的输入请直接使用 input 变量,修改里面的值后,将会在脚本结束传递给事件处理器

依赖管理

创建流水线时,可以选择依赖,依赖是一些 nodejs 包,会分别通过 pnpm install <依赖名> 安装。

调试代码

在代码编辑器可以调试代码,调试时,可以指定 JSON 输入给脚本的 input 变量中。

运行日志

流水线的运行日志可以在 站点管理/日志管理 中找到,点击每一条的详情可以看到每一条流水线的输入、输出和脚本的 console.log