• 欢迎来到小可 · Wiki,人人可编辑的,多平台聊天机器人“小可”的官方文档资源。
  • 小可很可爱,请给我们打钱
  • 原 MkDocs 已迁入本站。若发现 404 属正常现象,请点击左上角搜索您想要的模块。

WebRender

来自小可 · Wiki,人人可编辑的,QQ机器人“小可”的官方文档资源
Dorowolf讨论 | 贡献2024年9月20日 (五) 00:27的版本 →‎用法

Webrender 为小可的外置服务,主要用于处理 Wiki infobox 图片渲染、 html 渲染以及部分功能的访问代理。

此服务使用 JavaScript 编写,并由 Puppeteer 驱动,因此需要安装 Node.js 环境,以及安装 Chromium 内核浏览器。

搭建

请前往此处下载源文件,并在终端内安装依赖。

npm install

前往此处下载任意版本 Chromium,或前往 Chromium 官方网站下载。

package.json 同级目录中新建 .env 文件,并填写以下字段:

CHROMIUM_PATH = # Chromium 可执行文件位置
FC_SERVER_PORT = 15551 # API 监听端口

使用 node 运行 ./src/index.js 来开启服务。

node ./src/index.js

API 监听端口默认位于 15551,可自行选择自定义端口。

请在配置文件web_render 配置项填写访问地址,如 http://127.0.0.1:15551

API

以下为 Webrender API 的使用方法。

/

  • POST POST

此 API 可以生成网页内容截图。

请求参数

  • 字符串 content:要加载到页面的 HTML 内容。
  • 整数 width(可选):截图的宽度,默认 500px。
  • 整数 height(可选):截图的高度,默认 1000px。
  • 布尔值 mw(可选):是否仅截取主要内容。
  • 布尔值 tracing(可选):是否启用页面追踪,默认 False。

响应

  • 成功:返回生成的 JPEG 格式页面截图。
  • 失败:返回 500 错误。

/element_screenshot

  • POST POST

此 API 可以生成指定元素的网页内容截图。

请求参数

  • element:指定要截图的元素的 CSS 选择器,可以是单个字符串或字符串数组。
  • 字符串 content(可选):要加载到页面的 HTML 内容。
  • 字符串 url(可选):要加载的页面的 URL。
  • 字符串 css(可选):要应用于页面的自定义 CSS 样式。
  • 整数 width(可选):截图的宽度,默认 720px。
  • 整数 height(可选):截图的高度,默认 1280px。
  • 布尔值 counttime(可选):是否在截图中添加计时框,默认 True。
  • 布尔值 tracing(可选):是否启用页面追踪,默认 False。

响应

  • 成功:返回生成的 JPEG 格式页面截图。
  • 失败:返回 500 错误。

/section_screenshot

  • POST POST

此 API 可以生成网页中特定区域的内容截图。

请求参数

  • 字符串 section:要截取的区域的 HTML 元素的 ID。
  • 字符串 content(可选):要加载到页面的 HTML 内容。
  • 字符串 url(可选):要加载的页面的 URL。
  • 字符串 css(可选):要应用于页面的自定义 CSS 样式。
  • 整数 width(可选):截图的宽度,默认 720px。
  • 整数 height(可选):截图的高度,默认 1280px。
  • 布尔值 counttime(可选):是否在截图中添加计时框,默认 True。
  • 布尔值 tracing(可选):是否启用页面追踪,默认 False。

响应

  • 成功:返回生成的 JPEG 格式页面截图。
  • 失败:返回 500 错误。

/page

  • POST POST

此 API 可以生成指定 URL 页面的截图。

请求参数

  • 字符串 url:要加载的页面的 URL。
  • 字符串 css(可选):要应用于页面的自定义 CSS 样式。

响应

  • 成功:返回生成的 JPEG 格式页面截图。
  • 失败:返回 500 错误。

/source

  • GET GET

此 API 可以获取网页源代码。

请求参数

  • 字符串 url:要加载的页面的 URL。

响应

  • 成功:返回请求的网页内容。
  • 失败:返回 500 错误。
Cookie帮助我们提供我们的服务。通过使用我们的服务,您同意我们使用cookie。