Refactor project structure and enhance Docker support

- Removed unnecessary `__init__.py` and `Dockerfile` to streamline project organization.
- Updated `.dockerignore` and `.gitignore` to improve exclusion patterns for build artifacts and environment files.
- Enhanced `Makefile` with new commands for managing Docker containers and added help documentation.
- Introduced `pyproject.toml` for better project metadata management and dependency tracking.
- Updated `requirements.txt` to reflect changes in dependencies for metrics and monitoring.
- Refactored various handler files to improve code organization and maintainability.
This commit is contained in:
2025-08-29 16:49:28 +03:00
parent 8cee629e28
commit c68db87901
37 changed files with 2177 additions and 175 deletions

View File

@@ -6,6 +6,14 @@ from concurrent.futures import ThreadPoolExecutor
from logs.custom_logger import logger
# Local imports - metrics
from helper_bot.utils.metrics import (
metrics,
track_time,
track_errors,
db_query_time
)
class BotDB:
def __init__(self, current_dir, name):
@@ -138,6 +146,9 @@ class BotDB:
finally:
self.close()
@track_time("add_new_user_in_db", "database")
@track_errors("database", "add_new_user_in_db")
@db_query_time("add_new_user_in_db", "our_users", "insert")
def add_new_user_in_db(self, user_id: int, first_name: str, full_name: str, username: str, is_bot: bool,
language_code: str, emoji: str, date_added: str, date_changed: str):
"""
@@ -189,6 +200,9 @@ class BotDB:
finally:
self.close()
@track_time("user_exists", "database")
@track_errors("database", "user_exists")
@db_query_time("user_exists", "our_users", "select")
def user_exists(self, user_id: int):
"""
Проверяет, существует ли пользователь в базе данных.
@@ -426,6 +440,9 @@ class BotDB:
finally:
self.close()
@track_time("get_info_about_stickers", "database")
@track_errors("database", "get_info_about_stickers")
@db_query_time("get_info_about_stickers", "our_users", "select")
def get_info_about_stickers(self, user_id: int):
"""
Проверяет, получил ли пользователь стикеры.
@@ -459,6 +476,9 @@ class BotDB:
finally:
self.close()
@track_time("update_info_about_stickers", "database")
@track_errors("database", "update_info_about_stickers")
@db_query_time("update_info_about_stickers", "our_users", "update")
def update_info_about_stickers(self, user_id):
"""
Обновляет информацию о получении стикеров пользователем.
@@ -623,6 +643,9 @@ class BotDB:
finally:
self.close()
@track_time("add_new_message_in_db", "database")
@track_errors("database", "add_new_message_in_db")
@db_query_time("add_new_message_in_db", "user_messages", "insert")
def add_new_message_in_db(self, message_text: str, user_id: int, message_id: int, date: str):
"""
Добавляет новое сообщение пользователя в базу данных.
@@ -657,6 +680,9 @@ class BotDB:
finally:
self.close()
@track_time("get_username_and_full_name", "database")
@track_errors("database", "get_username_and_full_name")
@db_query_time("get_username_and_full_name", "our_users", "select")
def get_username_and_full_name(self, user_id: int):
"""
Получает full_name и username пользователя по ID из базы
@@ -686,6 +712,9 @@ class BotDB:
finally:
self.close()
@track_time("update_username_and_full_name", "database")
@track_errors("database", "update_username_and_full_name")
@db_query_time("update_username_and_full_name", "our_users", "update")
def update_username_and_full_name(self, user_id: int, username: str, full_name: str):
"""
Обновляет full_name и username пользователя
@@ -715,6 +744,9 @@ class BotDB:
finally:
self.close()
@track_time("update_date_for_user", "database")
@track_errors("database", "update_date_for_user")
@db_query_time("update_date_for_user", "our_users", "update")
def update_date_for_user(self, date: str, user_id: int):
"""
#TODO: Не возвращается ошибка sqlite3. Error. Тест не перехватывает. Возвращается no such table: our_users
@@ -742,6 +774,9 @@ class BotDB:
finally:
self.close()
@track_time("check_emoji", "database")
@track_errors("database", "check_emoji")
@db_query_time("check_emoji", "our_users", "select")
def check_emoji(self, emoji: str):
"""
Проверяет, есть ли уже такой emoji в таблице.
@@ -767,6 +802,9 @@ class BotDB:
finally:
self.close()
@track_time("update_emoji_for_user", "database")
@track_errors("database", "update_emoji_for_user")
@db_query_time("update_emoji_for_user", "our_users", "update")
def update_emoji_for_user(self, user_id: int, emoji: str):
"""
Обновляет эмодзи для пользователя в базе если его ранее не было установлено
@@ -792,6 +830,9 @@ class BotDB:
finally:
self.close()
@track_time("check_emoji_for_user", "database")
@track_errors("database", "check_emoji_for_user")
@db_query_time("check_emoji_for_user", "our_users", "select")
def check_emoji_for_user(self, user_id: int):
"""
Проверяет, есть ли уже у пользователя назначенный emoji.