<div align="center">
# nonebot-plugin-arcaea-sticker
_✨ 基于 NoneBot2 的 Arcaea 表情包生成插件 ✨_
<p align="center">
<img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="python">
<a href="https://pypi.python.org/pypi/nonebot-plugin-arcaea-sticker">
<img src="https://img.shields.io/pypi/v/nonebot-plugin-arcaea-sticker.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/nonebot-2.0.0+-red.svg" alt="NoneBot">
<img src="https://img.shields.io/badge/platforms-17+-green.svg" alt="platforms">
</p>
<p align="center">
<a href="https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=sy5x0Bv8IJoMVviC3dRbXTVD9zLdpitx&authKey=OPfY0G2zfQwDQJmf5xV5cqJq7c6%2Beg1cqiCF%2BDHsSFEaGscmeo5ALIdyJ%2BYZmoJb&noverify=0&group_code=806446119">
<img src="https://img.shields.io/badge/QQ群-806446119-pink" alt="QQ Chat Group">
</a>
<a href="./LICENSE">
<img src="https://img.shields.io/github/license/JQ-28/nonebot-plugin-arcaea-sticker.svg" alt="license">
</a>
</p>
<p align="center">
<img src="https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/blob/main/nami%E9%BE%99%E7%AC%94!%E9%BE%99%E7%AC%94!.png?raw=true" alt="示例图片">
</p>
</div>
## 📖 介绍
本插件可以生成 Arcaea 的表情包,支持自定义文字、位置、角度、颜色等参数。
## 💿 安装
### 方式一:使用 nb-cli 安装(推荐)
```bash
nb plugin install nonebot-plugin-arcaea-sticker
```
### 方式二:使用包管理器安装
1. 使用 pip 安装插件:
```bash
pip install nonebot-plugin-arcaea-sticker
```
2. 在 NoneBot2 项目的 `pyproject.toml` 文件中添加插件:
```toml
[tool.nonebot]
plugins = ["nonebot_plugin_arcaea_sticker"]
```
## ⚙️ 配置
在 NoneBot2 项目的 `.env` 文件中添加以下配置(可选):
```env
# 是否在回复时 @ 用户(默认 true)
arcaea_reply=true
```
**配置说明**:
- `arcaea_reply`: 控制是否 @ 发送者
- `true`: 回复时会 @ 用户(默认)
- `false`: 不 @ 用户
**注意**:所有配置项均为可选,不配置则使用默认值。
## 🎮 使用方法
### 基础指令
- `arc <角色> <文字>` - 快速生成表情包
- `arc` - 进入交互模式(新手友好)
- `arc -h` - 查看文本帮助(快速参考)
- `arc帮助` - 查看图片帮助(精美版,推荐首次使用)
### 自定义参数(都是可选的)
| 参数 | 说明 | 范围 | 默认值 | 补充说明 |
|------|------|------|--------|----------|
| `-s, --size` | 文字大小 | 20~45 | 35 | 数字越大文字越大,多行文字建议25-35 |
| `-x` | 横向位置 | 0~296 | 148 | 0=最左边,148=居中,296=最右边 |
| `-y` | 纵向位置 | 0~256 | 128 | 0=最上方,128=居中,256=最下方 |
| `-r, --rotate` | 旋转角度 | -180~180 | -12 | 正数顺时针,负数逆时针,建议-30~30度 |
| `-c, --color` | 文字颜色 | 十六进制 | 角色专属 | 支持`#ff0000`或`ff0000`格式 |
| `-w, --stroke-width` | 描边宽度 | 整数 | 9 | 文字边框的粗细 |
| `-C, --stroke-color` | 描边颜色 | 十六进制 | 自动生成 | 默认比文字颜色深30% |
💡 提示: 文字包含空格需要加引号,换行使用`\n`
### 使用示例
```
arc luna 好耶! # 基础用法
arc hikari "第一行\n第二行" -s 45 # 多行文字
arc 17 喜欢... -x 150 -y 100 -r -20 # 调整位置和角度
arc nami "龙笔!" -c ff0000 # 自定义红色文字
arc eto "Ciallo~(∠・ω<)⌒☆" -s 30 -c #fdae92 -r -28 -x 120 -y 80 # 组合多个参数
```
## 📝 功能特点
- ✅ 支持生成 Arcaea 角色的表情包
- ✅ 支持命令模式和交互模式
- ✅ 跨平台支持
- ✅ 支持自定义文字、位置、角度、颜色等参数
- ✅ 支持多行文本和自动换行
- ✅ 智能文字大小调整
- ✅ 支持中文角色名称
## 🔧 依赖
- Python 3.8+
- NoneBot2 >= 2.0.0
- nonebot-plugin-alconna(跨平台支持)
- nonebot-plugin-htmlrender
- nonebot-plugin-localstore
## 📄 开源许可
本项目基于 [MIT](LICENSE) 许可证开源。
**注意事项:**
- 本项目代码使用 MIT 许可证开源,您可以自由使用和修改代码
- 项目中的表情包素材来源于 [Xestarrrr](https://x.com/Xestarrrr)
- 本项目基于 [arcaea-stickers](https://github.com/Rosemoe/arcaea-stickers) 项目开发
- 请遵守原始素材的使用条款和限制
## 🙏 鸣谢
- [Xestarrrr](https://x.com/Xestarrrr) - 原始表情包素材创作者
- [arcaea-stickers](https://github.com/Rosemoe/arcaea-stickers) - 网页版表情包生成器
- [nonebot-plugin-pjsk](https://github.com/lgc-NB2Dev/nonebot-plugin-pjsk) - 参考了部分代码
- [NoneBot2](https://github.com/nonebot/nonebot2) - 跨平台 Python 异步机器人框架
## 📞 联系
<table>
<tr>
<td>ღ互联网小猫窝ღ(Bot群,欢迎来玩)</td>
<td>JQ-28</td>
</tr>
<tr>
<td>QQ群:806446119</td>
<td>QQ:480352716</td>
</tr>
</table>
</div>
## 💬 反馈
如有问题或建议,欢迎:
- 提交 [Issue](https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/issues)
- 提交 [Pull Request](https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/pulls)
- 加入 QQ 群交流:806446119
Raw data
{
"_id": null,
"home_page": null,
"name": "nonebot-plugin-arcaea-sticker",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "nonebot2, plugin, arcaea, sticker",
"author": null,
"author_email": "JQ-28 <480352716@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/c4/d8/89f78c57faf8e51b0d5b93f79acb512fa3c50a8f29187c51ad663febd92e/nonebot_plugin_arcaea_sticker-0.4.4.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n# nonebot-plugin-arcaea-sticker\n\n_\u2728 \u57fa\u4e8e NoneBot2 \u7684 Arcaea \u8868\u60c5\u5305\u751f\u6210\u63d2\u4ef6 \u2728_\n\n<p align=\"center\">\n <img src=\"https://img.shields.io/badge/python-3.8+-blue.svg\" alt=\"python\">\n <a href=\"https://pypi.python.org/pypi/nonebot-plugin-arcaea-sticker\">\n <img src=\"https://img.shields.io/pypi/v/nonebot-plugin-arcaea-sticker.svg\" alt=\"pypi\">\n </a>\n <img src=\"https://img.shields.io/badge/nonebot-2.0.0+-red.svg\" alt=\"NoneBot\">\n <img src=\"https://img.shields.io/badge/platforms-17+-green.svg\" alt=\"platforms\">\n</p>\n\n<p align=\"center\">\n <a href=\"https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=sy5x0Bv8IJoMVviC3dRbXTVD9zLdpitx&authKey=OPfY0G2zfQwDQJmf5xV5cqJq7c6%2Beg1cqiCF%2BDHsSFEaGscmeo5ALIdyJ%2BYZmoJb&noverify=0&group_code=806446119\">\n <img src=\"https://img.shields.io/badge/QQ\u7fa4-806446119-pink\" alt=\"QQ Chat Group\">\n </a>\n <a href=\"./LICENSE\">\n <img src=\"https://img.shields.io/github/license/JQ-28/nonebot-plugin-arcaea-sticker.svg\" alt=\"license\">\n </a>\n</p>\n\n\n<p align=\"center\">\n <img src=\"https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/blob/main/nami%E9%BE%99%E7%AC%94!%E9%BE%99%E7%AC%94!.png?raw=true\" alt=\"\u793a\u4f8b\u56fe\u7247\">\n</p>\n\n</div>\n\n## \ud83d\udcd6 \u4ecb\u7ecd\n\n\u672c\u63d2\u4ef6\u53ef\u4ee5\u751f\u6210 Arcaea \u7684\u8868\u60c5\u5305\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u6587\u5b57\u3001\u4f4d\u7f6e\u3001\u89d2\u5ea6\u3001\u989c\u8272\u7b49\u53c2\u6570\u3002\n\n## \ud83d\udcbf \u5b89\u88c5\n\n### \u65b9\u5f0f\u4e00\uff1a\u4f7f\u7528 nb-cli \u5b89\u88c5\uff08\u63a8\u8350\uff09\n\n```bash\nnb plugin install nonebot-plugin-arcaea-sticker\n```\n\n### \u65b9\u5f0f\u4e8c\uff1a\u4f7f\u7528\u5305\u7ba1\u7406\u5668\u5b89\u88c5\n\n1. \u4f7f\u7528 pip \u5b89\u88c5\u63d2\u4ef6\uff1a\n```bash\npip install nonebot-plugin-arcaea-sticker\n```\n\n2. \u5728 NoneBot2 \u9879\u76ee\u7684 `pyproject.toml` \u6587\u4ef6\u4e2d\u6dfb\u52a0\u63d2\u4ef6\uff1a\n```toml\n[tool.nonebot]\nplugins = [\"nonebot_plugin_arcaea_sticker\"]\n```\n\n## \u2699\ufe0f \u914d\u7f6e\n\n\u5728 NoneBot2 \u9879\u76ee\u7684 `.env` \u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff08\u53ef\u9009\uff09\uff1a\n\n```env\n# \u662f\u5426\u5728\u56de\u590d\u65f6 @ \u7528\u6237\uff08\u9ed8\u8ba4 true\uff09\narcaea_reply=true\n```\n\n**\u914d\u7f6e\u8bf4\u660e**\uff1a\n- `arcaea_reply`: \u63a7\u5236\u662f\u5426 @ \u53d1\u9001\u8005\n - `true`: \u56de\u590d\u65f6\u4f1a @ \u7528\u6237\uff08\u9ed8\u8ba4\uff09\n - `false`: \u4e0d @ \u7528\u6237\n\n**\u6ce8\u610f**\uff1a\u6240\u6709\u914d\u7f6e\u9879\u5747\u4e3a\u53ef\u9009\uff0c\u4e0d\u914d\u7f6e\u5219\u4f7f\u7528\u9ed8\u8ba4\u503c\u3002\n\n## \ud83c\udfae \u4f7f\u7528\u65b9\u6cd5\n\n### \u57fa\u7840\u6307\u4ee4\n- `arc <\u89d2\u8272> <\u6587\u5b57>` - \u5feb\u901f\u751f\u6210\u8868\u60c5\u5305\n- `arc` - \u8fdb\u5165\u4ea4\u4e92\u6a21\u5f0f\uff08\u65b0\u624b\u53cb\u597d\uff09\n- `arc -h` - \u67e5\u770b\u6587\u672c\u5e2e\u52a9\uff08\u5feb\u901f\u53c2\u8003\uff09\n- `arc\u5e2e\u52a9` - \u67e5\u770b\u56fe\u7247\u5e2e\u52a9\uff08\u7cbe\u7f8e\u7248\uff0c\u63a8\u8350\u9996\u6b21\u4f7f\u7528\uff09\n\n### \u81ea\u5b9a\u4e49\u53c2\u6570\uff08\u90fd\u662f\u53ef\u9009\u7684\uff09\n| \u53c2\u6570 | \u8bf4\u660e | \u8303\u56f4 | \u9ed8\u8ba4\u503c | \u8865\u5145\u8bf4\u660e |\n|------|------|------|--------|----------|\n| `-s, --size` | \u6587\u5b57\u5927\u5c0f | 20~45 | 35 | \u6570\u5b57\u8d8a\u5927\u6587\u5b57\u8d8a\u5927,\u591a\u884c\u6587\u5b57\u5efa\u8bae25-35 |\n| `-x` | \u6a2a\u5411\u4f4d\u7f6e | 0~296 | 148 | 0=\u6700\u5de6\u8fb9,148=\u5c45\u4e2d,296=\u6700\u53f3\u8fb9 |\n| `-y` | \u7eb5\u5411\u4f4d\u7f6e | 0~256 | 128 | 0=\u6700\u4e0a\u65b9,128=\u5c45\u4e2d,256=\u6700\u4e0b\u65b9 |\n| `-r, --rotate` | \u65cb\u8f6c\u89d2\u5ea6 | -180~180 | -12 | \u6b63\u6570\u987a\u65f6\u9488,\u8d1f\u6570\u9006\u65f6\u9488,\u5efa\u8bae-30~30\u5ea6 |\n| `-c, --color` | \u6587\u5b57\u989c\u8272 | \u5341\u516d\u8fdb\u5236 | \u89d2\u8272\u4e13\u5c5e | \u652f\u6301`#ff0000`\u6216`ff0000`\u683c\u5f0f |\n| `-w, --stroke-width` | \u63cf\u8fb9\u5bbd\u5ea6 | \u6574\u6570 | 9 | \u6587\u5b57\u8fb9\u6846\u7684\u7c97\u7ec6 |\n| `-C, --stroke-color` | \u63cf\u8fb9\u989c\u8272 | \u5341\u516d\u8fdb\u5236 | \u81ea\u52a8\u751f\u6210 | \u9ed8\u8ba4\u6bd4\u6587\u5b57\u989c\u8272\u6df130% |\n\n\ud83d\udca1 \u63d0\u793a: \u6587\u5b57\u5305\u542b\u7a7a\u683c\u9700\u8981\u52a0\u5f15\u53f7,\u6362\u884c\u4f7f\u7528`\\n`\n\n### \u4f7f\u7528\u793a\u4f8b\n```\narc luna \u597d\u8036\uff01 # \u57fa\u7840\u7528\u6cd5\narc hikari \"\u7b2c\u4e00\u884c\\n\u7b2c\u4e8c\u884c\" -s 45 # \u591a\u884c\u6587\u5b57\narc 17 \u559c\u6b22... -x 150 -y 100 -r -20 # \u8c03\u6574\u4f4d\u7f6e\u548c\u89d2\u5ea6\narc nami \"\u9f99\u7b14!\" -c ff0000 # \u81ea\u5b9a\u4e49\u7ea2\u8272\u6587\u5b57\narc eto \"Ciallo\uff5e(\u2220\u30fb\u03c9<)\u2312\u2606\" -s 30 -c #fdae92 -r -28 -x 120 -y 80 # \u7ec4\u5408\u591a\u4e2a\u53c2\u6570\n```\n\n## \ud83d\udcdd \u529f\u80fd\u7279\u70b9\n\n- \u2705 \u652f\u6301\u751f\u6210 Arcaea \u89d2\u8272\u7684\u8868\u60c5\u5305\n- \u2705 \u652f\u6301\u547d\u4ee4\u6a21\u5f0f\u548c\u4ea4\u4e92\u6a21\u5f0f\n- \u2705 \u8de8\u5e73\u53f0\u652f\u6301\n- \u2705 \u652f\u6301\u81ea\u5b9a\u4e49\u6587\u5b57\u3001\u4f4d\u7f6e\u3001\u89d2\u5ea6\u3001\u989c\u8272\u7b49\u53c2\u6570\n- \u2705 \u652f\u6301\u591a\u884c\u6587\u672c\u548c\u81ea\u52a8\u6362\u884c\n- \u2705 \u667a\u80fd\u6587\u5b57\u5927\u5c0f\u8c03\u6574\n- \u2705 \u652f\u6301\u4e2d\u6587\u89d2\u8272\u540d\u79f0\n\n## \ud83d\udd27 \u4f9d\u8d56\n\n- Python 3.8+\n- NoneBot2 >= 2.0.0\n- nonebot-plugin-alconna\uff08\u8de8\u5e73\u53f0\u652f\u6301\uff09\n- nonebot-plugin-htmlrender\n- nonebot-plugin-localstore\n\n## \ud83d\udcc4 \u5f00\u6e90\u8bb8\u53ef\n\n\u672c\u9879\u76ee\u57fa\u4e8e [MIT](LICENSE) \u8bb8\u53ef\u8bc1\u5f00\u6e90\u3002\n\n**\u6ce8\u610f\u4e8b\u9879\uff1a**\n- \u672c\u9879\u76ee\u4ee3\u7801\u4f7f\u7528 MIT \u8bb8\u53ef\u8bc1\u5f00\u6e90\uff0c\u60a8\u53ef\u4ee5\u81ea\u7531\u4f7f\u7528\u548c\u4fee\u6539\u4ee3\u7801\n- \u9879\u76ee\u4e2d\u7684\u8868\u60c5\u5305\u7d20\u6750\u6765\u6e90\u4e8e [Xestarrrr](https://x.com/Xestarrrr)\n- \u672c\u9879\u76ee\u57fa\u4e8e [arcaea-stickers](https://github.com/Rosemoe/arcaea-stickers) \u9879\u76ee\u5f00\u53d1\n- \u8bf7\u9075\u5b88\u539f\u59cb\u7d20\u6750\u7684\u4f7f\u7528\u6761\u6b3e\u548c\u9650\u5236\n\n## \ud83d\ude4f \u9e23\u8c22\n\n- [Xestarrrr](https://x.com/Xestarrrr) - \u539f\u59cb\u8868\u60c5\u5305\u7d20\u6750\u521b\u4f5c\u8005\n- [arcaea-stickers](https://github.com/Rosemoe/arcaea-stickers) - \u7f51\u9875\u7248\u8868\u60c5\u5305\u751f\u6210\u5668\n- [nonebot-plugin-pjsk](https://github.com/lgc-NB2Dev/nonebot-plugin-pjsk) - \u53c2\u8003\u4e86\u90e8\u5206\u4ee3\u7801\n- [NoneBot2](https://github.com/nonebot/nonebot2) - \u8de8\u5e73\u53f0 Python \u5f02\u6b65\u673a\u5668\u4eba\u6846\u67b6\n\n## \ud83d\udcde \u8054\u7cfb\n\n<table>\n <tr>\n <td>\u10e6\u4e92\u8054\u7f51\u5c0f\u732b\u7a9d\u10e6(Bot\u7fa4,\u6b22\u8fce\u6765\u73a9)</td>\n <td>JQ-28</td>\n </tr>\n <tr>\n <td>QQ\u7fa4\uff1a806446119</td>\n <td>QQ\uff1a480352716</td>\n </tr>\n</table>\n\n</div>\n\n## \ud83d\udcac \u53cd\u9988\n\n\u5982\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff0c\u6b22\u8fce\uff1a\n- \u63d0\u4ea4 [Issue](https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/issues)\n- \u63d0\u4ea4 [Pull Request](https://github.com/JQ-28/nonebot-plugin-arcaea-sticker/pulls)\n- \u52a0\u5165 QQ \u7fa4\u4ea4\u6d41\uff1a806446119",
"bugtrack_url": null,
"license": "MIT",
"summary": "Arcaea sticker generator plugin for NoneBot2 with cross-platform support",
"version": "0.4.4",
"project_urls": {
"documentation": "https://github.com/JQ-28/nonebot-plugin-arcaea-sticker#readme",
"homepage": "https://github.com/JQ-28/nonebot-plugin-arcaea-sticker",
"repository": "https://github.com/JQ-28/nonebot-plugin-arcaea-sticker"
},
"split_keywords": [
"nonebot2",
" plugin",
" arcaea",
" sticker"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "25e3dd50ac2a889ad8a269bf336eab54b669ac803916adf5d9e47fac281af579",
"md5": "e1fff94f928ff6f52eba5eb222867f96",
"sha256": "3881b9332feaaa88431d8d80d69773199fb98e1f7f580a9ee71c29af699de8e8"
},
"downloads": -1,
"filename": "nonebot_plugin_arcaea_sticker-0.4.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e1fff94f928ff6f52eba5eb222867f96",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 40546461,
"upload_time": "2025-10-26T15:51:46",
"upload_time_iso_8601": "2025-10-26T15:51:46.877040Z",
"url": "https://files.pythonhosted.org/packages/25/e3/dd50ac2a889ad8a269bf336eab54b669ac803916adf5d9e47fac281af579/nonebot_plugin_arcaea_sticker-0.4.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c4d889f78c57faf8e51b0d5b93f79acb512fa3c50a8f29187c51ad663febd92e",
"md5": "a589d18c711476635283d2cc442d4a85",
"sha256": "2a89afa5e3825ded2e9e14a75f041f9a4a8d68bd86c0c99c18f7dc6c9ef9ceeb"
},
"downloads": -1,
"filename": "nonebot_plugin_arcaea_sticker-0.4.4.tar.gz",
"has_sig": false,
"md5_digest": "a589d18c711476635283d2cc442d4a85",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 40539976,
"upload_time": "2025-10-26T15:51:52",
"upload_time_iso_8601": "2025-10-26T15:51:52.969716Z",
"url": "https://files.pythonhosted.org/packages/c4/d8/89f78c57faf8e51b0d5b93f79acb512fa3c50a8f29187c51ad663febd92e/nonebot_plugin_arcaea_sticker-0.4.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-26 15:51:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JQ-28",
"github_project": "nonebot-plugin-arcaea-sticker#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "nonebot-plugin-arcaea-sticker"
}