<div align="center">
<a href="https://v2.nonebot.dev/store"><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo"></a>
<br>
<p><img src="https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg" width="240" alt="NoneBotPluginText"></p>
</div>
<div align="center">
# nonebot-plugin-guess-song
_✨ NoneBot 舞萌猜歌小游戏插件 ✨_
<a href="./LICENSE">
<img src="https://img.shields.io/github/license/apshuang/nonebot-plugin-guess-song.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-guess-song">
<img src="https://img.shields.io/pypi/v/nonebot-plugin-guess-song.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">
</div>
## 📖 介绍
一个音游猜歌插件(主要为舞萌DX maimaiDX提供资源),有开字母、猜曲绘、听歌猜曲、谱面猜歌、线索猜歌等游戏
## 💿 安装
<details open>
<summary>使用 nb-cli 安装</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-guess-song
</details>
<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
<details>
<summary>pip</summary>
pip install nonebot-plugin-guess-song
</details>
<details>
<summary>pdm</summary>
pdm add nonebot-plugin-guess-song
</details>
<details>
<summary>poetry</summary>
poetry add nonebot-plugin-guess-song
</details>
<details>
<summary>conda</summary>
conda install nonebot-plugin-guess-song
</details>
打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入
plugins = ["nonebot_plugin_guess_song"]
</details>
## ⚙️ 配置
⚠️⚠️⚠️请务必注意,若需要使用听歌猜曲以及谱面猜歌,必须先下载并配置ffmpeg⚠️⚠️⚠️
⚠️⚠️⚠️若需要使用谱面猜歌,请安装moviepy==1.0.3(实测1.0.1以下以及最新版本无法使用)⚠️⚠️⚠️
在 nonebot2 项目的`.env`文件中添加下表中的必填配置
| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| character_filter_japenese | 否 | True | 指示开字母游戏中,是否需要过滤掉含有日文字符的歌曲 |
| everyday_is_add_credits | 否 | False | 指示是否需要每天给猜歌答对的用户加积分 |
### 资源需求
本插件需要一些资源(歌曲信息等)才能够正常使用,以下是说明及下载方法、配置教程。
💡**资源需求说明**:
- 最低配置(所有游戏都需要):music_data.json、music_alias.json(在后文的static压缩包中)
- 开字母:无需添加其它资源(可以按需添加[“这么难他都会”](https://github.com/apshuang/nonebot-plugin-guess-song/blob/master/so_hard.jpg)的图片资源到/resources/maimai/so_hard.jpg)
- 猜曲绘:需要添加mai/cover(也在后文的static压缩包中)
- 线索猜歌:需要添加mai/cover(如果添加了音乐资源,还会增加歌曲长度作为线索)
- 听歌猜曲:需要添加music_guo——在动态资源路径/resources下,建立music_guo文件夹,将听歌猜曲文件放入内;
- 谱面猜歌:需要添加chart_resources——在动态资源路径/resources下,建立chart_resources文件夹,将谱面猜歌资源文件放入内(保持每个版本一个文件夹)。
🟩**static文件**:[GitHub Releases下载](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/Static-resources)、[百度云盘](https://pan.baidu.com/s/1K5d7MqcNh83gh9yerfgGPg?pwd=fiwp)
内部包括music_data.json、music_alias.json文件,以及mai/cover,是歌曲的信息与别名,以及歌曲的曲绘。
推荐联合使用[其它maimai插件](https://github.com/Yuri-YuzuChaN/nonebot-plugin-maimaidx)来动态更新歌曲信息与别名信息。
🟩**动态资源文件**(针对听歌猜曲和谱面猜歌,可**按需下载**):
- 听歌猜曲文件(共6.55GB,已切分为五个压缩包,可部分下载):[GitHub Releases下载](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/guess_listen-resources)、[百度云盘](https://pan.baidu.com/s/1vVC8p7HDWfczMswOLmE8Og?pwd=gqu3)
- 谱面猜歌文件(共22.37GB,已划分为按版本聚类,可下载部分版本使用):[GitHub Releases下载](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/guess_chart-resources)、[百度云盘](https://pan.baidu.com/s/1kIMeYv46djxJe_p8DMTtfA?pwd=e6sf)
在动态资源路径/resources下,建立music_guo文件夹,将听歌猜曲文件放入内;建立chart_resources文件夹,将谱面猜歌资源文件放入内(保持每个版本一个文件夹)。
⚠️可以不下载动态资源, 也可以只下载部分动态资源(部分歌曲或部分版本),插件也能正常运行,只不过曲库会略微少一些。⚠️
### 资源目录配置教程
<details>
<summary>点击展开查看项目目录</summary>
```plaintext
CainithmBot/
├── static/
│ ├── mai/
│ │ └── cover/
│ ├── music_data.json # 歌曲信息
│ ├── music_alias.json # 歌曲别名信息
│ └── SourceHanSansSC-Bold.otf # 发送猜歌帮助所需字体
├── resources/
│ ├── music_guo/ # 国服歌曲音乐文件
│ │ ├── 8.mp3
│ │ └── ...
│ ├── chart_resources/ # 谱面猜歌资源文件
│ │ ├── 01. maimai/ # 内部需按版本分开各个文件夹
│ │ │ ├── mp3/
│ │ │ └── mp4/
│ │ ├── 02. maimai PLUS/
│ │ │ ├── mp3/
│ │ │ └── mp4/
│ │ └── ...
│ │ ├── remaster/
│ │ │ ├── mp3/
│ │ │ └── mp4/
└── ...
```
</details>
根据上面的项目目录,我们可以看到,在某个存放资源的根目录(假设这个根目录为`E:/Bot/CainithmBot`)下面,有一个static文件夹和一个resources文件夹,只需要按照上面的指示,将对应的资源放到对应文件夹目录下即可。
同时,本插件使用了nonebot-plugin-localstore插件进行资源管理,所以,比较建议您为本插件单独设置一个资源根目录(因为资源较多),我们继续假设这个资源根目录为`E:/Bot/CainithmBot`,那么您需要在`.env`配置文件中添加以下配置:
```dotenv
LOCALSTORE_PLUGIN_DATA_DIR='
{
"nonebot_plugin_guess_song": "E:/Bot/CainithmBot"
}
'
```
如果您希望直接使用一个全局的资源根目录,则直接通过`nb localstore`,查看全局的Data Dir,并将static和resources文件夹置于这个Data Dir下,就可以使用了!
## 🎉 使用
### 指令表
详细指令表及其高级用法(比如过滤某个版本、某些等级的歌曲)也可以通过“/猜歌帮助”来查看
| 指令 | 权限 | 需要@ | 范围 | 说明 |
|:-----:|:----:|:----:|:----:|:----:|
| /开字母 | 群员 | 否 | 群聊 | 开始开字母游戏 |
| /(连续)听歌猜曲 | 群员 | 否 | 群聊 | 开始(连续)听歌猜曲游戏 |
| /(连续)谱面猜歌 | 群员 | 否 | 群聊 | 开始(连续)谱面猜歌游戏 |
| /(连续)猜曲绘 | 群员 | 否 | 群聊 | 开始(连续)猜曲绘游戏 |
| /(连续)线索猜歌 | 群员 | 否 | 群聊 | 开始(连续)线索猜歌游戏 |
| 猜歌 xxx | 群员 | 否 | 群聊 | 根据已知信息猜测歌曲 |
| 不玩了 | 群员 | 否 | 群聊 | 揭晓当前猜歌的答案 |
| 停止 | 群员 | 否 | 群聊 | 停止连续猜歌 |
| /开启/关闭猜歌 xxx | 管理员/主人 | 否 | 群聊 | 开启或禁用某类或全部猜歌游戏 |
| /猜曲绘配置 xxx | 管理员/主人 | 否 | 群聊 | 进行猜曲绘配置(高斯模糊程度、打乱程度、裁切程度等) |
| /检查歌曲文件完整性 | 主人 | 否 | 群聊 | 检查听歌猜曲的音乐资源 |
| /检查谱面完整性 | 主人 | 否 | 群聊 | 检查谱面猜歌的文件资源 |
## 📝 项目特点
- ✅ 游戏新颖、有趣,更贴合游戏的核心要素(谱面与音乐)
- ✅ 资源配置要求较低,可按需部分下载
- ✅ 性能较高,使用preload技术加快谱面加载速度
- ✅ 框架通用,可扩展性强
- ✅ 使用简单、可使用别名猜歌,用户猜歌方便
- ✅ 贡献了谱面猜歌数据集,可以用于制作猜歌视频
### 效果图



## 🙏 鸣谢
- [maimai插件](https://github.com/Yuri-YuzuChaN/nonebot-plugin-maimaidx) - maimai插件、static资源下载
- [MajdataEdit](https://github.com/LingFeng-bbben/MajdataEdit) - maimai谱面编辑器
- [MajdataEdit_BatchOutput_Tool](https://github.com/apshuang/MajdataEdit_BatchOutput_Tool) - 用于批量导出maimai谱面视频资源
- [NoneBot2](https://github.com/nonebot/nonebot2) - 跨平台 Python 异步机器人框架
## 📞 联系
| 猜你字母Bot游戏群(欢迎加群游玩) | QQ群:925120177 |
| ---------------- | ---------------- |
发现任何问题或有任何建议,欢迎发Issue,也可以加群联系开发团队,感谢!
Raw data
{
"_id": null,
"home_page": null,
"name": "nonebot-plugin-guess-song",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "nonebot2, plugin, maimaiDX, \u821e\u840cDX, guess, song",
"author": null,
"author_email": "ssgXD <554700172@qq.com>, sab_tico <3116295766@qq.com>, WAduck <1447671663@qq.com>, qianorange <2080396637@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/a4/f2/f43a3c80e3d0fa43b2237eee8614257fdaa5fc3676a3ad2cb017f0fab409/nonebot_plugin_guess_song-1.1.4.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <a href=\"https://v2.nonebot.dev/store\"><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/nbp_logo.png\" width=\"180\" height=\"180\" alt=\"NoneBotPluginLogo\"></a>\n <br>\n <p><img src=\"https://github.com/A-kirami/nonebot-plugin-template/blob/resources/NoneBotPlugin.svg\" width=\"240\" alt=\"NoneBotPluginText\"></p>\n</div>\n\n<div align=\"center\">\n\n# nonebot-plugin-guess-song\n\n_\u2728 NoneBot \u821e\u840c\u731c\u6b4c\u5c0f\u6e38\u620f\u63d2\u4ef6 \u2728_\n\n\n<a href=\"./LICENSE\">\n <img src=\"https://img.shields.io/github/license/apshuang/nonebot-plugin-guess-song.svg\" alt=\"license\">\n</a>\n<a href=\"https://pypi.python.org/pypi/nonebot-plugin-guess-song\">\n <img src=\"https://img.shields.io/pypi/v/nonebot-plugin-guess-song.svg\" alt=\"pypi\">\n</a>\n<img src=\"https://img.shields.io/badge/python-3.9+-blue.svg\" alt=\"python\">\n\n</div>\n\n\n## \ud83d\udcd6 \u4ecb\u7ecd\n\n\u4e00\u4e2a\u97f3\u6e38\u731c\u6b4c\u63d2\u4ef6\uff08\u4e3b\u8981\u4e3a\u821e\u840cDX maimaiDX\u63d0\u4f9b\u8d44\u6e90\uff09\uff0c\u6709\u5f00\u5b57\u6bcd\u3001\u731c\u66f2\u7ed8\u3001\u542c\u6b4c\u731c\u66f2\u3001\u8c31\u9762\u731c\u6b4c\u3001\u7ebf\u7d22\u731c\u6b4c\u7b49\u6e38\u620f\n\n## \ud83d\udcbf \u5b89\u88c5\n\n<details open>\n<summary>\u4f7f\u7528 nb-cli \u5b89\u88c5</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e0b\u6253\u5f00\u547d\u4ee4\u884c, \u8f93\u5165\u4ee5\u4e0b\u6307\u4ee4\u5373\u53ef\u5b89\u88c5\n\n nb plugin install nonebot-plugin-guess-song\n\n</details>\n\n<details>\n<summary>\u4f7f\u7528\u5305\u7ba1\u7406\u5668\u5b89\u88c5</summary>\n\u5728 nonebot2 \u9879\u76ee\u7684\u63d2\u4ef6\u76ee\u5f55\u4e0b, \u6253\u5f00\u547d\u4ee4\u884c, \u6839\u636e\u4f60\u4f7f\u7528\u7684\u5305\u7ba1\u7406\u5668, \u8f93\u5165\u76f8\u5e94\u7684\u5b89\u88c5\u547d\u4ee4\n\n<details>\n<summary>pip</summary>\n\n pip install nonebot-plugin-guess-song\n</details>\n<details>\n<summary>pdm</summary>\n\n pdm add nonebot-plugin-guess-song\n</details>\n<details>\n<summary>poetry</summary>\n\n poetry add nonebot-plugin-guess-song\n</details>\n<details>\n<summary>conda</summary>\n\n conda install nonebot-plugin-guess-song\n</details>\n\n\u6253\u5f00 nonebot2 \u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u7684 `pyproject.toml` \u6587\u4ef6, \u5728 `[tool.nonebot]` \u90e8\u5206\u8ffd\u52a0\u5199\u5165\n\n plugins = [\"nonebot_plugin_guess_song\"]\n\n</details>\n\n## \u2699\ufe0f \u914d\u7f6e\n\n\u26a0\ufe0f\u26a0\ufe0f\u26a0\ufe0f\u8bf7\u52a1\u5fc5\u6ce8\u610f\uff0c\u82e5\u9700\u8981\u4f7f\u7528\u542c\u6b4c\u731c\u66f2\u4ee5\u53ca\u8c31\u9762\u731c\u6b4c\uff0c\u5fc5\u987b\u5148\u4e0b\u8f7d\u5e76\u914d\u7f6effmpeg\u26a0\ufe0f\u26a0\ufe0f\u26a0\ufe0f\n\n\u26a0\ufe0f\u26a0\ufe0f\u26a0\ufe0f\u82e5\u9700\u8981\u4f7f\u7528\u8c31\u9762\u731c\u6b4c\uff0c\u8bf7\u5b89\u88c5moviepy==1.0.3\uff08\u5b9e\u6d4b1.0.1\u4ee5\u4e0b\u4ee5\u53ca\u6700\u65b0\u7248\u672c\u65e0\u6cd5\u4f7f\u7528\uff09\u26a0\ufe0f\u26a0\ufe0f\u26a0\ufe0f\n\n\u5728 nonebot2 \u9879\u76ee\u7684`.env`\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e0b\u8868\u4e2d\u7684\u5fc5\u586b\u914d\u7f6e\n\n| \u914d\u7f6e\u9879 | \u5fc5\u586b | \u9ed8\u8ba4\u503c | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|\n| character_filter_japenese | \u5426 | True | \u6307\u793a\u5f00\u5b57\u6bcd\u6e38\u620f\u4e2d\uff0c\u662f\u5426\u9700\u8981\u8fc7\u6ee4\u6389\u542b\u6709\u65e5\u6587\u5b57\u7b26\u7684\u6b4c\u66f2 |\n| everyday_is_add_credits | \u5426 | False | \u6307\u793a\u662f\u5426\u9700\u8981\u6bcf\u5929\u7ed9\u731c\u6b4c\u7b54\u5bf9\u7684\u7528\u6237\u52a0\u79ef\u5206 |\n\n\n### \u8d44\u6e90\u9700\u6c42\n\u672c\u63d2\u4ef6\u9700\u8981\u4e00\u4e9b\u8d44\u6e90\uff08\u6b4c\u66f2\u4fe1\u606f\u7b49\uff09\u624d\u80fd\u591f\u6b63\u5e38\u4f7f\u7528\uff0c\u4ee5\u4e0b\u662f\u8bf4\u660e\u53ca\u4e0b\u8f7d\u65b9\u6cd5\u3001\u914d\u7f6e\u6559\u7a0b\u3002\n\n\ud83d\udca1**\u8d44\u6e90\u9700\u6c42\u8bf4\u660e**\uff1a\n- \u6700\u4f4e\u914d\u7f6e\uff08\u6240\u6709\u6e38\u620f\u90fd\u9700\u8981\uff09\uff1amusic_data.json\u3001music_alias.json\uff08\u5728\u540e\u6587\u7684static\u538b\u7f29\u5305\u4e2d\uff09\n- \u5f00\u5b57\u6bcd\uff1a\u65e0\u9700\u6dfb\u52a0\u5176\u5b83\u8d44\u6e90\uff08\u53ef\u4ee5\u6309\u9700\u6dfb\u52a0[\u201c\u8fd9\u4e48\u96be\u4ed6\u90fd\u4f1a\u201d](https://github.com/apshuang/nonebot-plugin-guess-song/blob/master/so_hard.jpg)\u7684\u56fe\u7247\u8d44\u6e90\u5230/resources/maimai/so_hard.jpg\uff09\n- \u731c\u66f2\u7ed8\uff1a\u9700\u8981\u6dfb\u52a0mai/cover\uff08\u4e5f\u5728\u540e\u6587\u7684static\u538b\u7f29\u5305\u4e2d\uff09\n- \u7ebf\u7d22\u731c\u6b4c\uff1a\u9700\u8981\u6dfb\u52a0mai/cover\uff08\u5982\u679c\u6dfb\u52a0\u4e86\u97f3\u4e50\u8d44\u6e90\uff0c\u8fd8\u4f1a\u589e\u52a0\u6b4c\u66f2\u957f\u5ea6\u4f5c\u4e3a\u7ebf\u7d22\uff09\n- \u542c\u6b4c\u731c\u66f2\uff1a\u9700\u8981\u6dfb\u52a0music_guo\u2014\u2014\u5728\u52a8\u6001\u8d44\u6e90\u8def\u5f84/resources\u4e0b\uff0c\u5efa\u7acbmusic_guo\u6587\u4ef6\u5939\uff0c\u5c06\u542c\u6b4c\u731c\u66f2\u6587\u4ef6\u653e\u5165\u5185\uff1b\n- \u8c31\u9762\u731c\u6b4c\uff1a\u9700\u8981\u6dfb\u52a0chart_resources\u2014\u2014\u5728\u52a8\u6001\u8d44\u6e90\u8def\u5f84/resources\u4e0b\uff0c\u5efa\u7acbchart_resources\u6587\u4ef6\u5939\uff0c\u5c06\u8c31\u9762\u731c\u6b4c\u8d44\u6e90\u6587\u4ef6\u653e\u5165\u5185\uff08\u4fdd\u6301\u6bcf\u4e2a\u7248\u672c\u4e00\u4e2a\u6587\u4ef6\u5939\uff09\u3002\n\n\n\ud83d\udfe9**static\u6587\u4ef6**\uff1a[GitHub Releases\u4e0b\u8f7d](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/Static-resources)\u3001[\u767e\u5ea6\u4e91\u76d8](https://pan.baidu.com/s/1K5d7MqcNh83gh9yerfgGPg?pwd=fiwp)\n\n\u5185\u90e8\u5305\u62ecmusic_data.json\u3001music_alias.json\u6587\u4ef6\uff0c\u4ee5\u53camai/cover\uff0c\u662f\u6b4c\u66f2\u7684\u4fe1\u606f\u4e0e\u522b\u540d\uff0c\u4ee5\u53ca\u6b4c\u66f2\u7684\u66f2\u7ed8\u3002\n\u63a8\u8350\u8054\u5408\u4f7f\u7528[\u5176\u5b83maimai\u63d2\u4ef6](https://github.com/Yuri-YuzuChaN/nonebot-plugin-maimaidx)\u6765\u52a8\u6001\u66f4\u65b0\u6b4c\u66f2\u4fe1\u606f\u4e0e\u522b\u540d\u4fe1\u606f\u3002\n\n\n\ud83d\udfe9**\u52a8\u6001\u8d44\u6e90\u6587\u4ef6**\uff08\u9488\u5bf9\u542c\u6b4c\u731c\u66f2\u548c\u8c31\u9762\u731c\u6b4c\uff0c\u53ef**\u6309\u9700\u4e0b\u8f7d**\uff09\uff1a\n- \u542c\u6b4c\u731c\u66f2\u6587\u4ef6\uff08\u51716.55GB\uff0c\u5df2\u5207\u5206\u4e3a\u4e94\u4e2a\u538b\u7f29\u5305\uff0c\u53ef\u90e8\u5206\u4e0b\u8f7d\uff09\uff1a[GitHub Releases\u4e0b\u8f7d](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/guess_listen-resources)\u3001[\u767e\u5ea6\u4e91\u76d8](https://pan.baidu.com/s/1vVC8p7HDWfczMswOLmE8Og?pwd=gqu3)\n- \u8c31\u9762\u731c\u6b4c\u6587\u4ef6\uff08\u517122.37GB\uff0c\u5df2\u5212\u5206\u4e3a\u6309\u7248\u672c\u805a\u7c7b\uff0c\u53ef\u4e0b\u8f7d\u90e8\u5206\u7248\u672c\u4f7f\u7528\uff09\uff1a[GitHub Releases\u4e0b\u8f7d](https://github.com/apshuang/nonebot-plugin-guess-song/releases/tag/guess_chart-resources)\u3001[\u767e\u5ea6\u4e91\u76d8](https://pan.baidu.com/s/1kIMeYv46djxJe_p8DMTtfA?pwd=e6sf)\n\n\u5728\u52a8\u6001\u8d44\u6e90\u8def\u5f84/resources\u4e0b\uff0c\u5efa\u7acbmusic_guo\u6587\u4ef6\u5939\uff0c\u5c06\u542c\u6b4c\u731c\u66f2\u6587\u4ef6\u653e\u5165\u5185\uff1b\u5efa\u7acbchart_resources\u6587\u4ef6\u5939\uff0c\u5c06\u8c31\u9762\u731c\u6b4c\u8d44\u6e90\u6587\u4ef6\u653e\u5165\u5185\uff08\u4fdd\u6301\u6bcf\u4e2a\u7248\u672c\u4e00\u4e2a\u6587\u4ef6\u5939\uff09\u3002\n\u26a0\ufe0f\u53ef\u4ee5\u4e0d\u4e0b\u8f7d\u52a8\u6001\u8d44\u6e90\uff0c \u4e5f\u53ef\u4ee5\u53ea\u4e0b\u8f7d\u90e8\u5206\u52a8\u6001\u8d44\u6e90\uff08\u90e8\u5206\u6b4c\u66f2\u6216\u90e8\u5206\u7248\u672c\uff09\uff0c\u63d2\u4ef6\u4e5f\u80fd\u6b63\u5e38\u8fd0\u884c\uff0c\u53ea\u4e0d\u8fc7\u66f2\u5e93\u4f1a\u7565\u5fae\u5c11\u4e00\u4e9b\u3002\u26a0\ufe0f\n\n### \u8d44\u6e90\u76ee\u5f55\u914d\u7f6e\u6559\u7a0b\n<details>\n <summary>\u70b9\u51fb\u5c55\u5f00\u67e5\u770b\u9879\u76ee\u76ee\u5f55</summary>\n\n ```plaintext\n CainithmBot/\n \u251c\u2500\u2500 static/\n \u2502 \u251c\u2500\u2500 mai/\n \u2502 \u2502 \u2514\u2500\u2500 cover/\n \u2502 \u251c\u2500\u2500 music_data.json # \u6b4c\u66f2\u4fe1\u606f\n \u2502 \u251c\u2500\u2500 music_alias.json # \u6b4c\u66f2\u522b\u540d\u4fe1\u606f\n \u2502 \u2514\u2500\u2500 SourceHanSansSC-Bold.otf # \u53d1\u9001\u731c\u6b4c\u5e2e\u52a9\u6240\u9700\u5b57\u4f53\n \u251c\u2500\u2500 resources/\n \u2502 \u251c\u2500\u2500 music_guo/ # \u56fd\u670d\u6b4c\u66f2\u97f3\u4e50\u6587\u4ef6\n \u2502 \u2502 \u251c\u2500\u2500 8.mp3\n \u2502 \u2502 \u2514\u2500\u2500 ...\n \u2502 \u251c\u2500\u2500 chart_resources/ # \u8c31\u9762\u731c\u6b4c\u8d44\u6e90\u6587\u4ef6\n \u2502 \u2502 \u251c\u2500\u2500 01. maimai/ # \u5185\u90e8\u9700\u6309\u7248\u672c\u5206\u5f00\u5404\u4e2a\u6587\u4ef6\u5939\n \u2502 \u2502 \u2502 \u251c\u2500\u2500 mp3/\n \u2502 \u2502 \u2502 \u2514\u2500\u2500 mp4/\n \u2502 \u2502 \u251c\u2500\u2500 02. maimai PLUS/\n \u2502 \u2502 \u2502 \u251c\u2500\u2500 mp3/\n \u2502 \u2502 \u2502 \u2514\u2500\u2500 mp4/\n \u2502 \u2502 \u2514\u2500\u2500 ...\n \u2502 \u2502 \u251c\u2500\u2500 remaster/\n \u2502 \u2502 \u2502 \u251c\u2500\u2500 mp3/\n \u2502 \u2502 \u2502 \u2514\u2500\u2500 mp4/\n \u2514\u2500\u2500 ...\n\n ```\n</details>\n\n\n\u6839\u636e\u4e0a\u9762\u7684\u9879\u76ee\u76ee\u5f55\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u5728\u67d0\u4e2a\u5b58\u653e\u8d44\u6e90\u7684\u6839\u76ee\u5f55\uff08\u5047\u8bbe\u8fd9\u4e2a\u6839\u76ee\u5f55\u4e3a`E:/Bot/CainithmBot`\uff09\u4e0b\u9762\uff0c\u6709\u4e00\u4e2astatic\u6587\u4ef6\u5939\u548c\u4e00\u4e2aresources\u6587\u4ef6\u5939\uff0c\u53ea\u9700\u8981\u6309\u7167\u4e0a\u9762\u7684\u6307\u793a\uff0c\u5c06\u5bf9\u5e94\u7684\u8d44\u6e90\u653e\u5230\u5bf9\u5e94\u6587\u4ef6\u5939\u76ee\u5f55\u4e0b\u5373\u53ef\u3002\n\u540c\u65f6\uff0c\u672c\u63d2\u4ef6\u4f7f\u7528\u4e86nonebot-plugin-localstore\u63d2\u4ef6\u8fdb\u884c\u8d44\u6e90\u7ba1\u7406\uff0c\u6240\u4ee5\uff0c\u6bd4\u8f83\u5efa\u8bae\u60a8\u4e3a\u672c\u63d2\u4ef6\u5355\u72ec\u8bbe\u7f6e\u4e00\u4e2a\u8d44\u6e90\u6839\u76ee\u5f55\uff08\u56e0\u4e3a\u8d44\u6e90\u8f83\u591a\uff09\uff0c\u6211\u4eec\u7ee7\u7eed\u5047\u8bbe\u8fd9\u4e2a\u8d44\u6e90\u6839\u76ee\u5f55\u4e3a`E:/Bot/CainithmBot`\uff0c\u90a3\u4e48\u60a8\u9700\u8981\u5728`.env`\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\n```dotenv\nLOCALSTORE_PLUGIN_DATA_DIR='\n{\n \"nonebot_plugin_guess_song\": \"E:/Bot/CainithmBot\"\n} \n'\n```\n\u5982\u679c\u60a8\u5e0c\u671b\u76f4\u63a5\u4f7f\u7528\u4e00\u4e2a\u5168\u5c40\u7684\u8d44\u6e90\u6839\u76ee\u5f55\uff0c\u5219\u76f4\u63a5\u901a\u8fc7`nb localstore`\uff0c\u67e5\u770b\u5168\u5c40\u7684Data Dir\uff0c\u5e76\u5c06static\u548cresources\u6587\u4ef6\u5939\u7f6e\u4e8e\u8fd9\u4e2aData Dir\u4e0b\uff0c\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e86\uff01\n\n\n## \ud83c\udf89 \u4f7f\u7528\n### \u6307\u4ee4\u8868\n\u8be6\u7ec6\u6307\u4ee4\u8868\u53ca\u5176\u9ad8\u7ea7\u7528\u6cd5\uff08\u6bd4\u5982\u8fc7\u6ee4\u67d0\u4e2a\u7248\u672c\u3001\u67d0\u4e9b\u7b49\u7ea7\u7684\u6b4c\u66f2\uff09\u4e5f\u53ef\u4ee5\u901a\u8fc7\u201c/\u731c\u6b4c\u5e2e\u52a9\u201d\u6765\u67e5\u770b\n| \u6307\u4ee4 | \u6743\u9650 | \u9700\u8981@ | \u8303\u56f4 | \u8bf4\u660e |\n|:-----:|:----:|:----:|:----:|:----:|\n| /\u5f00\u5b57\u6bcd | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u5f00\u59cb\u5f00\u5b57\u6bcd\u6e38\u620f |\n| /(\u8fde\u7eed)\u542c\u6b4c\u731c\u66f2 | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u5f00\u59cb(\u8fde\u7eed)\u542c\u6b4c\u731c\u66f2\u6e38\u620f |\n| /(\u8fde\u7eed)\u8c31\u9762\u731c\u6b4c | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u5f00\u59cb(\u8fde\u7eed)\u8c31\u9762\u731c\u6b4c\u6e38\u620f |\n| /(\u8fde\u7eed)\u731c\u66f2\u7ed8 | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u5f00\u59cb(\u8fde\u7eed)\u731c\u66f2\u7ed8\u6e38\u620f |\n| /(\u8fde\u7eed)\u7ebf\u7d22\u731c\u6b4c | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u5f00\u59cb(\u8fde\u7eed)\u7ebf\u7d22\u731c\u6b4c\u6e38\u620f |\n| \u731c\u6b4c xxx | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u6839\u636e\u5df2\u77e5\u4fe1\u606f\u731c\u6d4b\u6b4c\u66f2 |\n| \u4e0d\u73a9\u4e86 | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u63ed\u6653\u5f53\u524d\u731c\u6b4c\u7684\u7b54\u6848 |\n| \u505c\u6b62 | \u7fa4\u5458 | \u5426 | \u7fa4\u804a | \u505c\u6b62\u8fde\u7eed\u731c\u6b4c |\n| /\u5f00\u542f/\u5173\u95ed\u731c\u6b4c xxx | \u7ba1\u7406\u5458/\u4e3b\u4eba | \u5426 | \u7fa4\u804a | \u5f00\u542f\u6216\u7981\u7528\u67d0\u7c7b\u6216\u5168\u90e8\u731c\u6b4c\u6e38\u620f |\n| /\u731c\u66f2\u7ed8\u914d\u7f6e xxx | \u7ba1\u7406\u5458/\u4e3b\u4eba | \u5426 | \u7fa4\u804a | \u8fdb\u884c\u731c\u66f2\u7ed8\u914d\u7f6e\uff08\u9ad8\u65af\u6a21\u7cca\u7a0b\u5ea6\u3001\u6253\u4e71\u7a0b\u5ea6\u3001\u88c1\u5207\u7a0b\u5ea6\u7b49\uff09 |\n| /\u68c0\u67e5\u6b4c\u66f2\u6587\u4ef6\u5b8c\u6574\u6027 | \u4e3b\u4eba | \u5426 | \u7fa4\u804a | \u68c0\u67e5\u542c\u6b4c\u731c\u66f2\u7684\u97f3\u4e50\u8d44\u6e90 |\n| /\u68c0\u67e5\u8c31\u9762\u5b8c\u6574\u6027 | \u4e3b\u4eba | \u5426 | \u7fa4\u804a | \u68c0\u67e5\u8c31\u9762\u731c\u6b4c\u7684\u6587\u4ef6\u8d44\u6e90 |\n\n\n## \ud83d\udcdd \u9879\u76ee\u7279\u70b9\n\n- \u2705 \u6e38\u620f\u65b0\u9896\u3001\u6709\u8da3\uff0c\u66f4\u8d34\u5408\u6e38\u620f\u7684\u6838\u5fc3\u8981\u7d20\uff08\u8c31\u9762\u4e0e\u97f3\u4e50\uff09\n- \u2705 \u8d44\u6e90\u914d\u7f6e\u8981\u6c42\u8f83\u4f4e\uff0c\u53ef\u6309\u9700\u90e8\u5206\u4e0b\u8f7d\n- \u2705 \u6027\u80fd\u8f83\u9ad8\uff0c\u4f7f\u7528preload\u6280\u672f\u52a0\u5feb\u8c31\u9762\u52a0\u8f7d\u901f\u5ea6\n- \u2705 \u6846\u67b6\u901a\u7528\uff0c\u53ef\u6269\u5c55\u6027\u5f3a\n- \u2705 \u4f7f\u7528\u7b80\u5355\u3001\u53ef\u4f7f\u7528\u522b\u540d\u731c\u6b4c\uff0c\u7528\u6237\u731c\u6b4c\u65b9\u4fbf\n- \u2705 \u8d21\u732e\u4e86\u8c31\u9762\u731c\u6b4c\u6570\u636e\u96c6\uff0c\u53ef\u4ee5\u7528\u4e8e\u5236\u4f5c\u731c\u6b4c\u89c6\u9891\n\n\n### \u6548\u679c\u56fe\n\n\n\n\n\n## \ud83d\ude4f \u9e23\u8c22\n\n- [maimai\u63d2\u4ef6](https://github.com/Yuri-YuzuChaN/nonebot-plugin-maimaidx) - maimai\u63d2\u4ef6\u3001static\u8d44\u6e90\u4e0b\u8f7d\n- [MajdataEdit](https://github.com/LingFeng-bbben/MajdataEdit) - maimai\u8c31\u9762\u7f16\u8f91\u5668\n- [MajdataEdit_BatchOutput_Tool](https://github.com/apshuang/MajdataEdit_BatchOutput_Tool) - \u7528\u4e8e\u6279\u91cf\u5bfc\u51famaimai\u8c31\u9762\u89c6\u9891\u8d44\u6e90\n- [NoneBot2](https://github.com/nonebot/nonebot2) - \u8de8\u5e73\u53f0 Python \u5f02\u6b65\u673a\u5668\u4eba\u6846\u67b6\n\n\n## \ud83d\udcde \u8054\u7cfb\n\n| \u731c\u4f60\u5b57\u6bcdBot\u6e38\u620f\u7fa4\uff08\u6b22\u8fce\u52a0\u7fa4\u6e38\u73a9\uff09 | QQ\u7fa4\uff1a925120177 |\n| ---------------- | ---------------- |\n\n\u53d1\u73b0\u4efb\u4f55\u95ee\u9898\u6216\u6709\u4efb\u4f55\u5efa\u8bae\uff0c\u6b22\u8fce\u53d1Issue\uff0c\u4e5f\u53ef\u4ee5\u52a0\u7fa4\u8054\u7cfb\u5f00\u53d1\u56e2\u961f\uff0c\u611f\u8c22\uff01",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Guess song plugin for Nonebot2",
"version": "1.1.4",
"project_urls": {
"documentation": "https://github.com/apshuang/nonebot-plugin-guess-song#readme",
"homepage": "https://github.com/apshuang/nonebot-plugin-guess-song",
"repository": "https://github.com/apshuang/nonebot-plugin-guess-song"
},
"split_keywords": [
"nonebot2",
" plugin",
" maimaidx",
" \u821e\u840cdx",
" guess",
" song"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c198f92e0b0728af3b8657deeab4df5faa10771bb2b487e860e707868c50fada",
"md5": "3cd5084e65e3b06f59711c60747bfbbc",
"sha256": "1247fa420ce6239f3e79ee9a3fa85c0ee19b070724fc0e8f703a8e5a7b2ae4ef"
},
"downloads": -1,
"filename": "nonebot_plugin_guess_song-1.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3cd5084e65e3b06f59711c60747bfbbc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 42484,
"upload_time": "2025-02-25T03:24:34",
"upload_time_iso_8601": "2025-02-25T03:24:34.696283Z",
"url": "https://files.pythonhosted.org/packages/c1/98/f92e0b0728af3b8657deeab4df5faa10771bb2b487e860e707868c50fada/nonebot_plugin_guess_song-1.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a4f2f43a3c80e3d0fa43b2237eee8614257fdaa5fc3676a3ad2cb017f0fab409",
"md5": "31287eb6c594fb8f5c81e2c5810a9e4e",
"sha256": "5a67c5d87e89d30a817b0832ebff3235f389c943f58cb166c43883b85b29f576"
},
"downloads": -1,
"filename": "nonebot_plugin_guess_song-1.1.4.tar.gz",
"has_sig": false,
"md5_digest": "31287eb6c594fb8f5c81e2c5810a9e4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 36226,
"upload_time": "2025-02-25T03:24:36",
"upload_time_iso_8601": "2025-02-25T03:24:36.379801Z",
"url": "https://files.pythonhosted.org/packages/a4/f2/f43a3c80e3d0fa43b2237eee8614257fdaa5fc3676a3ad2cb017f0fab409/nonebot_plugin_guess_song-1.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-25 03:24:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "apshuang",
"github_project": "nonebot-plugin-guess-song#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nonebot-plugin-guess-song"
}