-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogs.py
More file actions
61 lines (45 loc) · 1.66 KB
/
logs.py
File metadata and controls
61 lines (45 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import os
from datetime import datetime
# Garante a compatibilidade do caminho do log entre os ambientes
LOG_FILE_PATH = "/tmp/recommender.log"
if os.name == 'nt':
LOG_FILE_PATH = "recommender.log"
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(LOG_FILE_PATH, "a", encoding="utf-8") as f:
f.write(log_entry)
def get_user_history(user_id: int) -> dict:
history = {}
try:
with open(LOG_FILE_PATH, "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:
users = {}
try:
with open(LOG_FILE_PATH, "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