Skip to main content

Nonebot2 plugin for making memes

Project description

nonebot

nonebot-plugin-memes

Nonebot2 表情包制作插件 ✨

license Python NoneBot pypi qq group

本插件是 表情包生成器 meme-generatorNonebot2 对接插件,方便通过聊天机器人制作表情包

另有 nonebot-plugin-memes-api(表情包制作 调用 api 版本),可以将 NoneBot 插件与 meme-generator 分开部署

nonebot-plugin-memes-apinonebot-plugin-memes 功能上基本一致

安装

  • 使用 nb-cli
nb plugin install nonebot_plugin_memes
  • 使用 pip
pip install nonebot_plugin_memes

并按照 NoneBot 加载插件 加载插件

配置驱动器

插件需要“客户端型驱动器”(如 httpx)来下载图片等,驱动器安装和配置参考 NoneBot 选择驱动器

同时需要在 .env.* 配置文件中启用对应的驱动器,例如:

DRIVER=~fastapi+~httpx+~websockets

配置项

以下配置项可在 .env.* 文件中设置,具体参考 NoneBot 配置方式

memes_command_prefixes

  • 类型:List[str] | None
  • 默认:None
  • 说明:命令前缀(仅作用于制作表情的命令);如果不设置默认使用 NoneBot 命令前缀

memes_disabled_list

  • 类型:List[str]
  • 默认:[]
  • 说明:禁用的表情包列表,需填写表情的key,可在 meme-generator 表情列表 中查看。若只是临时关闭,可以用下文中的“表情包开关”

memes_check_resources_on_startup

  • 类型:bool
  • 默认:True
  • 说明:是否在启动时检查 meme-generator 资源

memes_params_mismatch_policy

  • 类型:MemeParamsMismatchPolicy
  • 说明:图片/文字数量不符时的处理方式,其中具体设置项如下:
    • too_much_text
      • 类型:str
      • 默认:"ignore"
      • 可选项:"ignore"(忽略本次命令)、 "prompt"(发送提示), "drop"(去掉多余的文字)
    • too_few_text
      • 类型:str
      • 默认:"ignore"
      • 可选项:"ignore"(忽略本次命令)、 "prompt"(发送提示), "get"(交互式获取所需的文字)
    • too_much_image
      • 类型:str
      • 默认:"ignore"
      • 可选项:"ignore"(忽略本次命令)、 "prompt"(发送提示), "drop"(去掉多余的图片)
    • too_few_image
      • 类型:str
      • 默认:"ignore"
      • 可选项:"ignore"(忽略本次命令)、 "prompt"(发送提示), "get"(交互式获取所需的图片)
  • memes_params_mismatch_policy.env 文件中的设置示例如下:
memes_params_mismatch_policy='
{
  "too_much_text": "drop",
  "too_few_text": "get",
  "too_much_image": "drop",
  "too_few_image": "get"
}
'

memes_use_sender_when_no_image

  • 类型:bool
  • 默认:False
  • 说明:在表情需要至少 1 张图且没有输入图片时,是否使用发送者的头像

memes_use_default_when_no_text

  • 类型:bool
  • 默认:False
  • 说明:在表情需要至少 1 段文字且没有输入文字时,是否使用默认文字

memes_random_meme_show_info

  • 类型:bool
  • 默认:True
  • 说明:使用“随机表情”时是否同时发出表情关键词

memes_list_image_config

  • 类型:MemeListImageConfig
  • 说明:表情列表图相关设置,其中具体设置项如下:
    • sort_by
      • 类型:str
      • 默认:"keywords_pinyin"
      • 说明:表情排序方式,可用值:"key"(按表情 key 排序)、"keywords"(按表情关键词排序)、keywords_pinyin(按表情关键词拼音排序)、"date_created"(按表情添加时间排序)、"date_modified"(按表情修改时间排序)
    • sort_reverse
      • 类型:bool
      • 默认:False
      • 说明:是否倒序排序
    • text_template
      • 类型:str
      • 默认:"{index}. {keywords}"
      • 说明:表情显示文字模板,可用变量:"{index}"(序号)、"{key}"(表情名)、"{keywords}"(关键词)、"{shortcuts}"(快捷指令)、"{tags}"(标签)
    • add_category_icon
      • 类型:bool
      • 默认:True
      • 说明:是否添加图标以表示类型,即“图片表情包”和“文字表情包”
    • label_new_timedelta
      • 类型:timedelta
      • 默认:timedelta(days=30)
      • 说明:表情添加时间在该时间间隔以内时,添加 new 图标
    • label_hot_threshold
      • 类型:int
      • 默认:21
      • 说明:单位:次;表情在 label_hot_days 内的调用次数超过该阈值时,添加 hot 图标
    • label_hot_days
      • 类型:int
      • 默认:7
      • 说明:单位:天;表情调用次数统计周期
  • memes_list_image_config.env 文件中的设置示例如下:
memes_list_image_config='
{
  "sort_by": "keywords",
  "sort_reverse": false,
  "text_template": "{index}. {keywords}",
  "add_category_icon": true,
  "label_new_timedelta": "P30D",
  "label_hot_threshold": 21,
  "label_hot_days": 7
}
'

