来提交你的插件吧!
有疑问?来看看呗!

插件详情

astrbot_plugin_mememaker_api

表情包制作插件(api版),功能齐全,需要调用 meme-generator 服务

meme
api
表情包
版本v1.0.1
作者jmt059
Star12
更新2025/12/06

插件说明

AstrBot 表情包制作 & 图片工具插件 (Meme Maker API)

Python
AstrBot
Version

这是一款为 AstrBot 设计的功能强大、高度模块化的表情包制作与图片处理插件。它通过连接后端 API 服务(如 Meme-Generator),为您的聊天机器人带来无穷的乐趣和实用性。

✨ 功能特性

  • 强大的表情制作:

    • 关键词触发:通过发送 -关键词 + 图片/文字/@某人 即可生成表情。
    • 默认文本:对于“为所欲为”等需要大量文字的表情,不提供文字时会自动使用经典台词(如果有)。
    • 智能交互:当所需参数不足时,会自动进入等待模式,提示用户补充,并可通过 -取消 随时终止。
    • 选项参数:支持 -摸 @QQ -c 这样的参数选项,对生成的图片进行微调。
  • 丰富的图片工具:

    • 内置多达13种图片处理工具,包括水平/竖直翻转、旋转、缩放、裁剪、灰度、反色、横向/纵向拼接,以及GIF分解、合成、倒放、变速。
  • 完善的信息查询:

    • 表情列表:通过 -表情列表 获取图文并茂的可用表情总览。
    • 表情详情:通过 -表情详细 <关键词> 查看指定表情的详细用法和预览图。
    • 表情搜索:通过 -表情搜索 <关键词> 查找表情,支持交互式翻页。
  • 高级权限系统:

    • 多级权限:集成了“超管 > 群主 > QQ管理员 > 手动插件管理员 > 普通成员”的多级权限体系。
    • 后台可配:可在后台为部分管理指令单独配置所需的权限等级。
    • 手动授权:超管可通过 -群管理员 指令,将插件的管理权限精准授予普通成员,而无需给予其真正的群管理员身份。
  • 极致的用户体验:

    • 消息自动撤回:可配置的“阅后即焚”功能,机器人在交互式流程中发送的提示消息(如“参数不足...”、“还差...”),会在流程结束后被自动撤回,保持聊天界面整洁。
    • 2分钟防撤回失败保险:独特的110秒监视器,确保交互时间过长导致消息无法撤回时,能主动终止会话并清理消息。
    • 可配置的多图发送策略:可自定义图片数量阈值,实现“直接发送”、“合并转发”、“打包为.zip文件”三种不同的发送方式。
  • 详细的数据统计:

    • 支持通过自然语言查询,如 -我的本周表情调用统计,生成精美的统计图表。

🚀 安装

方式一:自动部署(推荐)

  1. 通过 AstrBot 插件市场安装
    在 AstrBot WebUI 后台,进入“插件市场”,搜索 meme_maker_api,一键安装即可。
    安装完成后,直接进入“插件管理”进行配置。

方式二:手动部署

  1. 下载插件: 将本项目文件夹放置于 AstrBot 的 data/plugins/ 目录下。

  2. 安装依赖: 在您的 AstrBot 环境中,安装 requirements.txt 中列出的依赖库。

    pip install aiohttp aiosqlite pydantic python-dateutil filetype
    

🌏 部署前置服务 (重要!)

  1. 部署meme-generator:

    • meme-generator 服务: 本插件是 Meme-API 的前端,您必须先部署 meme-generator-rs,并确保您的服务器可以访问到它的地址。meme-generator(python)版的以后再说
  2. 配置插件:

    • 启动 AstrBot,前往 WebUI -> 插件管理,找到 meme_maker_api 插件。
    • 点击“配置”,填入您的 Meme-API 地址。
    • 如果您希望启用“消息撤回”功能,请**开启

📖 使用说明

