Guía de Desarrollo de Scripts

Para crear un script personalizado para Seer, debes definir los metadatos e implementar la lógica funcional correspondiente.

1. Definir Metadatos del Script

Seer inicializa los scripts buscando un diccionario SCRIPT_INFO o una función script_info() dentro de tu script.

Campos Requeridos

  • name: Nombre visible del script.
  • type: La categoría funcional:
    • 0: Previsualización
    • 1: Controles
    • 2: Propiedades
  • extensions: Una lista de extensiones de archivo (cadenas). Usa ${type_folder} para coincidencia con directorios.
  • arguments: Una lista de argumentos CLI (excluye python.exe y el nombre del archivo del script).

Ejemplo de Definición

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # Metadatos opcionales
    "author": "YourName",
    "version": "1.0.1",
    "description": "Descripción breve del script",
    "icon_path": "icon.png", # Solo para tipo Controles
}

2. Implementación de Funcionalidad

  • Previsualización (Tipo 0): Carga/analiza el archivo de entrada y lo convierte a un formato compatible nativamente con Seer (ej., PDF, imagen o HTML).
  • Ejemplo: Convertir un archivo .epub a .html.

  • Controles (Tipo 1): Añade un botón al lado izquierdo de la Barra de Control. Al hacer clic se ejecuta el script definido.

  • Ejemplo: Comprimir la carpeta actualmente previsualizada en un archivo .zip.

  • Propiedades (Tipo 2): Seer ejecuta automáticamente el script al cargar exitosamente el archivo. El script debe escribir metadatos en un archivo JSON en la ubicación especificada por ${output_file}. Seer luego lee y muestra este contenido JSON.

  • Ejemplo: Calcular el hash SHA512 de un archivo.

3. Variables Disponibles

Estos tokens son reemplazados dinámicamente por Seer y se pasan como argumentos de línea de comandos:

Variable Descripción
${7z} Ruta absoluta al 7z.exe incluido con Seer.
${seer_exe} Ruta absoluta a Seer.exe.
${seer_dir} Directorio que contiene Seer.exe.
${input_file} Ruta al archivo/carpeta objetivo actualmente en previsualización.
${output_file} Ruta al archivo de salida temporal (requerido para scripts de Propiedad y algunos de Previsualización).
${no_cache} Solo Previsualización: Indicador para que Seer elimine el archivo temporal después de cerrar la previsualización (no se pasa al script como argumento).
${type_folder} Solo Controles: Se usa para coincidir con tipos de directorio.
${use_backslash} Usa \ en lugar de / para los separadores de ruta.

Nota: ${no_cache} es un indicador interno para Seer y no se pasa a tu script como argumento de línea de comandos.