Добавлена функция справки в main.py, которая предоставляет пользователям информацию о доступных услугах и ценах. Обновлены обработчики для динамического отображения цен на услуги. Эти изменения улучшают взаимодействие с пользователем и делают информацию более доступной.
This commit is contained in:
parent
fe0aaefbec
commit
f2fe946244
57
main.py
57
main.py
@ -426,6 +426,53 @@ async def main_menu_callback(callback: CallbackQuery, state: FSMContext, db: Ora
|
|||||||
await callback.answer()
|
await callback.answer()
|
||||||
|
|
||||||
|
|
||||||
|
@dp.callback_query(lambda c: c.data == "help")
|
||||||
|
async def help_callback(callback: CallbackQuery, db: OracleDatabase = None):
|
||||||
|
# Используем переданный db или глобальный oracle_db
|
||||||
|
database = db or oracle_db
|
||||||
|
|
||||||
|
# Сохраняем данные пользователя при просмотре справки
|
||||||
|
await database.save_user(callback.from_user, "help_button")
|
||||||
|
|
||||||
|
help_text = (
|
||||||
|
"ℹ️ **Help - Our Services**\n\n"
|
||||||
|
|
||||||
|
"🔍 **1. Decode VIN**\n"
|
||||||
|
f"• Free basic vehicle information (make, model, year)\n"
|
||||||
|
f"• Detailed specifications for {DECODE_PRICE} ⭐ (engine, transmission, safety features, etc.)\n"
|
||||||
|
f"• Comprehensive technical data from NHTSA database\n\n"
|
||||||
|
|
||||||
|
"🚨 **2. Check VIN**\n"
|
||||||
|
f"• Free salvage records count\n"
|
||||||
|
f"• Detailed damage history for {CHECK_PRICE} ⭐ (auction data, damage types, repair costs)\n"
|
||||||
|
f"• Sale dates and locations from insurance auctions\n\n"
|
||||||
|
|
||||||
|
"📸 **3. Search Car Photos**\n"
|
||||||
|
f"• Check availability of damage photos\n"
|
||||||
|
f"• Access to actual auction photos for {IMG_PRICE} ⭐\n"
|
||||||
|
f"• High-quality images showing vehicle condition and damage\n\n"
|
||||||
|
|
||||||
|
"💡 **How to use:**\n"
|
||||||
|
"• Enter any 17-character VIN number\n"
|
||||||
|
"• VIN must contain only letters and numbers (no I, O, Q)\n"
|
||||||
|
"• All payments are made with Telegram Stars ⭐\n\n"
|
||||||
|
|
||||||
|
"⚠️ **Important:** Our reports show historical data for informed decision-making. "
|
||||||
|
"Always consult automotive experts for professional vehicle evaluation."
|
||||||
|
)
|
||||||
|
|
||||||
|
builder = InlineKeyboardBuilder()
|
||||||
|
builder.button(text="🔍 Try Decode VIN", callback_data="decode_vin")
|
||||||
|
builder.button(text="🚨 Try Check VIN", callback_data="check_vin")
|
||||||
|
builder.button(text="📸 Try Search Photos", callback_data="search_car_photo")
|
||||||
|
builder.adjust(3)
|
||||||
|
builder.button(text="🏠 Back to Main Menu", callback_data="main_menu")
|
||||||
|
builder.adjust(3, 1)
|
||||||
|
|
||||||
|
await callback.message.answer(help_text, reply_markup=builder.as_markup(), parse_mode="Markdown")
|
||||||
|
await callback.answer()
|
||||||
|
|
||||||
|
|
||||||
@dp.callback_query(lambda c: c.data and c.data.startswith("pay_detailed_info:"))
|
@dp.callback_query(lambda c: c.data and c.data.startswith("pay_detailed_info:"))
|
||||||
async def pay_detailed_info_callback(callback: CallbackQuery, db: OracleDatabase = None):
|
async def pay_detailed_info_callback(callback: CallbackQuery, db: OracleDatabase = None):
|
||||||
# Используем переданный db или глобальный oracle_db
|
# Используем переданный db или глобальный oracle_db
|
||||||
@ -436,12 +483,12 @@ async def pay_detailed_info_callback(callback: CallbackQuery, db: OracleDatabase
|
|||||||
|
|
||||||
# Extract VIN from callback data
|
# Extract VIN from callback data
|
||||||
vin = callback.data.split(":")[1]
|
vin = callback.data.split(":")[1]
|
||||||
prices = [LabeledPrice(label="Detailed VIN Report", amount=1)]
|
prices = [LabeledPrice(label="Detailed VIN Report", amount=DECODE_PRICE)]
|
||||||
logging.info(f"Sending invoice for VIN: {vin}")
|
logging.info(f"Sending invoice for VIN: {vin}")
|
||||||
await callback.bot.send_invoice(
|
await callback.bot.send_invoice(
|
||||||
chat_id=callback.message.chat.id,
|
chat_id=callback.message.chat.id,
|
||||||
title="Detailed VIN Information",
|
title="Detailed VIN Information",
|
||||||
description="Get comprehensive vehicle detailed information for 1 Telegram Star",
|
description=f"Get comprehensive vehicle detailed information for {DECODE_PRICE} Telegram Star",
|
||||||
payload=f"detailed_vin_info:{vin}", # Include VIN in payload
|
payload=f"detailed_vin_info:{vin}", # Include VIN in payload
|
||||||
provider_token="", # Empty for Telegram Stars
|
provider_token="", # Empty for Telegram Stars
|
||||||
currency="XTR", # Telegram Stars currency
|
currency="XTR", # Telegram Stars currency
|
||||||
@ -537,7 +584,7 @@ async def process_check_vin(message: Message, state: FSMContext, db: OracleDatab
|
|||||||
|
|
||||||
if salvage_count > 0:
|
if salvage_count > 0:
|
||||||
# Есть записи - показываем кнопки: Pay 10⭐️ for detailed info, Try another VIN, Back to main menu
|
# Есть записи - показываем кнопки: 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=f"Pay {CHECK_PRICE} ⭐️ 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="Try another VIN", callback_data="check_vin")
|
||||||
builder.button(text="Back to Main Menu", callback_data="main_menu")
|
builder.button(text="Back to Main Menu", callback_data="main_menu")
|
||||||
builder.adjust(1, 1, 1) # Each button on separate row
|
builder.adjust(1, 1, 1) # Each button on separate row
|
||||||
@ -570,13 +617,13 @@ async def pay_check_detailed_callback(callback: CallbackQuery, db: OracleDatabas
|
|||||||
|
|
||||||
# Извлекаем VIN из callback data
|
# Извлекаем VIN из callback data
|
||||||
vin = callback.data.split(":")[1]
|
vin = callback.data.split(":")[1]
|
||||||
prices = [LabeledPrice(label="Detailed Salvage Report", amount=10)]
|
prices = [LabeledPrice(label="Detailed Salvage Report", amount=CHECK_PRICE)]
|
||||||
logging.info(f"Sending invoice for salvage check VIN: {vin}")
|
logging.info(f"Sending invoice for salvage check VIN: {vin}")
|
||||||
|
|
||||||
await callback.bot.send_invoice(
|
await callback.bot.send_invoice(
|
||||||
chat_id=callback.message.chat.id,
|
chat_id=callback.message.chat.id,
|
||||||
title="Detailed Salvage Report",
|
title="Detailed Salvage Report",
|
||||||
description="Get comprehensive salvage history and damage information for 10 Telegram Stars",
|
description=f"Get comprehensive salvage history and damage information for {CHECK_PRICE} Telegram Stars",
|
||||||
payload=f"detailed_salvage_check:{vin}", # Уникальный payload для этого типа платежа
|
payload=f"detailed_salvage_check:{vin}", # Уникальный payload для этого типа платежа
|
||||||
provider_token="", # Empty for Telegram Stars
|
provider_token="", # Empty for Telegram Stars
|
||||||
currency="XTR", # Telegram Stars currency
|
currency="XTR", # Telegram Stars currency
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user