Files
nas_control_bot/examples/file_manager_demo.py
2025-08-30 14:42:08 +09:00

53 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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())