Руководство по разработке скриптов

Чтобы создать собственный скрипт для Seer, необходимо определить метаданные и реализовать соответствующую функциональную логику.

1. Определение метаданных скрипта

Seer инициализирует скрипты, ища словарь SCRIPT_INFO или функцию script_info() в вашем скрипте.

Обязательные поля

  • name: Отображаемое имя скрипта.
  • type: Функциональная категория:
    • 0: Предпросмотр
    • 1: Управление
    • 2: Свойства
  • extensions: Список расширений файлов (строки). Используйте ${type_folder} для сопоставления с каталогами.
  • arguments: Список аргументов CLI (исключая python.exe и имя файла скрипта).

Пример определения

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # Опциональные метаданные
    "author": "YourName",
    "version": "1.0.1",
    "description": "Краткое описание скрипта",
    "icon_path": "icon.png", # Только для типа Controls
}

2. Реализация функциональности

  • Предпросмотр (Тип 0): Загружает/разбирает входной файл и преобразует его в формат, нативно поддерживаемый Seer (например, PDF, изображение или HTML).
  • Пример: Конвертация файла .epub в .html.

  • Управление (Тип 1): Добавляет кнопку в левую часть панели управления. Нажатие выполняет определённый скрипт.

  • Пример: Сжатие текущей просматриваемой папки в файл .zip.

  • Свойства (Тип 2): Seer автоматически выполняет скрипт после успешной загрузки файла. Скрипт должен записать метаданные в JSON-файл по пути, указанному в ${output_file}. Затем Seer читает и отображает это JSON-содержимое.

  • Пример: Вычисление хеша SHA512 файла.

3. Доступные переменные

Эти токены динамически заменяются Seer и передаются в качестве аргументов командной строки:

Переменная Описание
${7z} Абсолютный путь к встроенному 7z.exe в Seer.
${seer_exe} Абсолютный путь к Seer.exe.
${seer_dir} Каталог, содержащий Seer.exe.
${input_file} Путь к целевому файлу/папке, просматриваемому в данный момент.
${output_file} Путь к временному выходному файлу (требуется для скриптов Property и некоторых Preview).
${no_cache} Только предпросмотр: Флаг, указывающий Seer удалить временный файл после закрытия предпросмотра (не передаётся скрипту как аргумент).
${type_folder} Только Controls: Используется для сопоставления с каталогами.
${use_backslash} Использовать \ вместо / для разделителей путей.

Примечание: ${no_cache} — это внутренний флаг Seer и не передаётся вашему скрипту как аргумент командной строки.