Files

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)