基础用法: -<指令名> [参数]

图片来源:
当指令需要图片时,您可以通过以下几种方式提供:

  • 直接在消息中发送图片。
  • @一位用户来使用其头像。
  • 回复一条包含图片的消息。
  • 如果插件配置中开启了 use_sender_when_no_image,在不提供任何图片时,会自动使用您自己的头像。

🖼️ 表情制作

按关键词制作

通过表情的关键词来触发制作。

  • 语法: -<关键词> [文字1] [文字2]... [@用户/图片] [--选项]

  • 示例:

    -摸 @小助手 -圆
    (制作一张圆形的“摸”@小助手头像的表情)

    (引用一张图片)
    -拍
    (将回复的图片作为素材制作“拍”表情)

    -举牌 你是谁来着?
    (制作需要一段文字的“举牌”表情)

使用默认台词

对于需要大量文字的表情(如“为所欲为”),如果不提供任何文字,插件会自动使用内置的经典台词。

  • 示例:

    -为所欲为

交互式制作 & 取消

当您提供的文字或图片数量不足时,插件会自动进入等待模式。

  • 示例:

    你: -为所欲为 1 2
    Bot: 参数不足,请继续发送7段文字。60秒内无操作将自动取消...
    你: 3 4 5 6 7 8 9
    Bot: 参数已集齐,开始制作... (随后发送图片和撤回提示)

  • 在等待过程中,可以随时发送 -取消 来终止制作。

随机表情

随机选择一个符合您提供参数的表情进行制作。

  • 示例:

    -随机表情 (随机找一个不需要任何参数的表情)
    -随机表情 我要白嫖 (随机找一个需要一段文字的表情)
    (发送一张图片) -随机表情 (随机找一个需要一张图片的表情)


ℹ️ 信息查询

  • 获取表情列表:
    • -表情列表
  • 查看表情详情:
    • -表情详情 <关键词>
    • 示例: -表情详情 摸

  • 搜索表情:
    • -表情搜索 <关键词>
    • 示例: -表情搜索 猫

    • (当结果多于一页时,可根据提示发送 > 或页码进行翻页)

🛠️ 图片工具

所有图片工具都需要您在消息中提供图片(通过发送、@或回复)。

功能 指令 参数说明 示例
水平翻转 -水平翻转 无 -水平翻转
竖直翻转 -竖直翻转 无 -竖直翻转
旋转 -旋转 角度 (可选, 默认90) -旋转 90
缩放 -缩放 尺寸 (宽x高) -缩放 200x300
裁剪 -裁剪 坐标或尺寸 -裁剪 100,100,200,200
灰度图 -灰度 无 -灰度
反相/反色 -反色 无 -反色
横向拼接 -水平拼接 需要2张图片 (发送2张图)-水平拼接
纵向拼接 -纵向拼接, -竖直拼接 需要2张图片 (发送2张图)-纵向拼接
GIF分解 -gif分解 需要1张GIF图 (发送GIF)-gif分解
GIF合成 -gif合成 帧间隔(秒,可选,默认0.1) (发送多张图)-gif合成 0.2
GIF倒放 -gif倒放 需要1张GIF图 (发送GIF)-gif倒放
GIF变速 -gif变速 速度/帧率/时长 -gif变速 2x

📊 数据统计

指令由多个部分自由组合而成,[]中的为可选项。

  • 语法: -[我的/全局][时间段]表情统计 [关键词]
  • [时间段] 可选值: 日, 本日, 今日, 24小时, 周, 本周, 7天, 月, 本月, 30天, 年, 本年, 一年
  • 示例:

    -表情统计 (查询本群24小时内的统计)
    -我的表情统计
    -全局本周表情统计
    -我的表情统计 摸


⚙️ 管理指令 (需要权限)

