Skip to content

About

Yunzai 艾特记录与提醒插件 —— 手机聊天风出图,数据存本机 SQLite

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation

Atme-Plugin —— 群聊艾特记录、查询与提醒插件

记录群内谁艾特了谁,支持上下文(艾特消息前后的群聊),以 QQ 聊天风格长图展示查询结果; 内置默认开启的被动提醒。数据存本机 SQLite,配置修改实时生效,无需重启机器人。


📖 功能特性

  • 记录艾特消息:自动存储群内艾特消息(被艾特者、发送者、内容、图片、引用消息、时间等),图片转码 webp 本地缓存。
  • 查询出图:谁艾特我 / 谁艾特他 @某人 生成 QQ 风格聊天长图;超过 15 张自动拆成多条合并转发。
  • 艾特提醒(默认开启):被艾特的群友下次在群里发言时会收到提醒截图,不需要任何设置。不想接收就发 #关闭我的艾特提醒。
  • 全体艾特(轻量记录):开启 enableAtAll 后,@全体成员 按时间混入「谁艾特我」结果并带独立标签;每群只保留最近 atAll.maxCount 条,不产生未读提醒、不占个人配额。
  • 上下文:记录层(是否把艾特前后的聊天存库)与提醒层(提醒图是否显示上下文)是两个独立开关。
  • 自动清理:过期记录、单人超量记录、孤儿图片自动回收;每天凌晨 4 点 + 启动 1 分钟后执行。
  • 锅巴配置面板:基础设置 / 提醒配置 / 其他配置 三分区,支持按群覆盖开关(三态:跟随默认/开/关)。

📦 安装

在 Yunzai 插件目录执行(三个平台的仓库同步更新,选你能访问的那个):

# GitHub
git clone --depth=1 https://github.com/cchanlan/atme-plugin.git ./plugins/atme-plugin

# Gitee
git clone --depth=1 https://gitee.com/longhengmu/atme-plugin.git ./plugins/atme-plugin

# GitCode
git clone --depth=1 https://gitcode.com/ccxhan/atme-plugin.git ./plugins/atme-plugin

依赖要求:Node 22.13+(用内置 node:sqlite,无需编译)。 低于这个版本时请自行安装 better-sqlite3:

cd plugins/atme-plugin && pnpm add better-sqlite3

(旧的 Redis 版本已移除,现在不依赖 Redis。)


⚙️ 配置说明

配置文件:atme-plugin/config/config/atme.yaml(首次启动自动从 config/default_config/atme.yaml 拷贝),修改后立即生效。常用项:

配置项 默认值 说明
expireDays 1 记录保留天数,到期后记录与图片一起清理
maxRecordsPerUser 30 每人每群最多保留条数,超出删最旧
defaultContext true 新群默认是否开启记录层上下文
context.enabled / beforeCount / afterCount true / 1 / 1 查询截图是否显示上下文及条数(0–5)
enableAtAll false 是否记录 @全体成员(轻量存储,建议按需开启)
atAll.maxCount 10 全体艾特每群最多保留条数(1–50)
reminder.* — 提醒参数:静默期、冷却期、自动撤回等
reminderContext.* true / 1 / 1 提醒截图上下文的新群默认模板(群内设置过即以群内为准)
autoMergeCfg true 插件更新时自动把新增配置项合并进用户配置
imgType png 出图格式:png(最清晰)/ jpeg(体积小)/ webp(最小但微信会变文件)
background.image 空 聊天区背景图(锅巴面板上传,自动存进插件 resources/bg/),留空 = 纯色
background.imageUrl 空 或直接填图片链接/本机路径,填了就优先用它
background.veil 72 背景遮罩浓度(百分比 0~100),越大背景越淡、文字越清楚
background.fit cover cover 铺满裁切 / contain 完整显示(留白)
background.position center 铺满时保留哪一端:top / center / bottom
background.screenRatio 0 铺背景时把手机撑成的高宽比;0 = 不撑(图跟内容走、下方不留白),想壁纸铺满填 1.9
browser.idleCloseSeconds 60 仅插件自开浏览器时生效的空闲关闭秒数

