Metadata-Version: 2.1
Name: nonebot-plugin-orangejuice
Version: 1.0.0
Summary: Sorabot Implemention
Author-email: Polaris_Light <995905922@qq.com>
License: MIT License
        
        Copyright (c) 2024 Polaris Light
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/FDCraft/nonebot-plugin-orangejuice
Keywords: orangejuice
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: nonebot2>=2.0.0
Requires-Dist: nonebot-adapter-onebot>=2.0.0-beta.1
Requires-Dist: nonebot-plugin-apscheduler>=0.4.0
Requires-Dist: cachetools>=5.0.0
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: aiosqlite>=0.20.0
Requires-Dist: aiomysql>=0.2.0
Requires-Dist: FuzzyWuzzy>=0.18.0
Requires-Dist: python-Levenshtein>=0.25.0

<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-orangejuice

_✨ [Sorabot](https://100oj.com/zh/%E5%B7%A5%E5%85%B7/SoraBot%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)的Nonebot实现✨_

<a href="./LICENSE">
    <img src="https://img.shields.io/github/license/FDCraft/nonebot-plugin-orangejuice.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-orangejuice">
    <img src="https://img.shields.io/pypi/v/nonebot-plugin-orangejuice.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="python">

</div>

##  ⚠ 警告

本项目尚处于快速开发阶段，配置文件可能会经常变动，在更新版本前请务必做好数据的备份！

## 📖 介绍

[Sorabot](https://100oj.com/zh/%E5%B7%A5%E5%85%B7/SoraBot%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)的 Nonebot 实现，提供 100% Orange Juice 的卡面查询、组卡器查询、数据统计、表情短码与相关的娱乐功能。

## 💿 安装

<details open>
<summary>使用 nb-cli 安装</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装

    nb plugin install nonebot-plugin-orangejuice

</details>

<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令

<details>
<summary>pip</summary>

    pip install nonebot-plugin-orangejuice
</details>
<details>
<summary>pdm</summary>

    pdm add nonebot-plugin-orangejuice
</details>
<details>
<summary>poetry</summary>

    poetry add nonebot-plugin-orangejuice
</details>
<details>
<summary>conda</summary>

    conda install nonebot-plugin-orangejuice
</details>

打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入

    plugins = ["nonebot_plugin_orangejuice"]

</details>

## 🎉 .env 配置

| 配置项       | 说明                             | 默认值       |
| ------------ | -------------------------------- | ------------ |
| OJ_DATA_PATH | 储存插件用户信息与配置文件的目录 | 'data/100oj' |
| MATCH_SCORE | 查卡与查图标时模糊匹配的最低分数 | 80 |

## 🎉 使用

与 [Sorabot](https://100oj.com/zh/%E5%B7%A5%E5%85%B7/SoraBot%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97) 的功能大致相似，指令头均为 \#。

<details open>
<summary>单独的命令</summary>

| 命令             | 说明                               |
| --------------  | --------------------------------- |
| #help           | 查看帮助信息。                     |
| #card \<name\>  | 查询橙汁卡牌信息，支持模糊搜索。 部分别名（如泥头车 -> 亚里希安罗妮）会使用插件内置的正则匹配表强制匹配。  |
| #icon \<name\>  | 查询橙汁卡牌图标，支持模糊搜索。 部分别名（如泥头车 -> 亚里希安罗妮）会使用插件内置的正则匹配表强制匹配。  |
| #deck \<code\>  | 获取卡组图片。后跟 12 位卡组代码。  |
| #m \<count\>    | 查询当前混合器与未来混合器。        |
| #lulu           | 模拟露露的幸运蛋。                 |
| #7              | 模拟浮游炮展开。                   |
| #mw             | 模拟奇迹漫步。                     |
| :\<emote\>:     | 发送橙汁表情。                     |

</details>

<detials open>
<summary>橙汁数据查询</summary>

| 命令                                   | 说明                                                                                    |
| -------------------------------------  | --------------------------------------------------------------------------------------- |
| #stat                                  | 查看数据查询模块的帮助。                                                                   |
| #stat bind \<steam64id\>               | 用于将 steam 绑定到 qq。重复使用会更新绑定。                                                |
| #stat unbind                           | 删除自己的绑定。                                                                           |
| #stat me \[limit\]                     | 在绑定 steam 后，使用本命令来快速查询自己的数据。limit为显示的最高胜率角色数，可以不填，默认为5。|
| #stat \<steam64id\> \[limit\]          | 使用 steam64id 快速查询对应玩家的数据。                                                     |
| #stat \<@qq\> \[limit\]                | 通过 At 来查询对应玩家的统计数据。                                                          |
| #stat type \<id\>                      | 切换生成的统计图片样式。id目前可取0~7，其中0为初始样式。                                      |
| #stat pin \<id\>                       | 切换个人 pin 样式。                                                                        |
| #stats modify \<qq\> \<key\> \<value\> | 直接修改数据库中某个玩家的数据，用于给予 pin。仅 Bot 的所有者可用使用本命令。                   |

</detials>

<details open>
<summary>管理模块</summary>

此模块命令仅群管理与 Bot 的所有者可以使用。带 groupid 参数的命令都需要合适的权限。

| 命令                                                      | 说明                                                                           |
| -------------------------------------------------------  | ------------------------------------------------------------------------------ |
| #ess module\|-m enable\|-on \<modulename\> \[groupid\]   | 在群聊\[groupid\]开启名为\[modulename\]的模块。不填写\[groupid\]时默认使用本群id。 |
| #ess module\|-m disable\|-off \<modulename\> \[groupid\] | 在群聊\[groupid\]关闭名为\[modulename\]的模块。不填写\[groupid\]时默认使用本群id。 |
| #ess module\|-m list\|-l \[groupid\]                     | 列出群聊\[groupid]的模块列表。不填写\[groupid\]时默认使用本群id。                  |
| #ess mute \<qq\|@qq\> \[time\] \[reason\]                | 禁言\[qq\]。time 如为纯数字，则单位为s；接受 `数字 + s m h d`。                    |
| #ess save\|-s                                            | 将当前所有配置保存到本地文件。                                                    |
| #ess load\|-l                                            | 从本地文件重新载入全部配置。                                                      |

</details>

## 特别感谢

- [nonebot/nonebot2](https://github.com/nonebot/nonebot2)
- [Fruitbat Factory](https://fruitbatfactory.com/)
- [Sorabot](https://100oj.com/zh/%E5%B7%A5%E5%85%B7/SoraBot%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)
