U
    |h_                     @   s<   d Z ddlZddlmZ ddlmZ e  G dd dZdS )uK   
Конфигурационный файл для Nano Banana Telegram Bot
    N)Optional)load_dotenvc                   @   s  e Zd ZU dZeddZee e	d< eddZ
ee	d< eddZee e	d< dZee	d	< dZee	d
< dZee	d< dZee	d< dZee	d< dZee	d< dZee	d< dZee	d< eddZee	d< dZee	d< dZee	d< dZee	d< dZee	d< d Zee	d!< d"Zee	d#< d$Zee	d%< d&Zee	d'< d(Z ee	d)< d*e d+e d,e d+e  Z!ee	d-< d.d/gZ"e#e	d0< ed1Z$ee e	d1< d2Z%ee	d3< d4d5d6d7d8d9d:d;d<d=d>
Z&e'ed?d@dAZ(e'eedBdCdDZ)dES )FConfigu,   Класс конфигурации ботаTELEGRAM_BOT_TOKENz.8445335004:AAGTfKA3eWSU9Cy-EAv5LVA0JIieBu-6iTANANO_BANANA_API_URLz\https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContentNANO_BANANA_API_KEYZ'AIzaSyAS7dLKgfoqGyq70NznGD45fbf6HRWIDzw   MAX_PHOTOS_IN_ALBUMMIN_PHOTOS_IN_ALBUMg       @ALBUM_PROCESSING_DELAYi,  API_TIMEOUTi  CLEANUP_INTERVALALBUM_EXPIRY_TIMEZtemp_photosTEMP_PHOTOS_DIRi  @MAX_FILE_SIZE	LOG_LEVELINFOz4%(asctime)s - %(name)s - %(levelname)s - %(message)s
LOG_FORMATzgemini-2.5-proDEFAULT_MODELi   DEFAULT_MAX_TOKENSgffffff?DEFAULT_TEMPERATURET	USE_PROXYZttNkVLRSPROXY_LOGINZ63cYXNdr
PROXY_PASSz45.128.56.184PROXY_SERVERZ64826
PROXY_PORTzhttp://:@	PROXY_URLiBli[	ADMIN_IDSHUGGING_FACE_API_TOKENzThttps://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0HUGGING_FACE_API_URLu  
🤖 <b>Добро пожаловать в AI-ИЛЛЮСТРАТОР!</b>

🎨 <b>Что я умею:</b>
• <b>Текст → Изображение:</b> Напишите описание → получите изображение
• <b>Фото → Новое изображение:</b> Отправьте фото с подписью → получите новое изображение в том же стиле
• <b>Альбом → Новое изображение:</b> Отправьте несколько фото с подписью → получите изображение на основе референсов

📋 <b>Как использовать:</b>
1. <b>Просто текст:</b> Напишите "красивый закат" → получите изображение заката
2. <b>Одно фото:</b> Отправьте фото кота с подписью "кот в космосе" → получите кота в космосе в стиле вашего фото
3. <b>Альбом фото:</b> Отправьте несколько фото с подписью "пейзаж в стиле импрессионизма" → получите пейзаж
4. <b>Фото + текст:</b> Отправьте фото с промптом → получите новую сцену с теми же людьми

💡 <b>Примеры промптов:</b>
• "красивая девушка в платье на пляже"
• "мужчина в костюме в офисе" 
• "два человека танцуют на вечеринке"

🎯 <b>Особенность:</b> Бот анализирует людей на ваших фотографиях и создает новые изображения с теми же людьми в новых сценариях!

⚡ <b>Начните прямо сейчас</b> - отправьте фото с промптом!
        u   ❌ Получено {count} фотографий. Пожалуйста, отправьте ровно 2 фотографии в альбоме.u   ❌ Пожалуйста, добавьте промпт к фотографии (описание желаемого изображения).u   ❌ Пожалуйста, отправьте фотографии как альбом (выберите несколько фото одновременно)u   🔄 Обрабатываю ваши фотографии и отправляю запрос в Nano Banana AI...
⏳ Это может занять несколько минут.ur   ✅ Генерация завершена!

📝 Ваш запрос: {caption}

🎨 Результат:
{result}u3   ❌ Ошибка при генерации: {error}u   ⏳ Превышен лимит запросов к Google Gemini API. Попробуйте через несколько минут.u   ❌ Произошла ошибка при обработке ваших фотографий. Попробуйте еще раз.um   ❌ Превышено время ожидания ответа от API. Попробуйте еще раз.)
welcomeZwrong_photo_countZ
no_captionZ	not_album
processingsuccessZ	api_errorZrate_limit_errorZgeneral_errorZtimeout_error)returnc                 C   s^   g }| j s|d | js$|d | j| jk r:|d |rZ|D ]}td|  qBdS dS )uB   Проверка корректности конфигурацииu,   TELEGRAM_BOT_TOKEN не установленu-   NANO_BANANA_API_KEY не установленu@   MAX_PHOTOS_IN_ALBUM должно быть >= MIN_PHOTOS_IN_ALBUMu+   ❌ Ошибка конфигурации: FT)r   appendr   r	   r
   print)clserrorserror r+   7/var/www/u0236315/data/www/consultsolution.ru/config.pyvalidatea   s    


zConfig.validate)keyr%   c              
   K   s`   | j |d}z|jf |W S  tk
rZ } z td| d|  | W Y S d}~X Y nX dS )uV   Получение сообщения с подстановкой параметровu)   Неизвестное сообщениеuE   ⚠️ Ошибка форматирования сообщения 'u+   ': отсутствует параметр N)MESSAGESgetformatKeyErrorr'   )r(   r.   kwargsmessageer+   r+   r,   get_messagev   s    zConfig.get_messageN)*__name__
__module____qualname____doc__osgetenvr   r   str__annotations__r   r   r	   intr
   r   floatr   r   r   r   r   r   r   r   r   r   r   boolr   r   r   r   r   r   listr    r!   r/   classmethodr-   r6   r+   r+   r+   r,   r      sR   
$$r   )r:   r;   typingr   dotenvr   r   r+   r+   r+   r,   <module>   s
   