diff --git a/.gitignore b/.gitignore
index 0a04256..496cf17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,7 +8,7 @@ chat_bot.db-wal
chat_bot.db-shm
cloud_music_cookies.cookie
chat_history.json
-/src/music/qrcode.png
+/src/clover_music/qrcode.png
/chat.db
/chat_bot.db-wal
/chat_bot.db-shm
diff --git a/README.md b/README.md
index b8bdce2..437b238 100644
--- a/README.md
+++ b/README.md
@@ -168,7 +168,7 @@ python bot.by
#### 📲所有指令
-机器人的指令列表在[src/qq_plugins/check.py](src/qq_plugins/check.py)中,有如下指令:
+机器人的指令列表在[src/qq_plugins/check.py](src/plugins/check.py)中,有如下指令:
```python
menu = ['/今日运势','/天气','/图','/点歌','/摸摸头','/群老婆','/今日老婆', '/待办', '/test', '我喜欢你', "❤", "/待办查询", "/新建待办", "/删除待办", "/开启ai", "/关闭ai", "/cf", "/管理员确认"]
@@ -207,7 +207,7 @@ admin_list
group_list
```
-初始化相关脚本存放在 [src/my_sqlite/data_init](src/my_sqlite/data_init) 目录下。
+初始化相关脚本存放在 [src/my_sqlite/data_init](src/clover_sqlite/data_init) 目录下。
每次启动机器人,程序会自动检查上述8张表是否存在,有表缺失则会在数据库中自动创建对应的表。
@@ -221,17 +221,17 @@ group_list
机器人支持[SMMS图床](https://sm.ms/)、[聚合图床](https://www.superbed.cn/)、从**本地**发送图片。
-获取图片的方法统一编写在[src/image/get_image.py](src/image/get_image.py)下。
+获取图片的方法统一编写在[src/image/get_image.py](src/clover_image/get_image.py)下。
##### 使用:
-首先找到[src/image/config/image.yaml](src/image/config/image.yaml)
+首先找到[src/image/config/image.yaml](src/clover_image/config/image.yaml)
```yaml
image:
app_id: ""
- image_local_qq_image_path: "src/image/qq_image"
- image_local_path: "src/image/MaoYuNa"
+ image_local_qq_image_path: "src/clover_image/qq_image"
+ image_local_path: "src/clover_image/MaoYuNa"
#SMMS图床相关配置
smms_token: "" # sm.ms图床的token
smms_image_upload_history: "https://sm.ms/api/v2/upload_history" # sm.ms图床获取上传图片历史API地址
@@ -242,7 +242,7 @@ image:
将你的机器人app_id,smms图床Token和聚合图床Token替换上述\(可以根据自身需求选填)
-之后在[get_image.py](src/image/get_image.py)中找到对应的方法,根据自身需求调用。
+之后在[get_image.py](src/clover_image/get_image.py)中找到对应的方法,根据自身需求调用。
@@ -266,7 +266,7 @@ image:
登录失效,请联系管理员进行登录
```
-此时会在[src/music](src/music)目录下生成一张qrcode.png,您需要使用手机端网易云音乐**扫码**该二维码,登录您的网易云账号。
+此时会在[src/music](src/clover_music)目录下生成一张qrcode.png,您需要使用手机端网易云音乐**扫码**该二维码,登录您的网易云账号。
@@ -276,7 +276,7 @@ image:
#### 💡使用第三方语言模型
-打开[src/ai_chat/config/example.chat_ai.yaml](src/ai_chat/config/chat_ai.yaml)
+打开[src/ai_chat/config/example.chat_ai.yaml](src/clover_openai/config/chat_ai.yaml)
```yaml
chat_ai:
@@ -305,7 +305,7 @@ chat_ai:
###### 1.注册为管理员
-在[src/ai_chat/config/example.chat_ai.yaml](src/ai_chat/config/chat_ai.yaml)内,找到
+在[src/ai_chat/config/example.chat_ai.yaml](src/clover_openai/config/chat_ai.yaml)内,找到
```yaml
admin_password: "" # 设置管理员认证密码
diff --git a/bot.py b/bot.py
index c55311b..bdfd08f 100644
--- a/bot.py
+++ b/bot.py
@@ -9,7 +9,7 @@ driver.register_adapter(QQAdapter) # 注册QQ适配器
nonebot.load_from_toml("pyproject.toml")
logger.add("src/resources/log/error.log", level="ERROR", format=default_format, rotation="1 week")
-from src.my_sqlite.data_init.db_connect import disconnect, init
+from src.clover_sqlite.data_init.db_connect import disconnect, init
driver.on_startup(init)
driver.on_shutdown(disconnect)
diff --git a/pyproject.toml b/pyproject.toml
index 0f03a06..982f3e7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,5 +10,5 @@ adapters = [
{ name = "QQ", module_name = "nonebot.adapters.qq" }
]
plugins = []
-plugin_dirs = ["src/qq_plugins"]
+plugin_dirs = ["src/plugins"]
builtin_plugins = ["echo"]
diff --git a/src/image/get_image.py b/src/clover_image/get_image.py
similarity index 100%
rename from src/image/get_image.py
rename to src/clover_image/get_image.py
diff --git a/src/music/cloud_music/agent.py b/src/clover_music/cloud_music/agent.py
similarity index 93%
rename from src/music/cloud_music/agent.py
rename to src/clover_music/cloud_music/agent.py
index 01d9e6c..28a62b2 100644
--- a/src/music/cloud_music/agent.py
+++ b/src/clover_music/cloud_music/agent.py
@@ -25,10 +25,10 @@ def djs(js):
break
return jst
def get_login_js():
- return djs('src/music/cloud_music/jsdm.js')
+ return djs('src/clover_music/cloud_music/jsdm.js')
def get_param_js():
- return djs('src/music/cloud_music/param.js')
+ return djs('src/clover_music/cloud_music/param.js')
# 获取ptqrtoken
def ptqrtoken(qrsign):
diff --git a/src/music/cloud_music/cloud_music.py b/src/clover_music/cloud_music/cloud_music.py
similarity index 97%
rename from src/music/cloud_music/cloud_music.py
rename to src/clover_music/cloud_music/cloud_music.py
index 654b875..a9330cb 100644
--- a/src/music/cloud_music/cloud_music.py
+++ b/src/clover_music/cloud_music/cloud_music.py
@@ -9,7 +9,7 @@ from io import BytesIO
from random import Random
from Crypto.Cipher import AES
from graiax import silkcoder
-import src.music.cloud_music.agent as agent
+import src.clover_music.cloud_music.agent as agent
requests.packages.urllib3.disable_warnings()
@@ -60,8 +60,8 @@ def get_music(id):
"""
使用二维码登录网易云音乐,需要先获取二维码的key,然后使用该key生成二维码,扫描二维码登录,最后通过登录接口 返回cookie 保存起来
"""
-save_path = os.getcwd()+'/src/music/netease_music'
-qrcode_path = os.getcwd()+'/src/music'
+save_path = os.getcwd()+'/src/clover_music/netease_music'
+qrcode_path = os.getcwd()+'/src/clover_music'
# 判断cookie是否有效
diff --git a/src/music/cloud_music/jsdm.js b/src/clover_music/cloud_music/jsdm.js
similarity index 100%
rename from src/music/cloud_music/jsdm.js
rename to src/clover_music/cloud_music/jsdm.js
diff --git a/src/music/cloud_music/param.js b/src/clover_music/cloud_music/param.js
similarity index 100%
rename from src/music/cloud_music/param.js
rename to src/clover_music/cloud_music/param.js
diff --git a/src/ai_chat/ai_chat.py b/src/clover_openai/ai_chat.py
similarity index 96%
rename from src/ai_chat/ai_chat.py
rename to src/clover_openai/ai_chat.py
index 9561bbe..9ba43ee 100644
--- a/src/ai_chat/ai_chat.py
+++ b/src/clover_openai/ai_chat.py
@@ -1,6 +1,6 @@
import openai
import requests
-from src.my_sqlite.models.chat import GroupChatRole
+from src.clover_sqlite.models.chat import GroupChatRole
from src.configs.api_config import v3url, v3key, deepseek_url, deepseek_key
openai.api_key = deepseek_key
diff --git a/src/my_sqlite/data_init/data_init.py b/src/clover_sqlite/data_init/data_init.py
similarity index 95%
rename from src/my_sqlite/data_init/data_init.py
rename to src/clover_sqlite/data_init/data_init.py
index bcaae6a..e9f65ae 100644
--- a/src/my_sqlite/data_init/data_init.py
+++ b/src/clover_sqlite/data_init/data_init.py
@@ -31,7 +31,7 @@ def todo_init():
"""
def execute_init_file3():
# 拼接文件的完整路径
- file_path = os.getcwd() + "/src/my_sqlite/data_init/todo_init.py"
+ file_path = os.getcwd() + "/src/clover_sqlite/data_init/todo_init.py"
init_file_path = os.path.join(os.path.dirname(__file__), file_path)
try:
# 执行初始化文件
diff --git a/src/my_sqlite/data_init/db_connect.py b/src/clover_sqlite/data_init/db_connect.py
similarity index 100%
rename from src/my_sqlite/data_init/db_connect.py
rename to src/clover_sqlite/data_init/db_connect.py
diff --git a/src/my_sqlite/models/ban.py b/src/clover_sqlite/models/ban.py
similarity index 98%
rename from src/my_sqlite/models/ban.py
rename to src/clover_sqlite/models/ban.py
index 95696a9..1744fa5 100644
--- a/src/my_sqlite/models/ban.py
+++ b/src/clover_sqlite/models/ban.py
@@ -1,7 +1,7 @@
import time
from tortoise import fields
from typing_extensions import Self
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class BanConsole(Model):
id = fields.IntField(primary_key=True, generated=True, auto_increment=True)
diff --git a/src/my_sqlite/models/chat.py b/src/clover_sqlite/models/chat.py
similarity index 99%
rename from src/my_sqlite/models/chat.py
rename to src/clover_sqlite/models/chat.py
index f98327c..28e3456 100644
--- a/src/my_sqlite/models/chat.py
+++ b/src/clover_sqlite/models/chat.py
@@ -2,7 +2,7 @@ from typing import Any
from tortoise import fields
from typing_extensions import Self
from tortoise.fields import JSONField
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class ChatRole(Model):
diff --git a/src/my_sqlite/models/fortune.py b/src/clover_sqlite/models/fortune.py
similarity index 99%
rename from src/my_sqlite/models/fortune.py
rename to src/clover_sqlite/models/fortune.py
index ff3f164..d647856 100644
--- a/src/my_sqlite/models/fortune.py
+++ b/src/clover_sqlite/models/fortune.py
@@ -2,7 +2,7 @@ import random
from datetime import datetime
from tortoise import fields
from typing_extensions import Self
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class QrFortune(Model):
"""
diff --git a/src/my_sqlite/models/tarot.py b/src/clover_sqlite/models/tarot.py
similarity index 99%
rename from src/my_sqlite/models/tarot.py
rename to src/clover_sqlite/models/tarot.py
index aacccc6..bff75ee 100644
--- a/src/my_sqlite/models/tarot.py
+++ b/src/clover_sqlite/models/tarot.py
@@ -3,7 +3,7 @@ import random
from datetime import datetime
from tortoise import fields
from typing_extensions import Self
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
from src.configs.path_config import tarots_img_path
@@ -88,7 +88,7 @@ class MajorArcanaLog(Model):
'ints': ints,
'name': model.name,
'meaning': meaning,
- 'image': image,
+ 'clover_image': image,
'create_time':datetime.now().date()
}
diff --git a/src/my_sqlite/models/to_do.py b/src/clover_sqlite/models/to_do.py
similarity index 96%
rename from src/my_sqlite/models/to_do.py
rename to src/clover_sqlite/models/to_do.py
index 58c7cae..76094dc 100644
--- a/src/my_sqlite/models/to_do.py
+++ b/src/clover_sqlite/models/to_do.py
@@ -1,6 +1,6 @@
from tortoise import fields
from typing_extensions import Self
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class ToDoList(Model):
diff --git a/src/my_sqlite/models/touch.py b/src/clover_sqlite/models/touch.py
similarity index 99%
rename from src/my_sqlite/models/touch.py
rename to src/clover_sqlite/models/touch.py
index edd2cac..0536956 100644
--- a/src/my_sqlite/models/touch.py
+++ b/src/clover_sqlite/models/touch.py
@@ -2,7 +2,7 @@ from datetime import datetime
import random
from tortoise import fields
from typing_extensions import Self
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class QrTouch(Model):
diff --git a/src/my_sqlite/models/user.py b/src/clover_sqlite/models/user.py
similarity index 98%
rename from src/my_sqlite/models/user.py
rename to src/clover_sqlite/models/user.py
index eb3e831..e9fa579 100644
--- a/src/my_sqlite/models/user.py
+++ b/src/clover_sqlite/models/user.py
@@ -1,7 +1,7 @@
from datetime import datetime, timedelta
import random
from tortoise import fields
-from src.my_sqlite.data_init.db_connect import Model
+from src.clover_sqlite.data_init.db_connect import Model
class UserList(Model):
user_id = fields.CharField(max_length=64, description="用户member_openid")
diff --git a/src/videos/billibili/biliVideos.py b/src/clover_videos/billibili/biliVideos.py
similarity index 100%
rename from src/videos/billibili/biliVideos.py
rename to src/clover_videos/billibili/biliVideos.py
diff --git a/src/configs/api_config_example.py b/src/configs/api_config_example.py
index 51420f0..2be9b39 100644
--- a/src/configs/api_config_example.py
+++ b/src/configs/api_config_example.py
@@ -8,18 +8,18 @@ bot_account= ""
# SMMS图床相关配置
smms_token= "" # 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= "" # 聚合图床的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"
+v3url= "https://api.vveai.com/v1/chat/completions"
v3key= ""
# DeepSeek相关配置
deepseek_url= "https://api.deepseek.com"
diff --git a/src/configs/path_config.py b/src/configs/path_config.py
index 7d09456..c173aec 100644
--- a/src/configs/path_config.py
+++ b/src/configs/path_config.py
@@ -1,7 +1,7 @@
import os
from pathlib import Path
-path = os.getcwd()+'/src/resources/image'
+path = os.getcwd()+'/src/resources/clover_image'
#塔罗牌图片路径
@@ -16,7 +16,7 @@ rua_png = path+'/rua/'
# 图片路径
-IMAGE_PATH = Path() / "resources" / "image"
+IMAGE_PATH = Path() / "resources" / "clover_image"
# 语音路径
RECORD_PATH = Path() / "resources" / "record"
# 文本路径
diff --git a/src/qq_plugins/bili_vid_search.py b/src/plugins/bili_vid_search.py
similarity index 96%
rename from src/qq_plugins/bili_vid_search.py
rename to src/plugins/bili_vid_search.py
index 8e4c413..de345ee 100644
--- a/src/qq_plugins/bili_vid_search.py
+++ b/src/plugins/bili_vid_search.py
@@ -5,7 +5,7 @@ import nonebot.adapters.qq.exception
from nonebot import on_command
from nonebot.rule import to_me
from nonebot.adapters.qq import MessageSegment,MessageEvent, Message
-import src.videos.billibili.biliVideos as biliVideos
+import src.clover_videos.billibili.biliVideos as biliVideos
bili_vid = on_command("B站搜索",rule=to_me(), priority=10, block=True)
@bili_vid.handle()
@@ -70,7 +70,7 @@ async def get_video_file(message: MessageEvent):
# biliVideos.transcode_video(f"{cid}.mp4",f"{cid}-o.mp4")
try:
- # await bili_bv_search.send(Message(MessageSegment.file_video(Path(f"./src/videos/file/{cid}.mp4"))))
+ # await bili_bv_search.send(Message(MessageSegment.file_video(Path(f"./src/clover_videos/file/{cid}.mp4"))))
await bili_bv_search.send(MessageSegment.video(video_url))
except nonebot.adapters.qq.exception.ActionFailed as e:
print("\033[32m" + str(time.strftime("%m-%d %H:%M:%S")) +"\033[0m [" + "\033[31;1mFAILED\033[0m" + "]" + "\033[31;1m nonebot.adapters.qq.exception.ActionFailed \033[0m" + str(e))
@@ -102,7 +102,7 @@ async def get_video_file(message: MessageEvent):
# biliVideos.video_download(video_url, cid)
try:
- # await bili_bv_search.send(Message(MessageSegment.file_video(Path(f"./src/videos/file/{cid}.mp4"))))
+ # await bili_bv_search.send(Message(MessageSegment.file_video(Path(f"./src/clover_videos/file/{cid}.mp4"))))
await bili_bv_search.send(MessageSegment.video(video_url))
except nonebot.adapters.qq.exception.ActionFailed as e:
print("\033[32m" + str(time.strftime("%m-%d %H:%M:%S")) +
diff --git a/src/qq_plugins/chat.py b/src/plugins/chat.py
similarity index 98%
rename from src/qq_plugins/chat.py
rename to src/plugins/chat.py
index 140a6b5..a4c5a96 100644
--- a/src/qq_plugins/chat.py
+++ b/src/plugins/chat.py
@@ -2,7 +2,7 @@ import re
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import MessageEvent
-from src.my_sqlite.models.chat import ChatRole, GroupChatRole
+from src.clover_sqlite.models.chat import ChatRole, GroupChatRole
from src.configs.api_config import admin_password
diff --git a/src/qq_plugins/check.py b/src/plugins/check.py
similarity index 95%
rename from src/qq_plugins/check.py
rename to src/plugins/check.py
index ffa611a..0fcbd2d 100644
--- a/src/qq_plugins/check.py
+++ b/src/plugins/check.py
@@ -7,9 +7,9 @@ from nonebot.rule import Rule, to_me
from nonebot.plugin import on_command, on_keyword
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment
-from src.ai_chat import ai_chat
-from src.my_sqlite.models.chat import GroupChatRole
-from src.my_sqlite.models.user import UserList
+from src.clover_openai import ai_chat
+from src.clover_sqlite.models.chat import GroupChatRole
+from src.clover_sqlite.models.user import UserList
import platform
import psutil
import time
@@ -87,7 +87,7 @@ async def github_repo():
content = "三叶草bot仓库地址\n一起来搭个机器人吧😆"
msg = Message([
- MessageSegment.file_image(Path("src/resources/image/github_repo/SanYeCao-Nonebot3.png")),
+ MessageSegment.file_image(Path("src/resources/clover_image/github_repo/SanYeCao-Nonebot3.png")),
MessageSegment.text(content),
])
await repository.finish(msg)
diff --git a/src/qq_plugins/cloudMusic.py b/src/plugins/cloudMusic.py
similarity index 95%
rename from src/qq_plugins/cloudMusic.py
rename to src/plugins/cloudMusic.py
index de8f0c4..2561691 100644
--- a/src/qq_plugins/cloudMusic.py
+++ b/src/plugins/cloudMusic.py
@@ -4,7 +4,7 @@ from pathlib import Path
from nonebot import on_command
from nonebot.rule import to_me
from nonebot.adapters.qq import MessageSegment,MessageEvent
-from src.music.cloud_music.cloud_music import *
+from src.clover_music.cloud_music.cloud_music import *
music = on_command("点歌", rule=to_me(), priority=10, block=True)
@music.handle()
@@ -28,7 +28,7 @@ async def handle_function(msg: MessageEvent):
path = create_qr_code(unikey)
"""是否要发送到QQ上面登录 """
- # await music.send(MessageSegment.file_image(Path(path)))
+ # await clover_music.send(MessageSegment.file_image(Path(path)))
"""是否要发送到QQ上面登录 """
while True:
diff --git a/src/qq_plugins/codeforces.py b/src/plugins/codeforces.py
similarity index 96%
rename from src/qq_plugins/codeforces.py
rename to src/plugins/codeforces.py
index e22de8d..364f069 100644
--- a/src/qq_plugins/codeforces.py
+++ b/src/plugins/codeforces.py
@@ -24,7 +24,7 @@ async def get_cf_rounds():
if matches["phase"] == "FINISHED":
break
- cf_image_path = './src/resources/image/codeforces/cfContestQR.png'
+ cf_image_path = './src/resources/clover_image/codeforces/cfContestQR.png'
msg = Message([
MessageSegment.file_image(Path(cf_image_path)),
MessageSegment.text(all_matches),
diff --git a/src/qq_plugins/fortune.py b/src/plugins/fortune.py
similarity index 92%
rename from src/qq_plugins/fortune.py
rename to src/plugins/fortune.py
index 638bf19..d3685a9 100644
--- a/src/qq_plugins/fortune.py
+++ b/src/plugins/fortune.py
@@ -3,9 +3,9 @@ from pathlib import Path
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment,exception
-from src.image.get_image import get_image_names
-from src.my_sqlite.models.fortune import QrFortune,QrFortuneLog
-from src.my_sqlite.models.tarot import MajorArcana
+from src.clover_image.get_image import get_image_names
+from src.clover_sqlite.models.fortune import QrFortune,QrFortuneLog
+from src.clover_sqlite.models.tarot import MajorArcana
import time
fortune_by_sqlite = on_command("今日运势", rule=to_me(), priority=10, block=True)
diff --git a/src/qq_plugins/good_bad_news.py b/src/plugins/good_bad_news.py
similarity index 95%
rename from src/qq_plugins/good_bad_news.py
rename to src/plugins/good_bad_news.py
index 0e9e5f1..3b2bf8f 100644
--- a/src/qq_plugins/good_bad_news.py
+++ b/src/plugins/good_bad_news.py
@@ -30,7 +30,7 @@ async def good_news_img(message: MessageEvent):
img_url = response['url']
# try:
- # await good_news.finish(MessageSegment.image(img_url))
+ # await good_news.finish(MessageSegment.clover_image(img_url))
# except BaseException:
# await good_news.finish("出错啦,请重试。")
diff --git a/src/qq_plugins/image.py b/src/plugins/image.py
similarity index 87%
rename from src/qq_plugins/image.py
rename to src/plugins/image.py
index 9ca0ab8..d4fe6ea 100644
--- a/src/qq_plugins/image.py
+++ b/src/plugins/image.py
@@ -2,7 +2,7 @@ from pathlib import Path
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import MessageSegment
-from src.image.get_image import get_image_names
+from src.clover_image.get_image import get_image_names
image = on_command("图", rule=to_me(), priority=10, block=True)
diff --git a/src/plugins/test/test.py b/src/plugins/test/test.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/qq_plugins/to_do.py b/src/plugins/to_do.py
similarity index 97%
rename from src/qq_plugins/to_do.py
rename to src/plugins/to_do.py
index b125524..9787b4d 100644
--- a/src/qq_plugins/to_do.py
+++ b/src/plugins/to_do.py
@@ -1,7 +1,7 @@
from nonebot.adapters.qq import MessageEvent
from nonebot.plugin import on_command
from nonebot.rule import to_me
-from src.my_sqlite.models.to_do import ToDoList
+from src.clover_sqlite.models.to_do import ToDoList
get_todo_list = on_command("待办查询", rule=to_me(), priority=10, block=True, aliases={"代办", "daiban"})
@get_todo_list.handle()
diff --git a/src/qq_plugins/today_wife.py b/src/plugins/today_wife.py
similarity index 91%
rename from src/qq_plugins/today_wife.py
rename to src/plugins/today_wife.py
index d1b56c5..f2007ec 100644
--- a/src/qq_plugins/today_wife.py
+++ b/src/plugins/today_wife.py
@@ -3,8 +3,8 @@ from nonebot.adapters.qq import Message, MessageEvent
from nonebot.adapters.qq import MessageSegment
from nonebot.plugin import on_command
from nonebot.rule import to_me
-from src.image.get_image import download_qq_image,qq_image_delete
-from src.my_sqlite.models.user import UserList
+from src.clover_image.get_image import download_qq_image,qq_image_delete
+from src.clover_sqlite.models.user import UserList
today_group_wife = on_command("群老婆", rule=to_me(), priority=10, block=True)
@today_group_wife.handle()
diff --git a/src/qq_plugins/touch.py b/src/plugins/touch.py
similarity index 86%
rename from src/qq_plugins/touch.py
rename to src/plugins/touch.py
index 211943b..23ffebd 100644
--- a/src/qq_plugins/touch.py
+++ b/src/plugins/touch.py
@@ -2,8 +2,8 @@ from pathlib import Path
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment
-from src.my_sqlite.models.touch import QrTouch, QrTouchLog
-from src.image.get_image import download_qq_image_by_account, qq_image_delete, rua
+from src.clover_sqlite.models.touch import QrTouch, QrTouchLog
+from src.clover_image.get_image import download_qq_image_by_account, qq_image_delete, rua
to = on_command("摸摸头", rule=to_me(), priority=10, block=True)
diff --git a/src/qq_plugins/weather.py b/src/plugins/weather.py
similarity index 100%
rename from src/qq_plugins/weather.py
rename to src/plugins/weather.py
diff --git a/src/qq_plugins/test/test.py b/src/qq_plugins/test/test.py
deleted file mode 100644
index 66ad4ce..0000000
--- a/src/qq_plugins/test/test.py
+++ /dev/null
@@ -1,160 +0,0 @@
-import execjs
-import requests
-
-
-cookies = {
- 'NMTID': '00O8y8Jmz580oVUQEj2u8z-CtjK9TAAAAGT_JaiZQ',
- '_ntes_nnid': '70ee9d950560215d692bbd3bac5f7ffd,1735109551078',
- '_ntes_nuid': '70ee9d950560215d692bbd3bac5f7ffd',
- 'WM_TID': 'xAl%2FSCq1ZGxFEFQBVUOTDr%2F0kj2cJ4CW',
- 'WEVNSM': '1.0.0',
- 'WNMCID': 'iljzuk.1735109552031.01.0',
- 'ntes_utid': 'tid._.MOPuPUX%252FlRRFVlVFAUbTH7v0liiZp44J._.0',
- 'sDeviceId': 'YD-FPy2uqtGAzpEVwAFRBeVx3xH8QxWMOBV',
- '__snaker__id': 'z682UZpwWWtLZGly',
- 'ntes_kaola_ad': '1',
- '_iuqxldmzr_': '32',
- 'P_INFO': '15902053421|1735930696|1|music|00&99|null&null&null#gud&442000#10#0|&0|null|15902053421',
- '__csrf': 'c9c07b72fc20b640171041342a760e81',
- 'MUSIC_U': '00B2B1E45F4C7D1F42BAC95F16E5D85EB2BFC68BE1BE7C6823C3C28A6304B1AB2D4A94E1D803311EF54D20985FAA383FC5003E895B02096F81188209A3BEB719E3768B01CFBCF587E947206DAA31320E0647B9475A1BBF856DFD117BAC65DD66D4A4DBC3F539F5EBA4544AECE36E35395EE562053591A64212AC8F37F30E2B8C11AB2C10C7C03AACBD5DA91C35703F339B829ABD1C51216EDDA18E9EF905F83E62BBC19376CFB5B17DF0E189C29BDA895578060D86C43BA75D89D69A4DEF267CCA705DFE2E6CA049310812FB57EDD6E4E68CE36AED458717E67246291193F48AB3E5620004ECC2E2A8D841C65D7C1A93926D80855CC9092B7FD29BFC5CAF154CB51BFA95CE76F24C732D1B7C6CFA9829025AA7478406C3B5DDBA76B0EF77E1C0B9839ED41FAAD8ED873F484158243ACC8DE9EF439FE9B018A08B3267CD8DDF0A7BC75F8D0625AB15C0F710471ACBB75B6B0220F283B168FB97899BA53E0A583378',
- 'gdxidpyhxdE': 'dY7CYik9SZysPpbpa%2B9IZ0WkY%2Bf%2BbijCEJvzgRykt3gd21PLr3Ef0Nd7cJ84EZRYl9gaSyIl8MYbGPTbZonYELjmYv%5CiX5Aasgwj92PikIIxp67PCjEU7bIDfjtqO8gYNgmNKUUZfgoi8GSWC2CzIDMuoVeX0aj2E%2Bw3qgPe%2BzIj0gQo%3A1736774883618',
- 'WM_NI': 'xxsz9lwGcCulm7plUDTn8EV4tPXXmBnkvNboMiKwOMaO68vvTGh%2B1%2F8geHL3MiaGz4kBNcL80kPI8L3k%2BIL2fR3rUpxQvjfQB14knTh8XpFASriLyzyWugn%2BZ8IrVmVSS3M%3D',
- 'WM_NIKE': '9ca17ae2e6ffcda170e2e6eebae25ef3bf85b9f14ab5ac8ab7d44b978f8eadcb6998b9a992b3418caca88ed82af0fea7c3b92abca8bd9bbc68b599ada4f868afe9c08dd85098b2f8a6d540b89098b9f04aaeb5baafe1658fb78598ce47a391fad9f57e9899a8ccb425fcb9aba9cf398fb7afa8f940a99e8284cf34f4b5a0aabb48f1b5e5aacf3aa68efd93d87cbc8fba8be55b82effc8ced60ace89891c54b91aea7adfc72bb89bb88ed219ae88793d567968d9dd4d037e2a3',
- 'JSESSIONID-WYYY': 'J1xKzQq7BEfO8faiU7GJrD54bxJC0oUwq8XyduKkEEBj8J8qy2n9Igx5l%2FQsOea4eBHs%2Bph7pHSFbPwTdCK4j6wSqY9BPMeJ828h5SZy4T4Rzx%2FQIrrvZn7ZbvrBwI9eDwd7vo9vOfVY4EIj2TpYdYP%2FTjOf5fzTq%5Ce3gB1a29J0ZyUY%3A1736913831537',
- 'playerid': '81625937',
-}
-
-headers = {
- 'accept': '*/*',
- 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
- 'cache-control': 'no-cache',
- # Requests sorts cookies= alphabetically
- # 'cookie': 'NMTID=00O8y8Jmz580oVUQEj2u8z-CtjK9TAAAAGT_JaiZQ; _ntes_nnid=70ee9d950560215d692bbd3bac5f7ffd,1735109551078; _ntes_nuid=70ee9d950560215d692bbd3bac5f7ffd; WM_TID=xAl%2FSCq1ZGxFEFQBVUOTDr%2F0kj2cJ4CW; WEVNSM=1.0.0; WNMCID=iljzuk.1735109552031.01.0; ntes_utid=tid._.MOPuPUX%252FlRRFVlVFAUbTH7v0liiZp44J._.0; sDeviceId=YD-FPy2uqtGAzpEVwAFRBeVx3xH8QxWMOBV; __snaker__id=z682UZpwWWtLZGly; ntes_kaola_ad=1; _iuqxldmzr_=32; P_INFO=15902053421|1735930696|1|music|00&99|null&null&null#gud&442000#10#0|&0|null|15902053421; __csrf=c9c07b72fc20b640171041342a760e81; MUSIC_U=00B2B1E45F4C7D1F42BAC95F16E5D85EB2BFC68BE1BE7C6823C3C28A6304B1AB2D4A94E1D803311EF54D20985FAA383FC5003E895B02096F81188209A3BEB719E3768B01CFBCF587E947206DAA31320E0647B9475A1BBF856DFD117BAC65DD66D4A4DBC3F539F5EBA4544AECE36E35395EE562053591A64212AC8F37F30E2B8C11AB2C10C7C03AACBD5DA91C35703F339B829ABD1C51216EDDA18E9EF905F83E62BBC19376CFB5B17DF0E189C29BDA895578060D86C43BA75D89D69A4DEF267CCA705DFE2E6CA049310812FB57EDD6E4E68CE36AED458717E67246291193F48AB3E5620004ECC2E2A8D841C65D7C1A93926D80855CC9092B7FD29BFC5CAF154CB51BFA95CE76F24C732D1B7C6CFA9829025AA7478406C3B5DDBA76B0EF77E1C0B9839ED41FAAD8ED873F484158243ACC8DE9EF439FE9B018A08B3267CD8DDF0A7BC75F8D0625AB15C0F710471ACBB75B6B0220F283B168FB97899BA53E0A583378; gdxidpyhxdE=dY7CYik9SZysPpbpa%2B9IZ0WkY%2Bf%2BbijCEJvzgRykt3gd21PLr3Ef0Nd7cJ84EZRYl9gaSyIl8MYbGPTbZonYELjmYv%5CiX5Aasgwj92PikIIxp67PCjEU7bIDfjtqO8gYNgmNKUUZfgoi8GSWC2CzIDMuoVeX0aj2E%2Bw3qgPe%2BzIj0gQo%3A1736774883618; WM_NI=xxsz9lwGcCulm7plUDTn8EV4tPXXmBnkvNboMiKwOMaO68vvTGh%2B1%2F8geHL3MiaGz4kBNcL80kPI8L3k%2BIL2fR3rUpxQvjfQB14knTh8XpFASriLyzyWugn%2BZ8IrVmVSS3M%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6eebae25ef3bf85b9f14ab5ac8ab7d44b978f8eadcb6998b9a992b3418caca88ed82af0fea7c3b92abca8bd9bbc68b599ada4f868afe9c08dd85098b2f8a6d540b89098b9f04aaeb5baafe1658fb78598ce47a391fad9f57e9899a8ccb425fcb9aba9cf398fb7afa8f940a99e8284cf34f4b5a0aabb48f1b5e5aacf3aa68efd93d87cbc8fba8be55b82effc8ced60ace89891c54b91aea7adfc72bb89bb88ed219ae88793d567968d9dd4d037e2a3; JSESSIONID-WYYY=J1xKzQq7BEfO8faiU7GJrD54bxJC0oUwq8XyduKkEEBj8J8qy2n9Igx5l%2FQsOea4eBHs%2Bph7pHSFbPwTdCK4j6wSqY9BPMeJ828h5SZy4T4Rzx%2FQIrrvZn7ZbvrBwI9eDwd7vo9vOfVY4EIj2TpYdYP%2FTjOf5fzTq%5Ce3gB1a29J0ZyUY%3A1736913831537; playerid=81625937',
- 'origin': 'https://music.163.com',
- 'pragma': 'no-cache',
- 'priority': 'u=1, i',
- 'referer': 'https://music.163.com/',
- 'sec-ch-ua': '"Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua-platform': '"Windows"',
- 'sec-fetch-dest': 'empty',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-site': 'same-origin',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
-}
-
-params = {
- 'csrf_token': 'c9c07b72fc20b640171041342a760e81',
-}
-
-data = {
- 'params': 'nvRE14quU2f1ge3FCmBfGqo3PAkgmLPWQYSjX5TTa6o3CSSvGGdecBNdLzvNymhfUyVDR6ZjboRjxOp0OaqzoXXbJUb085o+yJZWUt/+U7uBLM+zyYaAZBpSJk5wE30wJZ+/Y/NC0BDuN4lB7K+QR6VaUNly7hIk0trvh+DITgsoQqdKDie7C+EqFNEVYan9LoKVikJjaPFJAxBGtDZWrQ==',
- 'encSecKey': '27dba2f08b7025a9f62b326292dfc4975cb5d1c46d524ae2bd7a0f4e47ff60acdc5f22a99cab75a2a38083fa264b618ebdcded209c1f8d167d4e62205795bb4fb367db862644489bdef6266508a6c285b2e793968e02c856a13285c7ec7d7a8c2984ae70257ec721aa674a6c64f62cbb17535c07b4378dc2a95f7e48553e8db7',
-}
-
-f = open('../../music/cloud_music/param.js', 'r', encoding='utf-8').read()
-ctx = execjs.compile(f)
-result = ctx.call('get_music', '1357375695')
-print(result)
-
-data = {
- 'params': result['encText'],
- 'encSecKey': result['encSecKey'],
-}
-
-response = requests.post('https://music.163.com/weapi/song/enhance/player/url/v1', params=params, cookies=cookies, headers=headers,
- data=data)
-print(response.text)
-
-
-
-
-"""
-
-# 判断cookie是否有效
-def netease_cloud_music_is_login(session):
- try:
- session.cookies.load(ignore_discard=True)
- except Exception:
- pass
- csrf_token = session.cookies.get('__csrf')
- c = str({'csrf_token': csrf_token})
- try:
- loginurl = session.post(
- 'https://music.163.com/weapi/w/nuser/account/get?csrf_token={}'.format(csrf_token),
- data={
- 'params': AES_aes(AES_aes(c,g,iv),i,iv),
- 'encSecKey': encSecKey()},
- headers=headers).json()
- if '200' in str(loginurl['code']):
- print('Cookies值有效:', loginurl['profile']['nickname'], ',已登录!')
- return session, True
- else:
- print('Cookies值已经失效,请重新扫码登录!')
- return session, False
- except BaseException:
- print('Cookies值已经失效,请重新扫码登录!')
- return session, False
-
-
-# 登录扫码保存cookie
-def netease_cloud_music_login():
- # 写入
- session = requests.session()
- if not os.path.exists('cloud_music_cookies.cookie'):
- with open('cloud_music_cookies.cookie', 'wb') as f:
- pickle.dump(session.cookies, f)
- # 读取
- session.cookies = pickle.load(open('cloud_music_cookies.cookie', 'rb'))
- session, status = netease_cloud_music_is_login(session)
- if not status:
- getlogin = session.post( 'https://music.163.com/weapi/login/qrcode/unikey?csrf_token=',
- data={
- 'params': params(None),
- 'encSecKey': encSecKey()
- },
- headers=headers).json()
- pngurl = 'https://music.163.com/login?codekey=' + getlogin['unikey'] + '&refer=scan'
-
- qr = qrcode.QRCode()
- qr.add_data(pngurl)
- img = qr.make_image()
- a = BytesIO()
- img.save(a, 'png')
- png = a.getvalue()
- a.close()
- # 打开二维码进行扫码操作
- t = showpng(png)
- t.start()
-
- tokenurl = 'https://music.163.com/weapi/login/qrcode/client/login?csrf_token='
- while True:
- u = str({'key': getlogin['unikey'], 'type': "1", 'csrf_token': ""})
- qrcodedata = session.post(
- tokenurl,
- data={
- 'params': params(u),
- 'encSecKey': encSecKey()
- },
- headers=headers).json()
- if '801' in str(qrcodedata['code']):
- print('二维码未失效,请扫码!')
- elif '802' in str(qrcodedata['code']):
- print('已扫码,请确认!')
- elif '803' in str(qrcodedata['code']):
- print('已确认,登入成功!')
- break
- else:
- print('其他:', qrcodedata)
- time.sleep(2)
- with open('cloud_music_cookies.cookie', 'wb') as f:
- pickle.dump(session.cookies, f)
- return session
-
-
-
-
-if __name__ == '__main__':
- netease_cloud_music_login()
-
-"""
\ No newline at end of file
diff --git a/src/resources/temp/temp b/src/resources/temp/temp
new file mode 100644
index 0000000..e69de29