48 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"}),
),
priority=10,
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("没有找到该用户的记忆~")