スクリプト開発ガイド

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", # コントロールタイプのみ
}

2. 機能の実装

  • プレビュー(タイプ 0): 入力ファイルを読み込み/解析し、Seer がネイティブでサポートする形式(PDF、画像、HTML など)に変換します。
  • 例: .epub ファイルを .html に変換。

  • コントロール(タイプ 1): コントロールバーの左側にボタンを追加します。クリックすると定義されたスクリプトが実行されます。

  • 例: 現在プレビュー中のフォルダを .zip ファイルに圧縮。

  • プロパティ(タイプ 2): ファイルの読み込み成功時に Seer が自動的にスクリプトを実行します。スクリプトは ${output_file} で指定された場所に JSON ファイルにメタデータを書き込む必要があります。Seer はこの JSON コンテンツを読み取って表示します。

  • 例: ファイルの SHA512 ハッシュを計算。

3. 利用可能な変数

これらのトークンは Seer によって動的に置き換えられ、コマンドライン引数として渡されます:

変数 説明
${7z} Seer にバンドルされている 7z.exe の絶対パス。
${seer_exe} Seer.exe の絶対パス。
${seer_dir} Seer.exe を含むディレクトリ。
${input_file} 現在プレビュー中のターゲットファイル/フォルダへのパス。
${output_file} 一時出力ファイルへのパス(プロパティおよび一部のプレビュースクリプトに必要)。
${no_cache} プレビューのみ: プレビュー終了後に一時ファイルを削除するよう Seer に指示するフラグ(スクリプトに引数として渡されません)。
${type_folder} コントロールのみ: ディレクトリタイプのマッチングに使用されます。
${use_backslash} パス区切り文字に / の代わりに \ を使用します。

注: ${no_cache} は Seer の内部フラグであり、スクリプトにコマンドライン引数として渡されません。