53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
#!/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())
|