Добавлено логирование информации о системе при запуске приложения. Реализованы функции для определения операционной системы и проверки платформы (Windows, Linux, macOS). Обновлен .gitignore для исключения каталога images. Эти изменения помогут в отладке и улучшат информативность работы приложения.

This commit is contained in:
Vlad 2025-06-02 00:11:03 +03:00
parent f8d763920a
commit 3474fe5f96
2 changed files with 61 additions and 1 deletions

3
.gitignore vendored
View File

@ -8,4 +8,5 @@ wheels/
# Virtual environments # Virtual environments
.venv .venv
logs/ logs/
images/

59
main.py
View File

@ -2,6 +2,8 @@ import asyncio
from os import getenv from os import getenv
import logging import logging
from datetime import datetime from datetime import datetime
import platform
import os
from aiogram import Bot, Dispatcher from aiogram import Bot, Dispatcher
from aiogram.filters import Command from aiogram.filters import Command
@ -95,6 +97,57 @@ def escape_markdown(text: str) -> str:
return escaped_text return escaped_text
def get_operating_system() -> str:
"""
Определяет операционную систему на которой запущен код
Returns:
str: 'Windows', 'Linux', 'macOS' или 'Unknown'
"""
system = platform.system().lower()
if system == 'windows':
return 'Windows'
elif system == 'linux':
return 'Linux'
elif system == 'darwin':
return 'macOS'
else:
return f'Unknown ({system})'
def log_system_info():
"""
Логирует информацию о системе при запуске
"""
os_name = get_operating_system()
python_version = platform.python_version()
architecture = platform.machine()
logging.info(f"=== SYSTEM INFORMATION ===")
logging.info(f"Operating System: {os_name}")
logging.info(f"Platform: {platform.platform()}")
logging.info(f"Python Version: {python_version}")
logging.info(f"Architecture: {architecture}")
logging.info(f"Node Name: {platform.node()}")
logging.info(f"os.name: {os.name}")
logging.info(f"=== END SYSTEM INFO ===")
def is_windows() -> bool:
"""Проверяет, запущен ли код на Windows"""
return get_operating_system() == 'Windows'
def is_linux() -> bool:
"""Проверяет, запущен ли код на Linux"""
return get_operating_system() == 'Linux'
def is_macos() -> bool:
"""Проверяет, запущен ли код на macOS"""
return get_operating_system() == 'macOS'
if getenv("DEBUG",'0') == '1': if getenv("DEBUG",'0') == '1':
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
else: else:
@ -111,6 +164,11 @@ CHECK_PRICE = getenv("CHECK_PRICE",10)
IMG_PRICE = getenv("IMG_PRICE",100) IMG_PRICE = getenv("IMG_PRICE",100)
if is_windows():
image_path = "D:\\SALVAGEDB\\salvagedb_bot\\images"
else:
image_path = "/images/"
oracle_db = OracleDatabase( oracle_db = OracleDatabase(
user= getenv("db_user"), user= getenv("db_user"),
@ -835,6 +893,7 @@ async def successful_payment_handler(message: Message, db: OracleDatabase = None
async def on_startup(): async def on_startup():
log_system_info() # Логируем информацию о системе
await oracle_db.connect() await oracle_db.connect()
# Регистрируем middleware для всех типов событий # Регистрируем middleware для всех типов событий
dp.message.middleware(DbSessionMiddleware(oracle_db)) dp.message.middleware(DbSessionMiddleware(oracle_db))