管理员 / 群主 / 插件管理员 可用

  • -刷新表情: 强制从API重新加载表情列表。
  • -禁用表情 <关键词>: 在当前群禁用指定表情。
  • -启用表情 <关键词>: 在当前群重新启用表情。
  • -管理列表: 查看当前群的表情管理规则(禁用/启用列表)。

超管 可用

  • -群管理员 <添加/删除/查看> <@用户/QQ号> [群号]: 管理插件管理员。
  • -全局禁用表情 <关键词>: 将表情设为全局白名单模式(默认禁用,需分群启用)。
  • -全局启用表情 <关键词>: 将表情恢复为全局黑名单模式(默认启用)。

💟 更多指令 (因为暂时没时间写README所以就先到这儿吧)

⚙️ 配置项说明

所有配置项均可在 AstrBot 后台 WebUI 中进行图形化配置。

配置项 类型 说明 默认值
meme_generator_base_url 文本 【重要】Meme制作器API地址,需以/结尾 http://127.0.0.1:2233/
timeout 数字 网络请求超时(秒) 20
command_prefix 文本 插件指令专属前缀 -
bot_display_name 文本 合并转发中显示的机器人昵称 Meme Bot
interactive_settings.enabled 开关 启用交互式等待 True (开启)
interactive_settings.timeout 数字 等待用户补充参数的超时时间(秒) 60
interactive_settings.recall.enabled 开关 启用提示消息自动撤回 False (关闭)
interactive_settings.smart_reprompt.enabled 开关 智能重提示 False (关闭)
interactive_settings.smart_reprompt.threshold 数字 触发重提示的无效输入次数 2
multi_image_options.direct_send_threshold 数字 直接发送图片数量阈值 3
multi_image_options.send_forward_msg 开关 超过阈值时启用合并转发 True (开启)
multi_image_options.send_as_zip_enabled 开关 超过阈值时启用zip打包 True (开启)
multi_image_options.zip_threshold 数字 触发zip打包的图片数量阈值 20
multi_image_options.zip_use_base64 开关 使用Base64方式发送zip包 False (关闭)
use_sender_when_no_image 开关 无图时自动使用发送者头像 True (开启)
fuzzy_match 开关 启用表情关键词模糊匹配 True (开启)
label_settings.label_new_days 数字 “新”表情标签显示天数 7
label_settings.label_hot_days 数字 “热门”表情统计周期(天) 30
label_settings.label_hot_threshold 数字 “热门”表情使用次数阈值 20
perms.handle_refresh_memes 下拉 刷新表情 指令权限 超管
perms.handle_disable_meme 下拉 禁用表情 指令权限 管理员
perms.handle_enable_meme 下拉 启用表情 指令权限 管理员
perms.handle_manager_list 下拉 管理列表 指令权限 超管
perms.handle_group_admin_manager 下拉 群管理员 指令权限 超管
perms.handle_global_disable_meme 下拉 全局禁用表情 指令权限 超管
perms.handle_global_enable_meme 下拉 全局启用表情 指令权限 超管

更多详细说明请参考插件目录下的 _conf_schema.json 文件。

常见问题(FAQ)

  • Q: 插件无法连接 meme-generator 服务怎么办?
    • 请检查 meme-generator 服务是否已启动,并确保 meme_generator_base_url 配置正确可访问。
  • Q: 图片生成失败,提示“参数不足”?
    • 请根据提示补充所需的图片或文字参数,或使用 -取消 终止当前操作。
  • Q: 如何查看详细日志?
    • 请在 AstrBot 的控制台查找 meme_maker_api 相关日志输出。

致谢

  • 本插件基于强大且易用的 AstrBot 框架开发,感谢 AstrBot 团队为开源社区带来的高效机器人平台。
  • 本插件的功能设计,深度参考了优秀的 nonebot-plugin-memes-api 项目。
  • 权限系统的设计,学习并改造了 astrbot_plugin_QQAdmin 的实现。
  • 核心依赖于 meme-generator 服务。

向以上所有优秀的开源项目致敬!

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community