memes_multiple_image_config

  • 类型:MultipleImageConfig
  • 说明:发送多张图片时的相关设置,其中具体设置项如下:
    • direct_send_threshold
      • 类型:int
      • 默认:10
      • 说明:发送图片数量大于该数目时,不再直接发送,而是以文件或合并转发消息的形式发送
    • send_zip_file
      • 类型:bool
      • 默认:True
      • 说明:发送图片数量大于 direct_send_threshold 时,是否打包为zip以文件形式发送
    • send_forward_msg
      • 类型:bool
      • 默认:False
      • 说明:发送图片数量大于 direct_send_threshold 时,是否发送合并转发消息
  • memes_multiple_image_config.env 文件中的设置示例如下:
memes_multiple_image_config='
{
  "direct_send_threshold": 10,
  "send_zip_file": true,
  "send_forward_msg": true
}
'

使用

以下命令需要加 NoneBot 命令前缀 (默认为/),可自行添加空字符

表情列表

  • 发送 “表情包制作” 查看表情列表

表情详情

  • 发送 “表情详情 + 关键词” 查看表情详细信息和表情预览

表情搜索

  • 发送 “表情搜索 + 关键词” 查找相关的表情

表情包开关

“超级用户” 和 “管理员” 可以启用或禁用某些表情

  • 发送 “启用表情/禁用表情 + 关键词”,如:禁用表情 摸

“超级用户” 可以设置某个表情包的管控模式(黑名单/白名单)

  • 发送 “全局启用表情 + 关键词” 可将表情设为黑名单模式;

  • 发送 “全局禁用表情 + 关键词” 可将表情设为白名单模式;

[!NOTE]

“超级用户” 可通过 NoneBot SuperUsers 设置

表情使用

  • 发送 “关键词 + 图片/文字” 制作表情

可使用 “自己”、“@某人” 获取指定用户的头像作为图片

可使用 “@ + 用户 id” 指定任意用户获取头像,如 摸 @114514

可将回复中的消息作为文字和图片的输入

指定用户时将使用用户昵称作为“图片名”

可使用“# + 名字”指定“图片名”,如 小天使 #name 自己

示例:

[!NOTE]

  • 为避免误触发,当输入的 图片/文字 数量不符时,默认不会进行提示,可通过 memes_params_mismatch_policy 配置项进行设置
  • 本插件通过 nonebot-plugin-uninfo 插件获取用户名和用户头像,具体平台支持范围可前往该插件查看
  • 本插件通过 nonebot-plugin-alconna 来实现多适配器消息接收、获取图片输入、获取回复内容等,相关问题可前往该插件查看

随机表情

  • 发送 “随机表情 + 图片/文字” 可随机制作表情

随机范围为 图片/文字 数量符合要求的表情

表情调用统计

  • 发送 “[我的][全局]<时间段>表情调用统计 [表情名]” 获取表情调用次数统计图

“我的”、“全局”、<时间段>、“表情名” 均为可选项

<时间段> 可以为:日、本日、周、本周、月、本月、年、本年

如:我的今日表情调用统计 petpet

简单图片操作

插件附带了简单图片操作功能,发送 “图片操作” 查看帮助

可用的指令有:

  • 水平翻转/左翻/右翻
  • 竖直翻转/上翻/下翻
  • 旋转 + 角度
  • 缩放 + 尺寸或百分比,如:缩放 100x100缩放 200x缩放 150%
  • 裁剪 + 尺寸或比例,如:裁剪 100x100裁剪 2:1
  • 灰度图/黑白
  • 反相/反色
  • 横向拼接 + 至少两张图片
  • 纵向拼接 + 至少两张图片
  • gif分解
  • gif合成 + 至少两张图片
  • gif倒放/倒放
  • gif变速 + 倍率或fps,如:gif变速 0.5xgif变速 10fps

相关插件

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_memes-0.8.0.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_memes-0.8.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_memes-0.8.0.tar.gz.

File metadata

  • Download URL: nonebot_plugin_memes-0.8.0.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.0 Linux/6.8.0-1021-azure

File hashes

Hashes for nonebot_plugin_memes-0.8.0.tar.gz
Algorithm Hash digest
SHA256 e7ad372ed68c85d1208f25eb6776faca62a5da2dd4f22b492cee3a1cbba3aad6
MD5 6b2267cec30b2c56380304721c009f67
BLAKE2b-256 7531cfbbf54e81b25d032e69865dd31cd261c11755496f7bf80b81f176cbe1d2

See more details on using hashes here.

File details

Details for the file nonebot_plugin_memes-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: nonebot_plugin_memes-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 30.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.0 Linux/6.8.0-1021-azure

File hashes

Hashes for nonebot_plugin_memes-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 723cdd45414648af92b25034d3e51166b91d8a558d96cf79fcd953ea01d42c55
MD5 c64d3fbdf48db9d4e1b884f1d8ca7d59
BLAKE2b-256 2474152f33623c6c00e708fbdc8ac04dfa38fe9e3deb5d1d0c304687123c0f0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page