Версия 0.0.3

This commit is contained in:
parent 413e9c57be
commit 8c7d0609df
189 changed files with 52063 additions and 2769 deletions

View file

@ -9,7 +9,9 @@ from datetime import datetime, timedelta
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class SessionStorage:
def __init__(self, file_path: str = "/etc/gonets/sessions.json"):
self.file_path = file_path
self._ensure_file_exists()
@ -18,7 +20,8 @@ class SessionStorage:
try:
logger.info(f"Проверка существования файла {self.file_path}")
if not os.path.exists(self.file_path):
logger.info(f"Создание директории {os.path.dirname(self.file_path)}")
logger.info(
f"Создание директории {os.path.dirname(self.file_path)}")
os.makedirs(os.path.dirname(self.file_path), exist_ok=True)
logger.info(f"Создание файла {self.file_path}")
with open(self.file_path, "w") as f:
@ -28,7 +31,9 @@ class SessionStorage:
else:
logger.info(f"Файл {self.file_path} уже существует")
except Exception as e:
logger.error(f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при создании файла {self.file_path}: {type(e).__name__} - {str(e)}"
)
raise
def _read_data(self) -> Dict:
@ -36,7 +41,9 @@ class SessionStorage:
with open(self.file_path, "r") as f:
return json.load(f)
except Exception as e:
logger.error(f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при чтении файла {self.file_path}: {type(e).__name__} - {str(e)}"
)
raise
def _write_data(self, data: Dict):
@ -44,7 +51,9 @@ class SessionStorage:
with open(self.file_path, "w") as f:
json.dump(data, f, indent=2)
except Exception as e:
logger.error(f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при записи файла {self.file_path}: {type(e).__name__} - {str(e)}"
)
raise
def create_session(self, username: str, token: str, client_id: str) -> str:
@ -60,13 +69,17 @@ class SessionStorage:
"token": token,
"client_id": client_id,
"created_at": created_at,
"expiry": expiry
"expiry": expiry,
}
self._write_data(data)
logger.info(f"Сессия создана для пользователя {username} с session_id {session_id}")
logger.info(
f"Сессия создана для пользователя {username} с session_id {session_id}"
)
return session_id
except Exception as e:
logger.error(f"Ошибка при создании сессии для {username}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при создании сессии для {username}: {type(e).__name__} - {str(e)}"
)
raise
def get_latest_session(self, client_id: str) -> Optional[Dict]:
@ -95,7 +108,9 @@ class SessionStorage:
self._write_data(data)
return None
except Exception as e:
logger.error(f"Ошибка при получении сессии для client_id {client_id}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при получении сессии для client_id {client_id}: {type(e).__name__} - {str(e)}"
)
raise
def delete_session(self, session_id: str):
@ -108,7 +123,9 @@ class SessionStorage:
self._write_data(data)
logger.info(f"Сессия с session_id {session_id} удалена")
except Exception as e:
logger.error(f"Ошибка при удалении сессии {session_id}: {type(e).__name__} - {str(e)}")
logger.error(
f"Ошибка при удалении сессии {session_id}: {type(e).__name__} - {str(e)}"
)
raise
def clean_expired_sessions(self):
@ -127,7 +144,8 @@ class SessionStorage:
# Удаляем истекшие сессии
for session_id in expired_sessions:
del data["sessions"][session_id]
logger.info(f"Удалена истекшая сессия с session_id {session_id}")
logger.info(
f"Удалена истекшая сессия с session_id {session_id}")
# Записываем обновлённые данные
if expired_sessions:
@ -137,5 +155,7 @@ class SessionStorage:
logger.debug("Истекшие сессии не найдены")
except Exception as e:
logger.error(f"Ошибка при очистке истекших сессий: {type(e).__name__} - {str(e)}")
raise
logger.error(
f"Ошибка при очистке истекших сессий: {type(e).__name__} - {str(e)}"
)
raise