2024-12-31 19:03:20 +08:00
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
from arclet.alconna import Alconna, Args, Subcommand
|
|
|
|
|
from nonebot import logger
|
|
|
|
|
from nonebot.adapters import Bot, Event
|
|
|
|
|
from nonebot.matcher import Matcher
|
|
|
|
|
from nonebot.typing import T_State
|
|
|
|
|
from nonebot_plugin_alconna import on_alconna
|
|
|
|
|
from nonebot_plugin_localstore import get_plugin_data_file
|
|
|
|
|
|
|
|
|
|
from nonebot_plugin_marshoai.config import config
|
|
|
|
|
|
|
|
|
|
marsho_memory_cmd = on_alconna(
|
|
|
|
|
Alconna(
|
|
|
|
|
f"{config.marshoai_default_name}.memory",
|
|
|
|
|
Subcommand("view", alias={"v"}),
|
|
|
|
|
Subcommand("reset", alias={"r"}),
|
|
|
|
|
),
|
2025-02-27 23:24:25 +08:00
|
|
|
|
priority=96,
|
2024-12-31 19:03:20 +08:00
|
|
|
|
block=True,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
memory_path = get_plugin_data_file("memory.json")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@marsho_memory_cmd.assign("view")
|
|
|
|
|
async def view_memory(matcher: Matcher, state: T_State, event: Event):
|
|
|
|
|
user_id = str(event.get_user_id())
|
|
|
|
|
with open(memory_path, "r", encoding="utf-8") as f:
|
|
|
|
|
memory_data = json.load(f)
|
|
|
|
|
memorys = memory_data.get(user_id, [])
|
|
|
|
|
if not memorys:
|
|
|
|
|
await matcher.finish("好像对ta还没有任何记忆呢~")
|
|
|
|
|
await matcher.finish("这些是有关ta的记忆:" + "\n".join(memorys))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@marsho_memory_cmd.assign("reset")
|
|
|
|
|
async def reset_memory(matcher: Matcher, state: T_State, event: Event):
|
|
|
|
|
user_id = str(event.get_user_id())
|
|
|
|
|
with open(memory_path, "r", encoding="utf-8") as f:
|
|
|
|
|
memory_data = json.load(f)
|
|
|
|
|
if user_id in memory_data:
|
|
|
|
|
del memory_data[user_id]
|
|
|
|
|
with open(memory_path, "w", encoding="utf-8") as f:
|
|
|
|
|
json.dump(memory_data, f, ensure_ascii=False, indent=4)
|
|
|
|
|
await matcher.finish("记忆已重置~")
|
|
|
|
|
await matcher.finish("没有找到该用户的记忆~")
|