Skriptentwicklungsleitfaden

Um ein benutzerdefiniertes Skript für Seer zu erstellen, müssen Sie die Metadaten definieren und die entsprechende Funktionslogik implementieren.

1. Skript-Metadaten definieren

Seer initialisiert Skripte, indem es nach einem SCRIPT_INFO-Dictionary oder einer script_info()-Funktion in Ihrem Skript sucht.

Erforderliche Felder

  • name: Anzeigename des Skripts.
  • type: Die Funktionskategorie:
    • 0: Vorschau
    • 1: Steuerung
    • 2: Eigenschaften
  • extensions: Eine Liste von Dateierweiterungen (Strings). Verwenden Sie ${type_folder} für Verzeichniszuordnung.
  • arguments: Eine Liste von CLI-Argumenten (ohne python.exe und den Skriptdateinamen).

Beispieldefinition

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # Optionale Metadaten
    "author": "YourName",
    "version": "1.0.1",
    "description": "Kurze Beschreibung des Skripts",
    "icon_path": "icon.png", # Nur für Steuerungstyp
}

2. Funktionsimplementierung

  • Vorschau (Typ 0): Lädt/parst die Eingabedatei und konvertiert sie in ein von Seer nativ unterstütztes Format (z. B. PDF, Bild oder HTML).
  • Beispiel: Konvertieren einer .epub-Datei in .html.

  • Steuerung (Typ 1): Fügt eine Schaltfläche auf der linken Seite der Steuerleiste hinzu. Ein Klick führt das definierte Skript aus.

  • Beispiel: Komprimieren des aktuell vorgesehenen Ordners in eine .zip-Datei.

  • Eigenschaften (Typ 2): Seer führt das Skript automatisch nach erfolgreichem Dateiladen aus. Das Skript muss Metadaten in eine JSON-Datei an dem von ${output_file} angegebenen Speicherort schreiben. Seer liest und zeigt diesen JSON-Inhalt dann an.

  • Beispiel: Berechnen des SHA512-Hashs einer Datei.

3. Verfügbare Variablen

Diese Tokens werden von Seer dynamisch ersetzt und als Befehlszeilenargumente übergeben:

Variable Beschreibung
${7z} Absoluter Pfad zu Seers eingebauter 7z.exe.
${seer_exe} Absoluter Pfad zu Seer.exe.
${seer_dir} Verzeichnis, das Seer.exe enthält.
${input_file} Pfad zur Zieldatei / zum Zielordner in der aktuellen Vorschau.
${output_file} Pfad zur temporären Ausgabedatei (erforderlich für Eigenschafts- und einige Vorschau-Skripte).
${no_cache} Nur Vorschau: Flag, das Seer anweist, die temporäre Datei nach dem Schließen der Vorschau zu löschen (wird nicht als Argument an das Skript übergeben).
${type_folder} Nur Steuerung: Zum Abgleichen von Verzeichnistypen.
${use_backslash} Verwendung von \ anstelle von / für Pfadtrennzeichen.

Hinweis: ${no_cache} ist ein internes Flag für Seer und wird nicht als Befehlszeilenargument an Ihr Skript übergeben.