mirror of
https://github.com/ClovertaTheTrilobita/SanYeCao-Nonebot.git
synced 2026-04-01 22:04:51 +00:00
docs(README): 更新功能描述和项目结构说明
This commit is contained in:
parent
0f4de05c15
commit
3ec6f1f0b3
2 changed files with 330 additions and 196 deletions
504
README.md
504
README.md
|
|
@ -40,7 +40,96 @@
|
||||||
- [x] 搜索B站视频
|
- [x] 搜索B站视频
|
||||||
- [ ] 今日老婆
|
- [ ] 今日老婆
|
||||||
- [x] 群老婆
|
- [x] 群老婆
|
||||||
|
- [x] 鲁迅说
|
||||||
|
- [x] 喜报、悲报
|
||||||
|
- [x] 查询cf比赛
|
||||||
|
- [x] 日报
|
||||||
|
- [x] 查询热门轻小说
|
||||||
|
- [x] 获取新番信息
|
||||||
|
|
||||||
|
#### 待办
|
||||||
|
- **功能描述**: 用户可以添加、查询和删除个人待办事项。
|
||||||
|
- **指令**: `/待办`, `/待办查询`, `/新建待办`, `/删除待办`
|
||||||
|
|
||||||
|
#### 天气
|
||||||
|
- **功能描述**: 提供当前天气信息。
|
||||||
|
- **指令**: `/天气`
|
||||||
|
|
||||||
|
#### 今日运势
|
||||||
|
- **功能描述**: 提供用户的今日运势。
|
||||||
|
- **指令**: `/今日运势`
|
||||||
|
|
||||||
|
#### 今日塔罗
|
||||||
|
- **功能描述**: 提供一张随机的塔罗牌及其解读。
|
||||||
|
- **指令**: `/今日塔罗`
|
||||||
|
|
||||||
|
#### 点歌
|
||||||
|
- **功能描述**: 通过网易云音乐API点歌,并将音乐文件以QQ语音的形式发送至群聊。 快点一首你喜欢的歌给群友听吧!
|
||||||
|
- **指令**: `/点歌`
|
||||||
|
- **注意事项**:
|
||||||
|
- 使用网易云点歌需要另外安装依赖: npm install crypto-js
|
||||||
|
- 初次使用需要扫码登录网易云音乐。
|
||||||
|
- 若cookie过期,需要删除 `cloud_music_cookies.cookie` 文件并重新扫码登录。
|
||||||
|
|
||||||
|
#### 图
|
||||||
|
- **功能描述**: 返回图库中的图片。
|
||||||
|
- **指令**: `/图`
|
||||||
|
|
||||||
|
#### 摸摸头
|
||||||
|
- **功能描述**: 与机器人进行互动,发送“摸摸头”的回复。
|
||||||
|
- **指令**: `/摸摸头`
|
||||||
|
|
||||||
|
#### 接入语言模型
|
||||||
|
- **功能描述**: 使用第三方大语言模型进行交互。
|
||||||
|
- **指令**: `/开启ai`, `/关闭ai` `/角色列表`,`/添加人设`, `/更新人设`, `/删除人设`, `/切换人设`, `/管理员注册`
|
||||||
|
- **注意事项**:
|
||||||
|
- 需要管理员身份认证。
|
||||||
|
- AI功能为每个群单独启动,默认关闭。
|
||||||
|
|
||||||
|
#### 搜索B站视频
|
||||||
|
- **功能描述**: 通过BV号搜索B站视频,并将视频文件发送至群聊。
|
||||||
|
- **指令**: `/BV搜索 <BV号>`
|
||||||
|
- **注意事项**:
|
||||||
|
- <b>🚨注意:</b> 由于QQ的限制,官方bot无法发送文件大于10M。
|
||||||
|
- 需要安装 Chrome Driver。您需要首先确保自己的电脑安装了[<b>Chrome Driver</b>](https://developer.chrome.google.cn/docs/chromedriver?hl=zh-cn)。
|
||||||
|
- 若没安装过,请参考教程:[chromedriver下载与安装方法,亲测可用-CSDN博客](https://blog.csdn.net/zhoukeguai/article/details/113247342)
|
||||||
|
- 程序第一次启动时,会获取B站的cookie保存至本地,使用selenium库完成,下载可能较慢,需要稍等一会儿。
|
||||||
|
|
||||||
|
#### 今日老婆
|
||||||
|
- **功能描述**: 提供今日老婆的信息。
|
||||||
|
- **指令**: `/今日老婆`
|
||||||
|
- **状态**: 待开发
|
||||||
|
|
||||||
|
#### 群老婆
|
||||||
|
- **功能描述**: 提供群内成员的老婆信息。
|
||||||
|
- **指令**: `/群老婆`
|
||||||
|
|
||||||
|
#### 鲁迅说
|
||||||
|
- **功能描述**: 提供鲁迅的经典语录。
|
||||||
|
- **指令**: `/鲁迅说`,`/luxun`
|
||||||
|
|
||||||
|
#### 喜报、悲报
|
||||||
|
- **功能描述**: 提供喜报和悲报的信息。
|
||||||
|
- **指令**: `/喜报`, `/悲报`
|
||||||
|
|
||||||
|
#### 查询cf比赛
|
||||||
|
- **功能描述**: 通过CodeForces官方API查询近期比赛。
|
||||||
|
- **指令**: `/cf`
|
||||||
|
|
||||||
|
#### 日报
|
||||||
|
- **功能描述**: 提供每日的新闻或信息。
|
||||||
|
- **指令**: `/日报`
|
||||||
|
|
||||||
|
#### 查询热门轻小说
|
||||||
|
- **功能描述**: 查询当前热门的轻小说。
|
||||||
|
- **指令**: `/轻小说`
|
||||||
|
|
||||||
|
#### 获取新番信息
|
||||||
|
- **功能描述**: 获取当季动漫的新番信息和预期新番上线信息。
|
||||||
|
- **指令**: `/本季新番`, `/新番观察`
|
||||||
|
|
||||||
|
<br>
|
||||||
|
好的,我会对您提供的内容进行优化,使其更加清晰和易于理解。以下是优化后的版本:
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -102,7 +191,7 @@ DRIVER=~fastapi+~httpx+~websockets
|
||||||
|
|
||||||
QQ_IS_SANDBOX=false
|
QQ_IS_SANDBOX=false
|
||||||
|
|
||||||
QQ_BOTS='
|
QQ_BOTS="
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "xxx",
|
"id": "xxx",
|
||||||
|
|
@ -114,7 +203,7 @@ QQ_BOTS='
|
||||||
"use_websocket": true
|
"use_websocket": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
'
|
"
|
||||||
```
|
```
|
||||||
分别在id、token、secret处填写你的机器人ID,机器人Token和Apple Secret,需从[QQ开放平台](https://q.qq.com/)获取。
|
分别在id、token、secret处填写你的机器人ID,机器人Token和Apple Secret,需从[QQ开放平台](https://q.qq.com/)获取。
|
||||||
|
|
||||||
|
|
@ -132,7 +221,9 @@ python bot.by
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
### 🗒️三、项目结构
|
当然可以!以下是根据您提供的文件内容整理后的项目结构:
|
||||||
|
|
||||||
|
### 🗒️ 三、项目结构
|
||||||
|
|
||||||
```
|
```
|
||||||
SanYeCao-Nonebot:.
|
SanYeCao-Nonebot:.
|
||||||
|
|
@ -151,44 +242,207 @@ SanYeCao-Nonebot:.
|
||||||
│
|
│
|
||||||
└─src
|
└─src
|
||||||
├─clover_image
|
├─clover_image
|
||||||
|
│ └─get_image.py
|
||||||
│
|
│
|
||||||
├─clover_music
|
├─clover_music
|
||||||
│ ├─cloud_music
|
│ ├─cloud_music
|
||||||
|
│ │ ├─cloud_music_cookies.cookie
|
||||||
|
│ │ └─qrcode.png
|
||||||
│ └─netease_music
|
│ └─netease_music
|
||||||
|
|
│
|
||||||
├─clover_openai
|
├─clover_openai
|
||||||
|
│ ├─api_config_example.py
|
||||||
|
│ └─api_config.py
|
||||||
│
|
│
|
||||||
├─clover_sqlite
|
├─clover_sqlite
|
||||||
│ ├─data_init
|
│ ├─data_init
|
||||||
|
│ │ ├─init_tables.py
|
||||||
|
│ │ └─...
|
||||||
│ └─models
|
│ └─models
|
||||||
|
│ ├─models.py
|
||||||
|
│ └─...
|
||||||
│
|
│
|
||||||
├─clover_videos
|
├─clover_videos
|
||||||
│ └─billibili
|
│ └─billibili
|
||||||
|
│ ├─bilibili_search.py
|
||||||
|
│ └─...
|
||||||
│
|
│
|
||||||
├─configs
|
├─configs
|
||||||
|
│ ├─path_config.py
|
||||||
|
│ ├─api_config_example.py
|
||||||
│ └─utils
|
│ └─utils
|
||||||
|
│ ├─utils.py
|
||||||
|
│ └─...
|
||||||
│
|
│
|
||||||
├─plugins
|
├─plugins
|
||||||
│ └─test
|
│ ├─check.py
|
||||||
|
│ ├─todo.py
|
||||||
|
│ ├─weather.py
|
||||||
|
│ ├─fortune.py
|
||||||
|
│ ├─tarot.py
|
||||||
|
│ ├─music.py
|
||||||
|
│ ├─image.py
|
||||||
|
│ ├─petpet.py
|
||||||
|
│ ├─openai.py
|
||||||
|
│ ├─bilibili.py
|
||||||
|
│ ├─news.py
|
||||||
|
│ ├─light_novel.py
|
||||||
|
│ ├─anime.py
|
||||||
|
│ └─...
|
||||||
│
|
│
|
||||||
└─resources
|
└─resources
|
||||||
├─font
|
├─font
|
||||||
|
│ ├─font.ttf
|
||||||
|
│ └─...
|
||||||
├─image
|
├─image
|
||||||
│ ├─codeforces
|
│ ├─codeforces
|
||||||
|
│ │ ├─image1.png
|
||||||
|
│ │ └─...
|
||||||
│ ├─github_repo
|
│ ├─github_repo
|
||||||
|
│ │ ├─image2.png
|
||||||
|
│ │ └─...
|
||||||
│ ├─good_bad_news
|
│ ├─good_bad_news
|
||||||
|
│ │ ├─image3.png
|
||||||
|
│ │ └─...
|
||||||
│ ├─MaoYuNa
|
│ ├─MaoYuNa
|
||||||
|
│ │ ├─image4.png
|
||||||
|
│ │ └─...
|
||||||
│ ├─rua
|
│ ├─rua
|
||||||
|
│ │ ├─image5.png
|
||||||
|
│ │ └─...
|
||||||
│ ├─tarot
|
│ ├─tarot
|
||||||
│ │ ├─sideTarotImages
|
│ │ ├─sideTarotImages
|
||||||
|
│ │ │ ├─image6.png
|
||||||
|
│ │ │ └─...
|
||||||
│ │ └─TarotImages
|
│ │ └─TarotImages
|
||||||
|
│ │ ├─image7.png
|
||||||
|
│ │ └─...
|
||||||
│ └─who_say
|
│ └─who_say
|
||||||
│
|
│ ├─image8.png
|
||||||
|
│ └─...
|
||||||
├─log
|
├─log
|
||||||
|
│ ├─bot.log
|
||||||
|
│ └─...
|
||||||
├─temp
|
├─temp
|
||||||
|
│ ├─temp_file1.tmp
|
||||||
|
│ └─...
|
||||||
└─videos
|
└─videos
|
||||||
|
├─video1.mp4
|
||||||
|
└─...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### 详细说明
|
||||||
|
|
||||||
|
- **根目录文件**
|
||||||
|
- `.gitignore`: 忽略文件配置。
|
||||||
|
- `bot.py`: 机器人启动文件。
|
||||||
|
- `chat_bot.db`: SQLite 数据库文件。
|
||||||
|
- `example.env.prod`: 示例环境配置文件。
|
||||||
|
- `package-lock.json`: npm 依赖锁定文件。
|
||||||
|
- `package.json`: npm 依赖配置文件。
|
||||||
|
- `pyproject.toml`: Python 项目配置文件。
|
||||||
|
- `README.md`: 项目说明文档。
|
||||||
|
- `requirements.txt`: Python 依赖配置文件。
|
||||||
|
|
||||||
|
- **node_modules**
|
||||||
|
- `crypto-js`: 加密库。
|
||||||
|
|
||||||
|
- **src 目录**
|
||||||
|
- **clover_image**
|
||||||
|
- `get_image.py`: 图片获取模块。
|
||||||
|
|
||||||
|
- **clover_music**
|
||||||
|
- **cloud_music**
|
||||||
|
- `cloud_music_cookies.cookie`: 网易云音乐 cookie 文件。
|
||||||
|
- `qrcode.png`: 网易云音乐扫码登录二维码。
|
||||||
|
- **netease_music**
|
||||||
|
- 网易云音乐相关模块。
|
||||||
|
|
||||||
|
- **clover_openai**
|
||||||
|
- `api_config_example.py`: 示例 API 配置文件。
|
||||||
|
- `api_config.py`: 实际 API 配置文件。
|
||||||
|
|
||||||
|
- **clover_sqlite**
|
||||||
|
- **data_init**
|
||||||
|
- `init_tables.py`: 数据库初始化脚本。
|
||||||
|
- 其他初始化脚本。
|
||||||
|
- **models**
|
||||||
|
- `models.py`: 数据库模型定义。
|
||||||
|
- 其他模型定义文件。
|
||||||
|
|
||||||
|
- **clover_videos**
|
||||||
|
- **bilibili**
|
||||||
|
- `bilibili_search.py`: B站视频搜索模块。
|
||||||
|
- 其他 B站相关模块。
|
||||||
|
|
||||||
|
- **configs**
|
||||||
|
- `path_config.py`: 路径配置文件。
|
||||||
|
- `api_config_example.py`: 示例 API 配置文件。
|
||||||
|
- **utils**
|
||||||
|
- `utils.py`: 工具函数。
|
||||||
|
- 其他工具函数文件。
|
||||||
|
|
||||||
|
- **plugins**
|
||||||
|
- `check.py`: 指令检查模块。
|
||||||
|
- `todo.py`: 待办事项模块。
|
||||||
|
- `weather.py`: 天气模块。
|
||||||
|
- `fortune.py`: 运势模块。
|
||||||
|
- `tarot.py`: 塔罗牌模块。
|
||||||
|
- `music.py`: 点歌模块。
|
||||||
|
- `image.py`: 图片模块。
|
||||||
|
- `petpet.py`: 摸摸头模块。
|
||||||
|
- `openai.py`: AI 模块。
|
||||||
|
- `bilibili.py`: B站视频模块。
|
||||||
|
- `news.py`: 日报模块。
|
||||||
|
- `light_novel.py`: 轻小说模块。
|
||||||
|
- `anime.py`: 新番信息模块。
|
||||||
|
- 其他插件模块。
|
||||||
|
|
||||||
|
- **resources**
|
||||||
|
- **font**
|
||||||
|
- `font.ttf`: 字体文件。
|
||||||
|
- 其他字体文件。
|
||||||
|
- **image**
|
||||||
|
- **codeforces**
|
||||||
|
- `image1.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **github_repo**
|
||||||
|
- `image2.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **good_bad_news**
|
||||||
|
- `image3.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **MaoYuNa**
|
||||||
|
- `image4.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **rua**
|
||||||
|
- `image5.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **tarot**
|
||||||
|
- **sideTarotImages**
|
||||||
|
- `image6.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **TarotImages**
|
||||||
|
- `image7.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **who_say**
|
||||||
|
- `image8.png`: 图片文件。
|
||||||
|
- 其他图片文件。
|
||||||
|
- **log**
|
||||||
|
- `bot.log`: 日志文件。
|
||||||
|
- 其他日志文件。
|
||||||
|
- **temp**
|
||||||
|
- `temp_file1.tmp`: 临时文件。
|
||||||
|
- 其他临时文件。
|
||||||
|
- **videos**
|
||||||
|
- `video1.mp4`: 视频文件。
|
||||||
|
- 其他视频文件。
|
||||||
|
|
||||||
|
<br>
|
||||||
|
### 📦三、插件
|
||||||
|
- 插件的目录位于src/plugins中
|
||||||
|
- 插件的配置文件位于src/configs中
|
||||||
- 基本插件存储在plugins目录中,启动即可使用
|
- 基本插件存储在plugins目录中,启动即可使用
|
||||||
- 部分插件通过调用其它目录中的方法完成其功能
|
- 部分插件通过调用其它目录中的方法完成其功能
|
||||||
|
|
||||||
|
|
@ -201,247 +455,127 @@ SanYeCao-Nonebot:.
|
||||||
机器人的指令列表在[<B>src/plugins/check.py</B>](src/plugins/check.py)中,有如下指令:
|
机器人的指令列表在[<B>src/plugins/check.py</B>](src/plugins/check.py)中,有如下指令:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
menu = ['/今日运势','/今日塔罗','/图','/点歌','/摸摸头','/群老婆','/今日老婆', "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册",'/待办', '/test','/天气','我喜欢你', "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报", "/luxun","/鲁迅说","/奶龙", "/repo", "/info", "/menu"]
|
menu = ["/重启","/今日运势","/今日塔罗","/图","/日报","/点歌","/摸摸头","/群老婆","/今日老婆", "/开启ai","/关闭ai",
|
||||||
|
"/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册","/待办", "/test","/天气",
|
||||||
|
"我喜欢你", "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报",
|
||||||
|
"/luxun","/鲁迅说", "/奶龙", "/repo", "/info", "/menu", "/轻小说","/本季新番","/新番观察"]
|
||||||
```
|
```
|
||||||
|
|
||||||
输入其它指令机器人会回复听不懂哦。
|
输入其它指令机器人会回复听不懂哦。
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
#### ☄️待办、摸一摸、今日运势的初始化
|
|
||||||
|
|
||||||
机器人中已经配置好数据库初始化的脚本。若您是第一次启动机器人。会在项目根目录下自动创建<b><i>chat_bot.db</i></b>(数据库文件)
|
|
||||||
|
|
||||||
chat_bot.db中包括11张表:
|
### 🎨 功能补充说明
|
||||||
|
|
||||||
```sql
|
#### 📄 需要替换的文件
|
||||||
--摸一摸文本数据
|
|
||||||
qr_touch
|
|
||||||
--摸一摸日志
|
|
||||||
qr_touch_log
|
|
||||||
|
|
||||||
--今日运势文本数据
|
首先找到 [**src/configs/api_config_example.py**](src/configs/api_config_example.py) 文件,并根据需要替换以下配置项:
|
||||||
qr_fortune
|
|
||||||
--今日运势日志,存储该用户是否已经查询过运势
|
|
||||||
qr_fortune_log
|
|
||||||
|
|
||||||
--塔罗牌
|
|
||||||
major_arcana
|
|
||||||
--塔罗牌使用 日志
|
|
||||||
major_arcana_log
|
|
||||||
|
|
||||||
--用户表
|
|
||||||
user_list
|
|
||||||
--用户待办表
|
|
||||||
user_todo_list
|
|
||||||
|
|
||||||
--群老婆
|
|
||||||
wife
|
|
||||||
|
|
||||||
--所有模型设定
|
|
||||||
chat_role
|
|
||||||
--群聊AI状态表
|
|
||||||
group_chat_role
|
|
||||||
```
|
|
||||||
|
|
||||||
数据库相关脚本存放在 [<b>src/clover_sqlite/models</b>](src/clover_sqlite/models) 目录下。我们使用Tortoise ORM管理数据库。
|
|
||||||
|
|
||||||
每次启动机器人,程序会自动检查上述11张表是否存在,有表缺失则会在数据库中自动创建对应的表。
|
|
||||||
|
|
||||||
对已存在的表不做处理。
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
#### ⛅从图床发送图片
|
|
||||||
|
|
||||||
##### 介绍:
|
|
||||||
|
|
||||||
机器人支持[<b>SMMS图床</b>](https://sm.ms/)、[<b>聚合图床</b>](https://www.superbed.cn/)、从**本地**发送图片。
|
|
||||||
|
|
||||||
获取图片的方法统一编写在[<B>src/clover_image/get_image.py</B>](src/clover_image/get_image.py)下。
|
|
||||||
|
|
||||||
##### 使用:
|
|
||||||
|
|
||||||
首先找到[<b>src/configs/api_config_example.py</b>](src/configs/api_config_example.py)
|
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
app_id = "<KEY>"
|
||||||
app_id="<KEY>"
|
bot_account = "<KEY>"
|
||||||
bot_account= "<KEY>"
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
图床配置
|
图床配置
|
||||||
"""
|
"""
|
||||||
# SMMS图床相关配置
|
# SMMS图床相关配置
|
||||||
smms_token= "<KEY>" # sm.ms图床的token
|
smms_token = "<KEY>" # sm.ms图床的token
|
||||||
smms_image_upload_history= "https://sm.ms/api/v2/upload_history" # sm.ms图床获取上传图片历史API地址
|
smms_image_upload_history = "https://sm.ms/api/v2/upload_history" # sm.ms图床获取上传图片历史API地址
|
||||||
|
|
||||||
# 聚合图床相关配置
|
# 聚合图床相关配置
|
||||||
ju_he_token= "<KEY>" # 聚合图床的token
|
ju_he_token = "<KEY>" # 聚合图床的token
|
||||||
ju_he_image_list= "https://api.superbed.cn/timeline" # 聚合图床获取上传图片历史API地址
|
ju_he_image_list = "https://api.superbed.cn/timeline" # 聚合图床获取上传图片历史API地址
|
||||||
|
|
||||||
|
"""
|
||||||
|
AI
|
||||||
|
"""
|
||||||
|
admin_password = "123456" # 默认注册管理员密码
|
||||||
|
# 图灵机器人相关配置
|
||||||
|
v3url = "https://api.vveai.com/v1/chat/completions"
|
||||||
|
v3key = "<KEY>"
|
||||||
|
# DeepSeek相关配置
|
||||||
|
deepseek_url = "https://api.deepseek.com"
|
||||||
|
deepseek_key = "<KEY>"
|
||||||
|
|
||||||
|
"""
|
||||||
|
Wenku8账号
|
||||||
|
"""
|
||||||
|
wenku8_username = "<user_name>"
|
||||||
|
wenku8_password = "<passwd>"
|
||||||
|
|
||||||
|
"""
|
||||||
|
多米HTTP代理api
|
||||||
|
"""
|
||||||
|
proxy_api = "<KEY>"
|
||||||
```
|
```
|
||||||
|
|
||||||
将你的机器人app_id,smms图床Token和聚合图床Token替换上述<i>\<KEY></i>(可以根据自身需求选填)
|
|
||||||
|
|
||||||
之后在[<B>get_image.py</B>](src/clover_image/get_image.py)中找到对应的方法,根据自身需求调用。
|
将你的 `app_id` 和 `smms_token` 替换为实际值(可以根据自身需求选填),然后将文件重命名为 **api_config.py**。
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
#### 🎵使用网易云API实现点歌
|
#### 🎵 使用网易云API实现点歌
|
||||||
|
|
||||||
##### 介绍:
|
若您是初次使用点歌功能,在群聊中 @ 机器人后,机器人会提示:
|
||||||
|
|
||||||
机器人支持在线点歌,将音乐文件以QQ语音的形式发送至群聊。
|
|
||||||
|
|
||||||
快点一首你喜欢的歌给群友听吧!
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
##### 使用:
|
|
||||||
|
|
||||||
若您是初次使用点歌功能,在群聊中@机器人后,机器人会提示:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
登录失效,请联系管理员进行登录
|
登录失效,请联系管理员进行登录
|
||||||
```
|
```
|
||||||
|
|
||||||
此时会在[<b>src/music</b>](src/clover_music)目录下生成一张<i><b>qrcode.png</b></i>,您需要使用手机端网易云音乐**扫码**该二维码,登录您的网易云账号。
|
|
||||||
|
|
||||||
<br>
|
此时会在 [**src/music**](src/clover_music) 目录下生成一张 **qrcode.png**,您需要使用手机端网易云音乐扫码该二维码,登录您的网易云账号。
|
||||||
|
|
||||||
<b>🚨注意:</b>我们使用cookie存储用户登录信息,所以会存在登录过期的情况,若cookie过期,机器人会提示
|
<b>注意:</b> 我们使用 cookie 存储用户登录信息,所以会存在登录过期的情况。若 cookie 过期,机器人会提示:
|
||||||
|
|
||||||
```
|
```
|
||||||
歌曲音频获取失败:登录信息失效。
|
歌曲音频获取失败:登录信息失效。
|
||||||
```
|
```
|
||||||
|
|
||||||
此时需要**删除**[<b>cloud_music_cookies.cookie</b>](cloud_music_cookies.cookie)并重新扫码登录。
|
|
||||||
|
此时需要 **删除** [**cloud_music_cookies.cookie**](cloud_music_cookies.cookie) 并重新扫码登录。
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
#### 💡使用第三方语言模型
|
#### ✋ 管理员身份认证
|
||||||
|
|
||||||
打开[<b>src/configs/api_config_example.py</b>](src/configs/api_config_example.py),找到
|
##### 介绍
|
||||||
|
|
||||||
|
机器人现已更新管理员机制,机器人管理员可以控制是否使用第三方大语言模型进行交互。后续其它功能更新中。
|
||||||
|
|
||||||
|
##### 使用
|
||||||
|
|
||||||
|
###### 1. 注册为管理员 <a id="admin_control"></a>
|
||||||
|
|
||||||
|
在 [**src/configs/api_config_example.py**](src/configs/api_config_example.py) 内,找到:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
"""
|
admin_password = "123456" # 默认注册管理员密码
|
||||||
AI
|
|
||||||
"""
|
|
||||||
admin_password= "123456" # 默认注册管理员密码
|
|
||||||
# 图灵机器人相关配置
|
|
||||||
v3url= "https://api.vveai.com/v1/chat/completions"
|
|
||||||
v3key= "<KEY>"
|
|
||||||
# DeepSeek相关配置
|
|
||||||
deepseek_url= "https://api.deepseek.com"
|
|
||||||
deepseek_key= "<KEY>"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
将你自己的deepseek url和api填入,并将文件重命名为<b><i>api_config.py</i></b>。
|
|
||||||
|
|
||||||
再设置一个管理员认证密码,详见[下一节](#admin_control)。
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
#### ✋实现管理员身份认证
|
|
||||||
|
|
||||||
##### 介绍:
|
|
||||||
|
|
||||||
机器人现已更新管理员机制,机器人管理员可以控制是否使用第三方大语言模型进行交互。
|
|
||||||
|
|
||||||
后续其它功能更新中。
|
|
||||||
|
|
||||||
##### 使用:
|
|
||||||
|
|
||||||
###### 1.注册为管理员<a id="admin_control"></a>
|
|
||||||
|
|
||||||
在[**src/configs/api_config_example.py**](src/configs/api_config_example.py)内,找到
|
|
||||||
|
|
||||||
```python
|
|
||||||
admin_password= "123456" # 默认注册管理员密码
|
|
||||||
```
|
|
||||||
|
|
||||||
可以更改为自己的密码。
|
可以更改为自己的密码。
|
||||||
|
|
||||||
<br>
|
设置好密码后,在 QQ 中 at 你的机器人,格式为:
|
||||||
|
|
||||||
设置好密码后,在qq中at你的机器人,格式为
|
|
||||||
|
|
||||||
```
|
```
|
||||||
@<机器人名称> /管理员注册 <密码>
|
@<机器人名称> /管理员注册 <密码>
|
||||||
```
|
```
|
||||||
|
|
||||||
例如,对三叶草进行管理员注册时,假如密码是123456,需要
|
|
||||||
|
例如,对三叶草进行管理员注册时,假如密码是 123456,需要:
|
||||||
|
|
||||||
```
|
```
|
||||||
@三叶草 /管理员注册 123456
|
@三叶草 /管理员注册 123456
|
||||||
```
|
```
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
<b>🚨注意:</b>管理员密码请不要泄露给其他人,建议定期更换密码。
|
<b>注意:</b> 管理员密码请不要泄露给其他人,建议定期更换密码。
|
||||||
|
|
||||||
<br>
|
注册成为管理员之后,你的 `member_openid` 将会被保存至 `chatbot.db` 下的 `admin_list` 表中。
|
||||||
|
|
||||||
注册成为管理员之后,你的member_openid将会被保存至<i>chatbot.db下的admin_list</i>表中。
|
希望这些优化后的说明能更好地帮助您!如果有任何进一步的需求或修改,请告诉我。
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
###### 2.控制语言模型是否可用<a id="ai_control"></a>
|
|
||||||
|
|
||||||
在已经是管理员的情况下,你可以对机器人发送
|
|
||||||
|
|
||||||
```
|
|
||||||
@<机器人名称> /开启ai
|
|
||||||
```
|
|
||||||
|
|
||||||
实现对AI功能的开关。若此前AI功能处于关闭状态,则机器人会回复
|
|
||||||
|
|
||||||
```
|
|
||||||
成功开启语言模型对话功能。一起来聊天吧~
|
|
||||||
```
|
|
||||||
|
|
||||||
表示AI功能启动成功。反之则回复
|
|
||||||
|
|
||||||
```
|
|
||||||
成功关闭语言模型对话功能。
|
|
||||||
```
|
|
||||||
|
|
||||||
AI功能为每个群单独启动,默认关闭。
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
#### 🔆CodeForces比赛查询
|
|
||||||
|
|
||||||
机器人通过访问CodeForces官方API实现获取CF近期比赛。
|
|
||||||
|
|
||||||
对机器人发送
|
|
||||||
|
|
||||||
```
|
|
||||||
/cf
|
|
||||||
```
|
|
||||||
|
|
||||||
可查询近期比赛。
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
#### 📺B站视频搜索
|
|
||||||
|
|
||||||
##### 介绍:
|
|
||||||
|
|
||||||
机器人使用哔哩哔哩视频API,可将视频文件发送至群聊。
|
|
||||||
|
|
||||||
指令:
|
|
||||||
|
|
||||||
```
|
|
||||||
@<机器人名称> /BV搜索 <BV号>
|
|
||||||
```
|
|
||||||
|
|
||||||
<b>🚨注意:</b>由于QQ的限制,官方bot无法发送时长超出2分钟的视频。
|
|
||||||
|
|
||||||
##### 使用:
|
|
||||||
|
|
||||||
您需要首先确保自己的电脑安装了[<b>Chrome Driver</b>](https://developer.chrome.google.cn/docs/chromedriver?hl=zh-cn)。
|
|
||||||
|
|
||||||
若没安装过,请参考教程:[chromedriver下载与安装方法,亲测可用-CSDN博客](https://blog.csdn.net/zhoukeguai/article/details/113247342)
|
|
||||||
|
|
||||||
程序第一次启动时,会获取B站的cookie保存至本地,使用selenium库完成,下载可能较慢,需要稍等一会儿。
|
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,15 @@ from src.clover_openai import ai_chat
|
||||||
from src.clover_sqlite.models.chat import GroupChatRole
|
from src.clover_sqlite.models.chat import GroupChatRole
|
||||||
from src.clover_sqlite.models.user import UserList
|
from src.clover_sqlite.models.user import UserList
|
||||||
|
|
||||||
menu = ['/重启','/今日运势','/今日塔罗','/图','/日报','/点歌','/摸摸头','/群老婆','/今日老婆', "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册",
|
menu = ["/重启","/今日运势","/今日塔罗","/图","/日报","/点歌","/摸摸头","/群老婆","/今日老婆", "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册",
|
||||||
'/待办', '/test','/天气','我喜欢你', "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报", "/luxun","/鲁迅说",
|
"/待办", "/test","/天气","我喜欢你", "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf","/B站搜索", "/BV搜索", "/喜报", "/悲报", "/luxun","/鲁迅说",
|
||||||
"/奶龙", "/repo", "/info", "/menu", "/轻小说",'/本季新番','/新番观察']
|
"/奶龙", "/repo", "/info", "/menu", "/轻小说","/本季新番","/新番观察"]
|
||||||
|
|
||||||
send_menu = ["/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册", '/待办', '/test', '我喜欢你', "❤", "/menu"]
|
send_menu = ["/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册", "/待办", "/test", "我喜欢你", "❤", "/menu"]
|
||||||
|
|
||||||
async def check_value_in_menu(message: MessageEvent) -> bool:
|
async def check_value_in_menu(message: MessageEvent) -> bool:
|
||||||
value = message.get_plaintext().strip().split(" ")
|
value = message.get_plaintext().strip().split(" ")
|
||||||
if hasattr(message, 'group_openid'): # 是否有属性group_openid,即是否为群聊消息
|
if hasattr(message, "group_openid"): # 是否有属性group_openid,即是否为群聊消息
|
||||||
group_id = message.group_openid
|
group_id = message.group_openid
|
||||||
else:
|
else:
|
||||||
group_id = "C2C" # 非群聊消息,存为c2c
|
group_id = "C2C" # 非群聊消息,存为c2c
|
||||||
|
|
@ -32,7 +32,7 @@ check = on_message(rule=to_me() & Rule(check_value_in_menu) ,block=True, priorit
|
||||||
@check.handle()
|
@check.handle()
|
||||||
async def handle_function(message: MessageEvent):
|
async def handle_function(message: MessageEvent):
|
||||||
|
|
||||||
if hasattr(message, 'group_openid'):
|
if hasattr(message, "group_openid"):
|
||||||
group_openid = message.group_openid
|
group_openid = message.group_openid
|
||||||
else:
|
else:
|
||||||
group_openid = "C2C"
|
group_openid = "C2C"
|
||||||
|
|
@ -46,11 +46,11 @@ async def handle_function(message: MessageEvent):
|
||||||
await check.finish(message=Message(random.choice(text_list)))
|
await check.finish(message=Message(random.choice(text_list)))
|
||||||
|
|
||||||
text_list = [
|
text_list = [
|
||||||
"是什么呢?猫猫没有识别到,喵~"+'\n'+"(๑>ڡ<)☆ 给个准信,别让我瞎猜",
|
"是什么呢?猫猫没有识别到,喵~"+"\n"+"(๑>ڡ<)☆ 给个准信,别让我瞎猜",
|
||||||
"是想让我干嘛呢?猫猫一头雾水,喵~" + '\n' + "(๑•̀ㅂ•́)و✧ 直接跟我说,别这么含蓄,喵~",
|
"是想让我干嘛呢?猫猫一头雾水,喵~" + "\n" + "(๑•̀ㅂ•́)و✧ 直接跟我说,别这么含蓄,喵~",
|
||||||
"是啥意思呀?猫猫完全没搞懂,喵~" + '\n' + "(๑・.・๑) 别折腾我啦,说明白,喵~",
|
"是啥意思呀?猫猫完全没搞懂,喵~" + "\n" + "(๑・.・๑) 别折腾我啦,说明白,喵~",
|
||||||
"是特殊信号?猫猫听不懂,喵~" + '\n' + "(๑・̀︶・́)و 下个明确指令,喵~",
|
"是特殊信号?猫猫听不懂,喵~" + "\n" + "(๑・̀︶・́)و 下个明确指令,喵~",
|
||||||
"难道是新指令?猫猫一脸茫然,喵~" + '\n' + "(๑>ڡ<)☆ 说详细点,别这么隐晦,喵~",
|
"难道是新指令?猫猫一脸茫然,喵~" + "\n" + "(๑>ڡ<)☆ 说详细点,别这么隐晦,喵~",
|
||||||
]
|
]
|
||||||
|
|
||||||
get_menu = on_command("menu", rule=to_me(), priority=10, block=True)
|
get_menu = on_command("menu", rule=to_me(), priority=10, block=True)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue