78 lines
2.9 KiB
Python
78 lines
2.9 KiB
Python
from database import get_user
|
|
from ai_core.neural_network import ContentGenerator
|
|
from keyboards.reply_keyboards import get_content_keyboard, BUSINESS_TYPES
|
|
import time
|
|
|
|
# Создаем экземпляр генератора контента
|
|
content_gen = ContentGenerator()
|
|
|
|
def handle_content_generation(message, bot, platform_text):
|
|
"""Генерирует контент для выбранной платформы"""
|
|
user_id = message.from_user.id
|
|
user = get_user(user_id)
|
|
|
|
if not user:
|
|
bot.send_message(user_id, "❌ Ты не зарегистрирован. Напиши /start")
|
|
return
|
|
|
|
# Извлекаем платформу из текста кнопки
|
|
platform_map = {
|
|
"📝 Пост для Instagram": "instagram",
|
|
"💼 Пост для LinkedIn": "linkedin",
|
|
"📱 Пост для Telegram": "telegram",
|
|
"🧵 Пост для Twitter/X": "twitter",
|
|
"🎯 Рекламный пост": "ad"
|
|
}
|
|
|
|
platform = platform_map.get(platform_text, "instagram")
|
|
platform_emoji = {
|
|
"instagram": "📸",
|
|
"linkedin": "💼",
|
|
"telegram": "📱",
|
|
"twitter": "🐦",
|
|
"ad": "📢"
|
|
}
|
|
|
|
# Получаем данные пользователя
|
|
business_type = BUSINESS_TYPES.get(str(user[4]), {}).get('name', 'Бизнес')
|
|
description = user[5] or "не указано"
|
|
|
|
# Отправляем статус "печатает"
|
|
bot.send_chat_action(user_id, "typing")
|
|
|
|
# Генерируем контент
|
|
try:
|
|
post = content_gen.generate_post(business_type, description, platform)
|
|
|
|
# Отправляем результат
|
|
response_text = f"""
|
|
{platform_emoji.get(platform, '📝')} **ГОТОВЫЙ ПОСТ ДЛЯ {platform.upper()}**
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
{post}
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
💡 **Совет:**
|
|
• Добавь хештеги из поста
|
|
• Прикрепи фото или видео
|
|
• Укажи ссылку на свой сайт
|
|
|
|
📌 Хочешь другой вариант? Снова нажми "💡 Предложить контент"
|
|
"""
|
|
|
|
bot.send_message(user_id, response_text, parse_mode='Markdown')
|
|
|
|
except Exception as e:
|
|
bot.send_message(
|
|
user_id,
|
|
f"❌ Ошибка генерации: {e}\n\nПопробуй позже или обнови описание бизнеса."
|
|
)
|
|
|
|
# Показываем меню выбора платформы для следующего поста
|
|
bot.send_message(
|
|
user_id,
|
|
"📱 Для какой соцсети нужен следующий пост?",
|
|
reply_markup=get_content_keyboard()
|
|
) |