提醒默认开启,无需任何设置。群友发 #关闭我的艾特提醒 可单独关闭自己; 主人发 #关闭本群艾特提醒 可关掉整个群。也可在锅巴「提醒配置 → 群组开关」里按群设置。

渲染后端

出图走的是机器人自己的出图入口,所以本地浏览器、外置渲染、远程浏览器、 换别的渲染后端都不用额外配置。真遇到出图入口不可用时,会自动改用插件自带的方案兜底, 实在不行才记录日志并提示,不会让指令崩掉。


🛠️ 命令列表

查询(所有人)

命令 说明
谁艾特我 / 谁@我 / 谁at我 查询自己在当前群被艾特的记录(含近期全体艾特)
谁艾特他 @某人(她/它 同理) 查询指定成员的记录;「它」指机器人本人,无需 @

艾特提醒

命令 权限 说明
#关闭我的艾特提醒 所有人 关闭自己的提醒(只对自己生效)
#开启我的艾特提醒 所有人 重新开启自己的提醒
#我的艾特提醒状态 所有人 查看自己的提醒状态
#关闭本群艾特提醒 主人 关闭整个群的提醒
#开启本群艾特提醒 主人 重新开启本群提醒
#本群艾特提醒状态 主人 查看本群提醒与上下文配置

上下文(主人)

记录层与提醒层是两个独立开关:前者决定「要不要存」,后者决定「截图里要不要画」。

命令 说明
#开启艾特上下文 / #关闭艾特上下文(#关闭at上下文 也可以) 记录层:是否把艾特前后的聊天存进库
#开启本群提醒上下文 / #关闭本群提醒上下文 提醒层:提醒截图是否显示前后消息
#设置本群提醒上下文 前 后 设置前后条数,范围 0~5(例:#设置本群提醒上下文 3 2)

数据清理

命令 权限 说明
#清空我的艾特 所有人 清空自己在当前群的记录与图片,不动开关
#清空全部艾特 主人 清空全部记录、未读提醒、全体艾特与图片,不动开关
#重置艾特插件 主人 清空全部数据与开关配置,一切回到默认

其他

命令 说明
#艾特帮助 / #艾特帮助刷新 查看 / 重新生成本帮助图
#艾特统计 查看已存记录数、图片数与占用大小
#更新atme-plugin(#艾特更新 等别名) 从上游拉取插件更新

🗄️ 数据存放

数据在 data/atme/,发送用的临时图在宿主的 temp/atme/:

data/atme/
├── atme.db          # SQLite(记录 / 开关 / 未读 / 全体艾特 / 冷却)
├── atme.db-wal      # WAL 日志(正常现象)
├── images/          # 艾特消息的图片(webp)
└── help/            # 帮助图缓存

temp/atme/           # 出图发送用的临时文件,发完 2 分钟自动删

数据库表:records(记录)/ unread(未读)/ trigger(被艾特时间)/ cooldown(提醒冷却)/ atall(全体艾特)/ group_record_ctx、group_remind、user_remind、group_remind_ctx(开关)/ meta。

想直接删数据用 #清空我的艾特 / #清空全部艾特 / #重置艾特插件 即可,它们会连带回收本地图片。


⏱️ 提醒是怎么触发的

  1. 有人 @你 → 记一条未读(若在冷却期内则跳过)。
  2. 你下次在同一个群发言时:
    • 静默期(默认 600 秒)内发言 → 认为你还在场,不打扰,清掉未读并进入冷却;
    • 冷却期(默认 60 分钟)内 → 不重复提醒;
    • 否则 → 出图 @你,图里你的发言靠右显示。
  3. 提醒消息默认 60 秒后自动撤回(autoRecallSeconds,0 表示不撤回)。

第一次提醒时会附一句「不想接收就发 #关闭我的艾特提醒」,之后不再重复。


📄 License

GPL-3.0-or-later —— 可自由使用、修改、分发,衍生作品需以相同协议开源。

About

Yunzai 艾特记录与提醒插件 —— 手机聊天风出图,数据存本机 SQLite

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages