Guia de Desenvolvimento de Scripts

Para criar um script personalizado para o Seer, você deve definir os metadados e implementar a lógica funcional correspondente.

1. Definindo Metadados do Script

O Seer inicializa scripts procurando por um dicionário SCRIPT_INFO ou uma função script_info() dentro do seu script.

Campos Obrigatórios

  • name: Nome de exibição do script.
  • type: A categoria funcional:
    • 0: Visualização (Preview)
    • 1: Controles (Controls)
    • 2: Propriedades (Property)
  • extensions: Uma lista de extensões de arquivo (strings). Use ${type_folder} para correspondência de diretórios.
  • arguments: Uma lista de argumentos de CLI (exclua python.exe e o nome do arquivo do script).

Exemplo de Definição

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # Metadados opcionais
    "author": "YourName",
    "version": "1.0.1",
    "description": "Descrição curta do script",
    "icon_path": "icon.png", # Apenas para tipo Controls
}

2. Implementação de Funcionalidades

  • Visualização (Tipo 0): Carrega/analisa o arquivo de entrada e o converte em um formato suportado nativamente pelo Seer (ex.: PDF, imagem ou HTML).
  • Exemplo: Convertendo um arquivo .epub para .html.

  • Controles (Tipo 1): Adiciona um botão ao lado esquerdo da Barra de Controle. Clicar nele executa o script definido.

  • Exemplo: Comprimir a pasta atualmente visualizada em um arquivo .zip.

  • Propriedades (Tipo 2): O Seer executa automaticamente o script após o carregamento bem-sucedido do arquivo. O script deve escrever metadados em um arquivo JSON no local especificado por ${output_file}. O Seer então lê e exibe este conteúdo JSON.

  • Exemplo: Calculando o hash SHA512 de um arquivo.

3. Variáveis Disponíveis

Estes tokens são dinamicamente substituídos pelo Seer e passados como argumentos de linha de comando:

Variável Descrição
${7z} Caminho absoluto para o 7z.exe incluído no Seer.
${seer_exe} Caminho absoluto para Seer.exe.
${seer_dir} Diretório contendo Seer.exe.
${input_file} Caminho para o arquivo/pasta alvo atualmente sendo visualizado.
${output_file} Caminho para o arquivo de saída temporário (obrigatório para scripts Property e alguns Preview).
${no_cache} Apenas Preview: Sinalizador para instruir o Seer a excluir o arquivo temporário após o fechamento da visualização (não passado ao script como argumento).
${type_folder} Apenas Controls: Usado para corresponder tipos de diretório.
${use_backslash} Usar \ em vez de / para separadores de caminho.

Nota: ${no_cache} é um sinalizador interno do Seer e não é passado ao seu script como um argumento de linha de comando.