更新少量文档, 减少夸赞名单文件开启次数

This commit is contained in:
2024-11-16 15:06:54 +08:00
parent 17f19dc1ce
commit 625603105c
3 changed files with 23 additions and 9 deletions

View File

@ -117,6 +117,8 @@ async def nickname(event: Event, name=None):
nicknames = await get_nicknames()
user_id = event.get_user_id()
if not name:
if user_id not in nicknames:
await nickname_cmd.finish("你未设置昵称")
await nickname_cmd.finish("你的昵称为:" + str(nicknames[user_id]))
if name == "reset":
await set_nickname(user_id, "")
@ -142,6 +144,8 @@ async def marsho(target: MsgTarget, event: Event, text: Optional[UniMsg] = None)
nickname_prompt = f"\n*此消息的说话者:{nickname}*"
else:
nickname_prompt = ""
#user_nickname = event.sender.nickname
#nickname_prompt = f"\n*此消息的说话者:{user_nickname}"
if config.marshoai_enable_nickname_tip:
await UniMessage(
"*你未设置自己的昵称。推荐使用'nickname [昵称]'命令设置昵称来获得个性化(可能)回答。"

View File

@ -6,11 +6,14 @@ from typing import Any
import httpx
import nonebot_plugin_localstore as store
from datetime import datetime
from cashews.backends.redis.client_side import logger
from zhDateTime import DateTime # type: ignore
from azure.ai.inference.aio import ChatCompletionsClient
from azure.ai.inference.models import SystemMessage
from .config import config
nickname_json = None
async def get_image_b64(url):
headers = {
@ -91,6 +94,7 @@ async def load_context_from_json(name: str):
async def set_nickname(user_id: str, name: str):
global nickname_json
filename = store.get_plugin_data_file("nickname.json")
if not os.path.exists(filename):
data = {}
@ -98,17 +102,23 @@ async def set_nickname(user_id: str, name: str):
with open(filename, "r", encoding="utf-8") as f:
data = json.load(f)
data[user_id] = name
if name == "" and user_id in data:
del data[user_id]
with open(filename, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4)
nickname_json = data
async def get_nicknames():
filename = store.get_plugin_data_file("nickname.json")
try:
with open(filename, "r", encoding="utf-8") as f:
return json.load(f)
except FileNotFoundError:
return {}
global nickname_json
if nickname_json is None:
filename = store.get_plugin_data_file("nickname.json")
try:
with open(filename, "r", encoding="utf-8") as f:
nickname_json = json.load(f)
except Exception:
nickname_json = {}
return nickname_json
def get_prompt():