diff --git a/.gitignore b/.gitignore index bea3fad4..2b66b41b 100644 --- a/.gitignore +++ b/.gitignore @@ -50,4 +50,5 @@ handlers/texts.py Thumbs.db nginx.conf -scripts \ No newline at end of file +scripts +models.py \ No newline at end of file diff --git a/bot.py b/bot.py index f37d24e2..f8e217d4 100644 --- a/bot.py +++ b/bot.py @@ -2,10 +2,10 @@ from aiogram import Bot, Dispatcher, Router from aiogram.fsm.storage.memory import MemoryStorage from config import API_TOKEN, CRYPTO_BOT_ENABLE, FREEKASSA_ENABLE, ROBOKASSA_ENABLE, STARS_ENABLE, YOOKASSA_ENABLE -from middlewares.user import UserMiddleware from middlewares.admin import AdminMiddleware from middlewares.database import DatabaseMiddleware from middlewares.logging import LoggingMiddleware +from middlewares.user import UserMiddleware bot = Bot(token=API_TOKEN) storage = MemoryStorage() diff --git a/database.py b/database.py index 2f6f5952..69a2c956 100644 --- a/database.py +++ b/database.py @@ -438,10 +438,17 @@ async def get_tg_id_by_client_id(client_id: str): await conn.close() -async def upsert_user(tg_id: int, username: str = None, first_name: str = None, last_name: str = None, language_code: str = None, is_bot: bool = False): +async def upsert_user( + tg_id: int, + username: str = None, + first_name: str = None, + last_name: str = None, + language_code: str = None, + is_bot: bool = False, +): """ Создает или обновляет информацию о пользователе в базе данных. - + Args: tg_id (int): Уникальный идентификатор пользователя в Telegram username (str, optional): Никнейм пользователя @@ -465,9 +472,14 @@ async def upsert_user(tg_id: int, username: str = None, first_name: str = None, is_bot = EXCLUDED.is_bot, updated_at = CURRENT_TIMESTAMP """, - tg_id, username, first_name, last_name, language_code, is_bot + tg_id, + username, + first_name, + last_name, + language_code, + is_bot, ) - + # Создаем запись в connections, если ее еще нет await conn.execute( """ @@ -475,7 +487,7 @@ async def upsert_user(tg_id: int, username: str = None, first_name: str = None, VALUES ($1, 0.0, 0) ON CONFLICT (tg_id) DO NOTHING """, - tg_id + tg_id, ) finally: await conn.close() diff --git a/img/instructions.jpg b/handlers/instructions/instructions.jpg similarity index 100% rename from img/instructions.jpg rename to handlers/instructions/instructions.jpg diff --git a/img/pic_keys.jpg b/handlers/keys/pic_keys.jpg similarity index 100% rename from img/pic_keys.jpg rename to handlers/keys/pic_keys.jpg diff --git a/img/pic_view.jpg b/handlers/keys/pic_view.jpg similarity index 100% rename from img/pic_view.jpg rename to handlers/keys/pic_view.jpg diff --git a/handlers/payments/robokassa_pay.py b/handlers/payments/robokassa_pay.py index e75a1e70..a7809d1f 100644 --- a/handlers/payments/robokassa_pay.py +++ b/handlers/payments/robokassa_pay.py @@ -10,7 +10,7 @@ from loguru import logger from robokassa import HashAlgorithm, Robokassa from bot import bot -from config import ROBOKASSA_ENABLE,ROBOKASSA_LOGIN, ROBOKASSA_PASSWORD1, ROBOKASSA_PASSWORD2, ROBOKASSA_TEST_MODE +from config import ROBOKASSA_ENABLE, ROBOKASSA_LOGIN, ROBOKASSA_PASSWORD1, ROBOKASSA_PASSWORD2, ROBOKASSA_TEST_MODE from database import add_connection, check_connection_exists, get_key_count, update_balance from handlers.texts import PAYMENT_OPTIONS @@ -21,6 +21,7 @@ class ReplenishBalanceState(StatesGroup): choosing_amount_robokassa = State() waiting_for_payment_confirmation_robokassa = State() + if ROBOKASSA_ENABLE: robokassa = Robokassa( merchant_login=ROBOKASSA_LOGIN, diff --git a/img/pic.jpg b/handlers/pic.jpg similarity index 100% rename from img/pic.jpg rename to handlers/pic.jpg diff --git a/img/pic_invite.jpg b/handlers/pic_invite.jpg similarity index 100% rename from img/pic_invite.jpg rename to handlers/pic_invite.jpg diff --git a/handlers/profile.py b/handlers/profile.py index c1511854..83b4ffd0 100644 --- a/handlers/profile.py +++ b/handlers/profile.py @@ -142,6 +142,8 @@ async def invite_handler(callback_query: types.CallbackQuery): @router.callback_query(F.data == "view_profile") -async def view_profile_handler(callback_query: types.CallbackQuery, state: FSMContext,admin:bool): +async def view_profile_handler( + callback_query: types.CallbackQuery, state: FSMContext, admin: bool +): await state.clear() - await process_callback_view_profile(callback_query, state,admin) + await process_callback_view_profile(callback_query, state, admin) diff --git a/middlewares/user.py b/middlewares/user.py index 7fcbfc14..07637a58 100644 --- a/middlewares/user.py +++ b/middlewares/user.py @@ -14,7 +14,7 @@ class UserMiddleware(BaseMiddleware): data: Dict[str, Any], ) -> Any: user: User = data.get("event_from_user") - + if user: await upsert_user( tg_id=user.id, @@ -22,7 +22,7 @@ class UserMiddleware(BaseMiddleware): first_name=user.first_name, last_name=user.last_name, language_code=user.language_code, - is_bot=user.is_bot + is_bot=user.is_bot, ) - + return await handler(event, data)