#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Пример использования файлового менеджера для Synology NAS
"""

import logging
import asyncio
from telegram.ext import Application

from src.config.config import TELEGRAM_TOKEN
from src.api.synology import SynologyAPI
from src.agents.file_manager_agent import create_file_manager_handler
from src.api.filestation import add_file_manager_methods_to_synology_api
from src.utils.logger import setup_logging

async def main():
    """Главная функция демонстрации файлового менеджера"""
    # Настройка логирования
    setup_logging()
    logger = logging.getLogger(__name__)
    
    # Проверка наличия токена
    if not TELEGRAM_TOKEN:
        logger.error("Telegram token is not set! Please configure TELEGRAM_TOKEN in .env file.")
        return
    
    # Создание и настройка приложения бота
    logger.info("Starting Synology File Manager Demo")
    application = Application.builder().token(TELEGRAM_TOKEN).build()
    
    # Создание экземпляра API и добавление методов для работы с файловой системой
    synology_api = SynologyAPI()
    
    # Регистрация обработчика файлового менеджера
    file_manager_handler = create_file_manager_handler(synology_api)
    application.add_handler(file_manager_handler)
    
    # Запуск бота
    logger.info("Bot started with file manager. Use /files command to start. Press Ctrl+C to stop.")
    await application.start()
    await application.updater.start_polling()
    
    # Ждем прерывание
    try:
        await asyncio.Future()  # Бесконечное ожидание
    finally:
        await application.stop()

if __name__ == "__main__":
    asyncio.run(main())
