Обновлены обработчики в main.py для упрощения взаимодействия с пользователем:
- Удалены кнопки "Get detailed info" и соответствующий обработчик, заменены на кнопку "Pay 10 ⭐️ for detailed info".
- Оптимизирована логика отображения кнопок в зависимости от наличия записей о повреждениях.
Эти изменения улучшают пользовательский интерфейс и делают процесс получения информации более интуитивным.
This commit is contained in:
parent
bec2b2d838
commit
fb3615e71c
51
main.py
51
main.py
@ -199,12 +199,11 @@ async def process_check_vin(message: Message, state: FSMContext, db: OracleDatab
|
||||
builder = InlineKeyboardBuilder()
|
||||
|
||||
if salvage_count > 0:
|
||||
# Есть записи - показываем кнопки: Get detailed info, Pay 10⭐️, Try another VIN, Back to main menu
|
||||
builder.button(text="Get detailed info", callback_data=f"get_detailed_info:{vin}")
|
||||
builder.button(text="Pay 10 ⭐️", callback_data=f"pay_check_detailed:{vin}", pay=True)
|
||||
# Есть записи - показываем кнопки: Pay 10⭐️ for detailed info, Try another VIN, Back to main menu
|
||||
builder.button(text="Pay 10 ⭐️ for detailed info", callback_data=f"pay_check_detailed:{vin}", pay=True)
|
||||
builder.button(text="Try another VIN", callback_data="check_vin")
|
||||
builder.button(text="Back to Main Menu", callback_data="main_menu")
|
||||
builder.adjust(1, 1, 1, 1) # Each button on separate row
|
||||
builder.adjust(1, 1, 1) # Each button on separate row
|
||||
else:
|
||||
# Нет записей - показываем кнопки: Try another VIN, Back to main menu
|
||||
response_text += "ℹ️ **No salvage records found for this VIN**"
|
||||
@ -222,50 +221,6 @@ async def process_check_vin(message: Message, state: FSMContext, db: OracleDatab
|
||||
await message.answer("Invalid VIN. Please enter a valid 17-character VIN (letters and numbers, no I, O, Q).")
|
||||
|
||||
|
||||
@dp.callback_query(lambda c: c.data and c.data.startswith("get_detailed_info:"))
|
||||
async def get_detailed_info_callback(callback: CallbackQuery, db: OracleDatabase = None):
|
||||
# Используем переданный db или глобальный oracle_db
|
||||
database = db or oracle_db
|
||||
|
||||
# Сохраняем данные пользователя
|
||||
await database.save_user(callback.from_user, "get_detailed_info_button")
|
||||
|
||||
# Извлекаем VIN из callback data
|
||||
vin = callback.data.split(":")[1]
|
||||
|
||||
try:
|
||||
# Получаем детальную информацию из таблицы salvagedb.salvagedb
|
||||
salvage_count = await database.count_salvage_records(vin)
|
||||
|
||||
if salvage_count > 0:
|
||||
response_text = f"🔍 **Detailed Salvage Information for VIN:** {vin}\n\n"
|
||||
response_text += f"📊 **Total salvage records found:** {salvage_count}\n\n"
|
||||
response_text += "💡 **This vehicle has salvage records in our database.**\n"
|
||||
response_text += "For complete detailed analysis including damage history, "
|
||||
response_text += "accident reports, and comprehensive vehicle information, "
|
||||
response_text += "please use our paid detailed report service.\n\n"
|
||||
response_text += "💰 **Price:** 10 ⭐️ (Telegram Stars)"
|
||||
else:
|
||||
response_text = f"✅ **Good news!** No salvage records found for VIN: {vin}\n\n"
|
||||
response_text += "This vehicle appears to have no salvage history in our database."
|
||||
|
||||
# Создаем клавиатуру
|
||||
builder = InlineKeyboardBuilder()
|
||||
if salvage_count > 0:
|
||||
builder.button(text="Pay 10 ⭐️ for Full Report", callback_data=f"pay_check_detailed:{vin}", pay=True)
|
||||
builder.button(text="Try another VIN", callback_data="check_vin")
|
||||
builder.button(text="Back to Main Menu", callback_data="main_menu")
|
||||
builder.adjust(1, 1, 1) if salvage_count > 0 else builder.adjust(1, 1)
|
||||
|
||||
await callback.message.answer(response_text, reply_markup=builder.as_markup(), parse_mode="Markdown")
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Error getting detailed info for VIN {vin}: {e}")
|
||||
await callback.message.answer("Error retrieving detailed information. Please try again later.")
|
||||
|
||||
await callback.answer()
|
||||
|
||||
|
||||
@dp.callback_query(lambda c: c.data and c.data.startswith("pay_check_detailed:"))
|
||||
async def pay_check_detailed_callback(callback: CallbackQuery, db: OracleDatabase = None):
|
||||
# Используем переданный db или глобальный oracle_db
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user