валидация email
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4
-2
@@ -38,12 +38,14 @@ async def process_callback_view_keys(callback_query: types.CallbackQuery):
|
||||
# Редактируем сообщение с клавиатурой
|
||||
await bot.edit_message_text(response_message, chat_id=tg_id, message_id=callback_query.message.message_id, reply_markup=inline_keyboard)
|
||||
else:
|
||||
# Если нет ключей, добавляем кнопку "Создать ключ"
|
||||
# Если нет ключей, добавляем кнопку "Создать ключ" и "Назад"
|
||||
response_message = "У вас нет ключей."
|
||||
|
||||
# Кнопка "Создать ключ"
|
||||
create_key_button = types.InlineKeyboardButton(text='Создать ключ', callback_data='create_key')
|
||||
keyboard = types.InlineKeyboardMarkup(inline_keyboard=[[create_key_button]])
|
||||
back_button = types.InlineKeyboardButton(text='Назад', callback_data='view_profile') # Измените на правильное значение для кнопки "Назад"
|
||||
|
||||
keyboard = types.InlineKeyboardMarkup(inline_keyboard=[[create_key_button], [back_button]])
|
||||
|
||||
await bot.edit_message_text(response_message, chat_id=tg_id, message_id=callback_query.message.message_id, reply_markup=keyboard)
|
||||
|
||||
|
||||
+7
-4
@@ -43,12 +43,14 @@ async def process_callback_replenish_balance(callback_query: types.CallbackQuery
|
||||
|
||||
key_count = await get_key_count(tg_id)
|
||||
if key_count <= 0:
|
||||
await send_message_with_deletion(tg_id, "У вас нет ключей. Пополнение баланса возможно только при наличии ключа.", state=state, message_key='key_error_message_id')
|
||||
# Создаем кнопки "Создать ключ" и "Назад"
|
||||
create_key_button = InlineKeyboardButton(text='Создать ключ', callback_data='create_key')
|
||||
keyboard = InlineKeyboardMarkup(inline_keyboard=[[create_key_button]])
|
||||
|
||||
back_button = InlineKeyboardButton(text='⬅️ Назад', callback_data='back_to_profile')
|
||||
keyboard = InlineKeyboardMarkup(inline_keyboard=[[create_key_button, back_button]])
|
||||
|
||||
await callback_query.message.edit_text(
|
||||
text="Пожалуйста, создайте ключ для продолжения.",
|
||||
text="У вас нет ключей. Пополнение баланса возможно только при наличии ключа.\n"
|
||||
"Пожалуйста, создайте ключ для продолжения.",
|
||||
reply_markup=keyboard
|
||||
)
|
||||
return
|
||||
@@ -65,6 +67,7 @@ async def process_callback_replenish_balance(callback_query: types.CallbackQuery
|
||||
)
|
||||
await callback_query.answer()
|
||||
|
||||
|
||||
@router.callback_query(lambda c: c.data == 'back_to_profile')
|
||||
async def back_to_profile_handler(callback_query: types.CallbackQuery, state: FSMContext):
|
||||
await process_callback_view_profile(callback_query, state)
|
||||
|
||||
@@ -33,26 +33,12 @@ async def start_command(message: types.Message):
|
||||
[button_channel]
|
||||
])
|
||||
|
||||
reply_keyboard = ReplyKeyboardMarkup(
|
||||
keyboard=[
|
||||
[KeyboardButton(text="Меню")],
|
||||
# [KeyboardButton(text="Мой профиль")]
|
||||
],
|
||||
resize_keyboard=True
|
||||
)
|
||||
|
||||
await message.bot.send_message(
|
||||
chat_id=message.chat.id,
|
||||
text=welcome_text,
|
||||
parse_mode='Markdown',
|
||||
reply_markup=inline_keyboard
|
||||
)
|
||||
|
||||
await message.bot.send_message(
|
||||
chat_id=message.chat.id,
|
||||
text="Выберите действие:",
|
||||
reply_markup=reply_keyboard
|
||||
)
|
||||
|
||||
@router.callback_query(lambda c: c.data == 'about_vpn')
|
||||
async def handle_about_vpn(callback_query: CallbackQuery):
|
||||
|
||||
+18
-7
@@ -42,7 +42,7 @@ async def process_callback_create_key(callback_query: CallbackQuery, state: FSMC
|
||||
|
||||
if trial_status == 1:
|
||||
await callback_query.message.edit_text(
|
||||
"У вас уже есть активный ключ. Вы можете создать новый ключ за дополнительную плату в размере 100 рублей. "
|
||||
"У вас уже был пробный ключ. Вы можете создать новый за 100 рублей. "
|
||||
"Хотите продолжить?",
|
||||
reply_markup=InlineKeyboardMarkup(inline_keyboard=[
|
||||
[InlineKeyboardButton(text='Да, создать новый ключ', callback_data='confirm_create_new_key')],
|
||||
@@ -105,12 +105,12 @@ async def handle_text(message: Message, state: FSMContext):
|
||||
|
||||
async def handle_key_name_input(message: Message, state: FSMContext):
|
||||
tg_id = message.from_user.id
|
||||
|
||||
key_name = sanitize_key_name(message.text)
|
||||
|
||||
if not key_name:
|
||||
await message.reply("Имя ключа не указано. Введите имя на английском языке.")
|
||||
await state.clear()
|
||||
return
|
||||
await message.bot.send_message(tg_id, "Назовите профиль на английском языке.")
|
||||
return # Прерываем выполнение функции
|
||||
|
||||
data = await state.get_data()
|
||||
creating_new_key = data.get('creating_new_key', False)
|
||||
@@ -122,11 +122,21 @@ async def handle_key_name_input(message: Message, state: FSMContext):
|
||||
expiry_time = int((current_time + timedelta(days=1)).timestamp() * 1000)
|
||||
|
||||
if creating_new_key:
|
||||
# Проверяем, занято ли имя ключа
|
||||
conn = await asyncpg.connect(DATABASE_URL)
|
||||
try:
|
||||
existing_key = await conn.fetchrow('SELECT * FROM keys WHERE email = $1', email)
|
||||
if existing_key:
|
||||
await message.bot.send_message(tg_id, "Это имя уже занято. Пожалуйста, выберите другое имя.")
|
||||
return # Прерываем выполнение функции
|
||||
finally:
|
||||
await conn.close()
|
||||
|
||||
balance = await get_balance(tg_id)
|
||||
if balance < 100:
|
||||
replenish_button = InlineKeyboardButton(text='Перейти в профиль', callback_data='view_profile')
|
||||
keyboard = InlineKeyboardMarkup(inline_keyboard=[[replenish_button]])
|
||||
await message.reply("Недостаточно средств на балансе для создания нового ключа.", reply_markup=keyboard)
|
||||
await message.bot.send_message(tg_id, "Недостаточно средств на балансе для создания нового ключа.", reply_markup=keyboard)
|
||||
await state.clear()
|
||||
return
|
||||
|
||||
@@ -157,12 +167,13 @@ async def handle_key_name_input(message: Message, state: FSMContext):
|
||||
])
|
||||
|
||||
key_message = f"Ключ создан:\n<pre>{connection_link}</pre>"
|
||||
await message.reply(key_message, parse_mode="HTML", reply_markup=keyboard)
|
||||
await message.bot.send_message(tg_id, key_message, parse_mode="HTML", reply_markup=keyboard)
|
||||
except Exception as e:
|
||||
await message.reply(f"Ошибка при создании ключа: {e}")
|
||||
await message.bot.send_message(tg_id, f"Ошибка при создании ключа: {e}")
|
||||
|
||||
await state.clear()
|
||||
|
||||
|
||||
@dp.callback_query(F.data == 'instructions')
|
||||
async def handle_instructions(callback_query: CallbackQuery):
|
||||
instructions_message = (
|
||||
|
||||
Reference in New Issue
Block a user