Посібник із розробки скриптів

Щоб створити власний скрипт для 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} Лише Preview: прапорець, який вказує Seer видалити тимчасовий файл після закриття перегляду (не передається скрипту як аргумент).
${type_folder} Лише Controls: використовується для зіставлення типів каталогів.
${use_backslash} Використовувати \ замість / для роздільників шляхів.

Примітка: ${no_cache} є внутрішнім прапорцем Seer і не передається вашому скрипту як аргумент командного рядка.