Files
nas_control_bot/docs/file_manager_agent.md
2025-08-30 14:42:08 +09:00

4.1 KiB
Raw Blame History

Агент файлового менеджера для Synology Power Control Bot

Описание

Агент файлового менеджера предоставляет удобный интерфейс для просмотра, управления и манипулирования файловой системой Synology NAS через Telegram бота. Агент разработан с использованием модульной архитектуры и предоставляет интуитивно понятный интерфейс с кнопками и диалоговыми окнами.

Функциональность

  • Просмотр содержимого директорий - навигация по файловой системе NAS
  • Загрузка и скачивание файлов - передача файлов между NAS и устройством пользователя
  • Управление файлами - переименование, удаление, получение информации о файлах
  • Создание папок - создание новых директорий на NAS
  • Пагинация - удобная навигация при большом количестве файлов

Использование

Для начала работы с файловым менеджером отправьте команду /files боту. После этого вы увидите список доступных общих папок на вашем NAS. Используйте интерактивные кнопки для навигации и выполнения различных действий с файлами.

Основные команды

  • /files - запуск файлового менеджера
  • /files [path] - открытие файлового менеджера с указанным путем

Интерфейс и навигация

Интерфейс файлового менеджера состоит из:

  • Информации о текущей директории (путь, количество файлов и папок)
  • Списка папок и файлов с кнопками для взаимодействия
  • Кнопок навигации (Вверх, Вперед, Назад)
  • Кнопок действий (Загрузить файл, Создать папку)

Структура кода

Агент файлового менеджера состоит из следующих основных компонентов:

  • FileManagerAgent - основной класс агента, реализующий логику файлового менеджера
  • SynologyAPI - класс для взаимодействия с API Synology NAS
  • filestation.py - модуль, расширяющий SynologyAPI методами для работы с файлами

Интеграция

Агент файлового менеджера можно легко интегрировать в любого Telegram бота с помощью функции create_file_manager_handler(), которая возвращает готовый ConversationHandler для регистрации в диспетчере бота.

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

# Создание экземпляра API
synology_api = SynologyAPI()

# Создание обработчика
file_manager_handler = create_file_manager_handler(synology_api)

# Регистрация обработчика в приложении бота
application.add_handler(file_manager_handler)

Безопасность

Агент файлового менеджера использует декоратор @admin_required для обеспечения доступа только авторизованным пользователям. Это защищает файловую систему NAS от несанкционированного доступа.