149 lines
5.6 KiB
Python
149 lines
5.6 KiB
Python
from database import get_user, update_user_description
|
|
from keyboards.reply_keyboards import get_main_menu_keyboard, get_settings_keyboard, get_content_keyboard, get_cabinet_link_keyboard, BUSINESS_TYPES
|
|
from handlers.content import handle_content_generation
|
|
from config import CABINET_WEB_URL
|
|
|
|
def show_main_menu(user_id, bot):
|
|
"""Показывает главное меню"""
|
|
user = get_user(user_id)
|
|
if user:
|
|
bot.send_message(
|
|
user_id,
|
|
"🏠 Главное меню\n\nВыбери действие:",
|
|
reply_markup=get_main_menu_keyboard()
|
|
)
|
|
else:
|
|
bot.send_message(
|
|
user_id,
|
|
"❌ Ты не зарегистрирован. Напиши /start",
|
|
reply_markup=None
|
|
)
|
|
|
|
def handle_menu_choice(message, bot):
|
|
"""Обрабатывает выбор в главном меню"""
|
|
user_id = message.from_user.id
|
|
text = message.text
|
|
|
|
if text == "📋 Мой профиль":
|
|
show_profile(message, bot)
|
|
return True
|
|
|
|
elif text == "✏️ Обновить описание":
|
|
# Запускаем процесс обновления описания
|
|
from handlers.registration import user_data
|
|
user_data[user_id] = {'step': 'edit_description'}
|
|
bot.send_message(
|
|
user_id,
|
|
"📝 Напиши новое описание своего бизнеса:",
|
|
reply_markup=None
|
|
)
|
|
return True
|
|
|
|
elif text == "📊 Статистика":
|
|
show_stats(message, bot)
|
|
return True
|
|
|
|
elif text == "💡 Предложить контент":
|
|
# Показываем выбор платформы для контента
|
|
bot.send_message(
|
|
user_id,
|
|
"📱 Для какой соцсети нужен контент?",
|
|
reply_markup=get_content_keyboard()
|
|
)
|
|
return True
|
|
|
|
elif text == "⚙️ Настройки":
|
|
bot.send_message(
|
|
user_id,
|
|
"⚙️ Настройки:",
|
|
reply_markup=get_settings_keyboard()
|
|
)
|
|
return True
|
|
|
|
# Обработка кнопок настроек
|
|
elif text == "🔔 Включить уведомления":
|
|
bot.send_message(user_id, "✅ Уведомления включены!")
|
|
return True
|
|
|
|
elif text == "🔕 Выключить уведомления":
|
|
bot.send_message(user_id, "🔕 Уведомления выключены!")
|
|
return True
|
|
|
|
elif text == "📝 Сменить тему бизнеса":
|
|
bot.send_message(
|
|
user_id,
|
|
"Напиши новое описание бизнеса:",
|
|
reply_markup=None
|
|
)
|
|
return True
|
|
|
|
elif text == "⬅️ Назад в меню":
|
|
show_main_menu(user_id, bot)
|
|
return True
|
|
|
|
# Обработка выбора платформы для контента
|
|
elif text in ["📝 Пост для Instagram", "💼 Пост для LinkedIn",
|
|
"📱 Пост для Telegram", "🧵 Пост для Twitter/X",
|
|
"🎯 Рекламный пост"]:
|
|
handle_content_generation(message, bot, text)
|
|
return True
|
|
|
|
elif text == "🗂 Личный кабинет":
|
|
bot.send_message(
|
|
user_id,
|
|
"🗂 Полная версия личного кабинета теперь в браузере: профиль, "
|
|
"посты в своём стиле, контент-план, история и статистика.",
|
|
reply_markup=get_cabinet_link_keyboard(CABINET_WEB_URL)
|
|
)
|
|
return True
|
|
|
|
return False
|
|
|
|
def show_profile(message, bot):
|
|
"""Показывает профиль пользователя"""
|
|
user_id = message.from_user.id
|
|
user = get_user(user_id)
|
|
|
|
if not user:
|
|
bot.send_message(user_id, "❌ Ты не зарегистрирован. Напиши /start")
|
|
return
|
|
|
|
business_name = BUSINESS_TYPES.get(str(user[4]), {}).get('name', 'Не указан')
|
|
|
|
profile_text = f"""
|
|
📋 **ТВОЙ ПРОФИЛЬ**
|
|
━━━━━━━━━━━━━━━━━
|
|
|
|
👤 **Имя:** {user[2]}
|
|
📱 **Телефон:** {user[3]}
|
|
🏢 **Вид бизнеса:** {business_name}
|
|
📝 **Описание:**
|
|
{user[5]}
|
|
|
|
━━━━━━━━━━━━━━━━━
|
|
💡 Хочешь обновить описание? Нажми "✏️ Обновить описание"
|
|
"""
|
|
bot.send_message(user_id, profile_text, parse_mode='Markdown')
|
|
show_main_menu(user_id, bot)
|
|
|
|
def show_stats(message, bot):
|
|
"""Показывает статистику"""
|
|
user_id = message.from_user.id
|
|
user = get_user(user_id)
|
|
|
|
if not user:
|
|
bot.send_message(user_id, "❌ Ты не зарегистрирован. Напиши /start")
|
|
return
|
|
|
|
stats_text = f"""
|
|
📊 **СТАТИСТИКА**
|
|
|
|
👤 Ты зарегистрирован как предприниматель
|
|
📋 Тип: {BUSINESS_TYPES.get(str(user[4]), {}).get('name', 'Не указан')}
|
|
📝 Описание: {user[5][:50]}...
|
|
|
|
💡 Совет: Регулярно обновляй информацию о бизнесе,
|
|
чтобы я мог давать тебе точные рекомендации!
|
|
"""
|
|
bot.send_message(user_id, stats_text, parse_mode='Markdown')
|
|
show_main_menu(user_id, bot) |