스크립트 개발 가이드

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": "Short description of the script",
    "icon_path": "icon.png", # 컨트롤 유형만 해당
}

2. 기능 구현

  • 미리보기 (Type 0): 입력 파일을 로드/파싱하고 Seer가 기본적으로 지원하는 형식(예: PDF, 이미지 또는 HTML)으로 변환합니다
  • 예제: .epub 파일을 .html로 변환

  • 컨트롤 (Type 1): 컨트롤 바 왼쪽에 버튼을 추가합니다. 클릭하면 정의된 스크립트가 실행됩니다

  • 예제: 현재 미리보기 중인 폴더를 .zip 파일로 압축

  • 속성 (Type 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의 내부 플래그이며 스크립트에 명령줄 인수로 전달되지 않습니다.