Руководство по разработке скриптов
Чтобы создать собственный скрипт для 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 и не передаётся вашему скрипту как аргумент командной строки.