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:
@@ -446,7 +446,7 @@ class AsyncBotDB:
|
||||
if conn:
|
||||
await conn.close()
|
||||
|
||||
async def get_post_content(self, last_post_id: int) -> List[Tuple[str, str]]:
|
||||
async def get_post_content(self, last_post_id: int) -> List:
|
||||
"""Получение контента поста."""
|
||||
conn = None
|
||||
try:
|
||||
@@ -484,7 +484,7 @@ class AsyncBotDB:
|
||||
if conn:
|
||||
await conn.close()
|
||||
|
||||
async def get_post_ids(self, last_post_id: int) -> List[int]:
|
||||
async def get_post_ids(self, last_post_id: int) -> List:
|
||||
"""Получение ID постов."""
|
||||
conn = None
|
||||
try:
|
||||
@@ -540,7 +540,7 @@ class AsyncBotDB:
|
||||
if conn:
|
||||
await conn.close()
|
||||
|
||||
async def get_last_users(self, limit: int = 30) -> List[Tuple[str, int]]:
|
||||
async def get_last_users(self, limit: int = 30) -> List:
|
||||
"""Получение последних пользователей."""
|
||||
conn = None
|
||||
try:
|
||||
@@ -626,7 +626,7 @@ class AsyncBotDB:
|
||||
if conn:
|
||||
await conn.close()
|
||||
|
||||
async def get_blacklist_users(self, offset: int = 0, limit: int = 10) -> List[Tuple[str, int, str, str]]:
|
||||
async def get_blacklist_users(self, offset: int = 0, limit: int = 10) -> List:
|
||||
"""Получение пользователей из черного списка."""
|
||||
conn = None
|
||||
try:
|
||||
@@ -658,7 +658,7 @@ class AsyncBotDB:
|
||||
if conn:
|
||||
await conn.close()
|
||||
|
||||
async def get_users_for_unban_today(self, date_to_unban: str) -> List[Tuple[int, str]]:
|
||||
async def get_users_for_unban_today(self, date_to_unban: str) -> List:
|
||||
"""Получение пользователей для разблокировки сегодня."""
|
||||
conn = None
|
||||
try:
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user