vioott's picture
feat(log): add get_all_users function
9619afc
raw
history blame
1.73 kB
from datetime import datetime
def save_log(user_id: int, history: dict, response: str):
log_entry = (
f"[{datetime.now().isoformat(sep=' ', timespec='seconds')}]\n"
f"Usuário: {user_id}\n"
f"Histórico: {history}\n"
f"Recomendação: {response.strip()}\n"
f"{'-'*40}\n"
)
with open("recommender.log", "a", encoding="utf-8") as f:
f.write(log_entry)
def get_user_history(user_id: int) -> dict:
"""
Lê o arquivo recommender.log e retorna o último histórico do usuário.
"""
history = {}
try:
with open("recommender.log", "r", encoding="utf-8") as f:
lines = f.readlines()
current_user = None
for line in lines:
if line.startswith("Usuário:"):
current_user = int(line.split(":")[1].strip())
elif line.startswith("Histórico:") and current_user == user_id:
history = eval(line.split(":", 1)[1].strip())
except FileNotFoundError:
pass
return history
def get_all_users() -> dict:
"""
Retorna todos os usuários e seus históricos a partir do arquivo de log.
"""
users = {}
try:
with open("recommender.log", "r", encoding="utf-8") as f:
lines = f.readlines()
current_user = None
for i, line in enumerate(lines):
if line.startswith("Usuário:"):
current_user = int(line.split(":")[1].strip())
elif line.startswith("Histórico:") and current_user is not None:
history = eval(line.split(":", 1)[1].strip())
users[current_user] = history
except FileNotFoundError:
pass
return users