ImagifyV2: 图形化你的 Bot 输出

npm Rating

将你的 Bot 输出转换为图片!

安装

插件市场搜索 imagify 安装

使用

在 V2 版本中 imagify 兼容了旧版本配置项:

并且推出了全新的规则模式:

利用规则模式,可以让图形化以十分灵活的方式来渲染!

规则模式

规则模式是以一套 AND ( OR ) 方式执行的图形化输出判断模式,相比旧版本的字数判断,支持了更多场景下的细粒度需求。

  • AND 规则:AND 规则下需要满足所有的 rules[*] 才会进行渲染
  • OR 规则:只需满足表格内任意规则即视为成功

规则类型

目前规则支持如下类型:

  • 平台名称
  • 用户 ID
  • 群组 ID
  • 群聊 ID
  • 机器人 ID
  • 指令名称
  • 内容文本
  • 内容文本字数

规则计算方式

目前规则支持如下计算方式:

  • 正则:正则匹配
  • 等于:左侧类型内容完全等于右侧匹配内容
  • 不等于
  • 包含:左侧类型内容中包含有右侧匹配内容
  • 不包含
  • 数学(高级):数学计算,在右侧匹配内容中格式为:GT:114514。目前支持以下函数
    • GT:大于
    • GE:大于等于
    • LT:小于
    • LE:小于等于

自定义样式

在 V2 版本中,加入了对自定义 css 样式的支持,可以在 style 配置项中自定义图片样式。

所有特有的 消息元素 都会以原名称前加一个 “_” 在 class 中。例如:

<text> 元素会被转换为 <span class="_text"></span>

元素转换

Koishi 消息元素 HTML 标签
<text> <span class="_text"></span>
<image url="https://koishi.chat/logo.png"> <img class="_image" src="https://koishi.chat/logo.png">
<template> <span class="_template"></span>
<random> <span class="_random"></span> (该元素会进行随机选取后渲染)

其他与 HTML 元素同名的消息元素则会原样保留。

图片 HTML 结构

为方便理解 css 在何处有用,下面是一个插件的原始模板 HTML:

...
<div class="text-card" style="backdrop-filter: blur({blur}px)">
  <!-- 所有的消息元素都会按顺序排列 -->
</div>
<footer>Generated by Koishi {kVersion} / koishi-plugin-imagify v{pVersion}</footer>
...
10 个赞

\Lipraty/ \Lipraty/ \Lipraty/

4 个赞

2.0.2 更新日志

2.0.1 因为忘记加配置项而被顶掉了

  • 添加命令名规则
  • 增加部分规则类型检查
  • 增加空值检查

不兼容的类型与计算方式

  • 内容字数:仅支持 数学(高级)
  • 命令名:不支持 数学(高级)
5 个赞

薄纱过滤器 UI(

5 个赞

Lipraty est si fort. Je t’aimerai toujours !

利普拉蒂太强了。我将永远爱你 !

4 个赞

Lipraty est si fort. Je t’aimerai toujours !

利普拉蒂太强了。我将永远爱你 !

3 个赞

什么时候过滤器也整这样(

5 个赞

你 PR 就有了

3 个赞

有道理)

4 个赞

2.1.1 更新日志

  • 开放 fastify 配置项

    Fastify 模式相较于旧的渲染方式将有较大渲染速度提升,相应的,内存占用将显著提升。

  • 修复 OR 模式逻辑错误

2.2.0 规划

  • 加入自定义模板
5 个赞


调用指令出图正常,但是kbot和blive自动推送直接不发送信息这是预期的吗?小火箭全是最新

4 个赞

2.1.2…2.1.3 更新日志

  • 修复因非指令推送缺失 Argv 对象导致的错误
5 个赞

Lipraty est si fort. Je t’aimerai toujours !

利普拉蒂太强了。我将永远爱你 !

4 个赞

tips

  • 如果输出图片时发现底部错位或没有完全渲染,可以尝试在配置项 → style 项中找到 footer {... 并将第一行的 position: absolute; 删除。

由于该问题并不致命,会合并修改至 2.2.0 版本一同发出。

5 个赞

awsl

4 个赞

啊我没死,但我恐慌了(bushi

4 个赞

2.2.0 更新日志

自定义模板功能咕咕咕

  • 添加图片质量选项,可以自由调整生成的图片质量了
  • 添加 cache 功能,开放选项
  • 重构图片生成流程
  • 修复默认样式导致的 footer 错位
  • 更新对新版本 <img> 元素的支持(兼容 <image>

缓存性能

第一次未缓存生成与第二次缓存读取速度对比,对例如 help 这类高频且不变更的类型有奇效。

image

缓存功能

  • cache.enable: 是否开启缓存
  • cache.driver: 缓存管理方式
    • native: 由 imagify 自行管理缓存(只是一个粗浅的实现)
    • cache: 使用 cache 服务管理缓存
  • cache.threshold: 缓存阈值,当缓存命中次数超过该值时,缓存将被提升为高频缓存(仅在 NATIVE 模式下有效)
  • [WIP] cache.timeout: 缓存过期时间
  • [WIP] cache.rule: 缓存命中规则

二编:忘记做缓存超时了,下个版本做

5 个赞

image
我鸽了恁久?

5 个赞

image image

→ shigma 倒下了

5 个赞

从2.1.3更新到2.2.0后无法正常出图


回退版本后正常。

5 个赞