mirror of https://github.com/Mai-with-u/MaiBot.git
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from datetime import datetime
|
|
from src.common.logger_manager import get_logger
|
|
|
|
# Import the new utility function
|
|
|
|
logger = get_logger("observation")
|
|
|
|
|
|
# 所有观察的基类
|
|
class StructureObservation:
|
|
def __init__(self, observe_id):
|
|
self.observe_info = ""
|
|
self.observe_id = observe_id
|
|
self.last_observe_time = datetime.now().timestamp() # 初始化为当前时间
|
|
self.history_loop = []
|
|
self.structured_info = []
|
|
|
|
def to_dict(self) -> dict:
|
|
"""将观察对象转换为可序列化的字典"""
|
|
return {
|
|
"observe_info": self.observe_info,
|
|
"observe_id": self.observe_id,
|
|
"last_observe_time": self.last_observe_time,
|
|
"history_loop": self.history_loop,
|
|
"structured_info": self.structured_info,
|
|
}
|
|
|
|
def get_observe_info(self):
|
|
return self.structured_info
|
|
|
|
def add_structured_info(self, structured_info: dict):
|
|
self.structured_info.append(structured_info)
|
|
|
|
async def observe(self):
|
|
observed_structured_infos = []
|
|
for structured_info in self.structured_info:
|
|
if structured_info.get("ttl") > 0:
|
|
structured_info["ttl"] -= 1
|
|
observed_structured_infos.append(structured_info)
|
|
logger.debug(f"观察到结构化信息仍旧在: {structured_info}")
|
|
|
|
self.structured_info = observed_structured_infos
|