Przewodnik tworzenia skryptów

Aby utworzyć niestandardowy skrypt dla Seera, musisz zdefiniować metadane i zaimplementować odpowiednią logikę funkcjonalną.

1. Definiowanie metadanych skryptu

Seer inicjalizuje skrypty, szukając słownika SCRIPT_INFO lub funkcji script_info() w Twoim skrypcie.

Wymagane pola

  • name: Nazwa wyświetlana skryptu.
  • type: Kategoria funkcjonalna:
    • 0: Podgląd
    • 1: Sterowanie
    • 2: Właściwości
  • extensions: Lista rozszerzeń plików (ciągi znaków). Użyj ${type_folder} do dopasowania katalogów.
  • arguments: Lista argumentów CLI (wyklucz python.exe i nazwę pliku skryptu).

Przykładowa definicja

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # Opcjonalne metadane
    "author": "TwojaNazwa",
    "version": "1.0.1",
    "description": "Krótki opis skryptu",
    "icon_path": "icon.png", # Tylko typ Sterowanie
}

2. Implementacja funkcji

  • Podgląd (Typ 0): Ładuje/przetwarza plik wejściowy i konwertuje go do formatu natywnie obsługiwanego przez Seera (np. PDF, obraz lub HTML).
  • Przykład: Konwersja pliku .epub na .html.

  • Sterowanie (Typ 1): Dodaje przycisk po lewej stronie paska sterowania. Kliknięcie go wykonuje zdefiniowany skrypt.

  • Przykład: Kompresowanie aktualnie podglądanego folderu do pliku .zip.

  • Właściwości (Typ 2): Seer automatycznie wykonuje skrypt po pomyślnym załadowaniu pliku. Skrypt musi zapisać metadane do pliku JSON w lokalizacji określonej przez ${output_file}. Seer następnie odczytuje i wyświetla tę zawartość JSON.

  • Przykład: Obliczanie skrótu SHA512 pliku.

3. Dostępne zmienne

Te tokeny są dynamicznie zastępowane przez Seera i przekazywane jako argumenty wiersza poleceń:

Zmienna Opis
${7z} Bezwzględna ścieżka do dołączonego 7z.exe Seera.
${seer_exe} Bezwzględna ścieżka do Seer.exe.
${seer_dir} Katalog zawierający Seer.exe.
${input_file} Ścieżka do pliku/folderu docelowego aktualnie podglądanego.
${output_file} Ścieżka do tymczasowego pliku wyjściowego (wymagane dla skryptów Właściwość i niektórych skryptów Podglądu).
${no_cache} Tylko podgląd: Flaga informująca Seera o usunięciu pliku tymczasowego po zamknięciu podglądu (nie przekazywana do skryptu).
${type_folder} Tylko sterowanie: Używane do dopasowania typów katalogów.
${use_backslash} Użyj \ zamiast / jako separatorów ścieżek.

Uwaga: ${no_cache} to wewnętrzna flaga Seera i nie jest przekazywana do skryptu jako argument wiersza poleceń.