40 lines
2.0 KiB
Python
40 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""P2V 모듈 상수."""
|
|
|
|
from typing import Final
|
|
|
|
# =============================================================================
|
|
# 크레딧 원장 멱등 키
|
|
# =============================================================================
|
|
#: credit_transaction.job_type 값. (job_type, job_ref, type) 유니크로 중복 차감을 막는다.
|
|
#: job_ref 는 p2v_video.id / p2v_poster.id 의 문자열이다 (P2V 서버 잡 id 가 아니다).
|
|
JOB_TYPE_P2V_F1: Final[str] = "p2v_f1"
|
|
JOB_TYPE_P2V_F2: Final[str] = "p2v_f2"
|
|
|
|
|
|
# =============================================================================
|
|
# 잡 상태
|
|
# =============================================================================
|
|
# P2V 서버가 보고하는 상태에 castad 전용 'archiving'(Blob 업로드 중)을 더한 축.
|
|
STATUS_QUEUED: Final[str] = "queued"
|
|
STATUS_RUNNING: Final[str] = "running"
|
|
STATUS_AWAITING_REVIEW: Final[str] = "awaiting_review"
|
|
STATUS_ARCHIVING: Final[str] = "archiving"
|
|
STATUS_DONE: Final[str] = "done"
|
|
STATUS_FAILED: Final[str] = "failed"
|
|
|
|
#: 고아 스윕 대상 — 이 상태로 P2V_ORPHAN_TIMEOUT_HOURS 를 넘기면 환불·실패 처리한다.
|
|
ORPHAN_STATUSES: Final[frozenset[str]] = frozenset(
|
|
{STATUS_QUEUED, STATUS_RUNNING, STATUS_AWAITING_REVIEW}
|
|
)
|
|
|
|
|
|
# =============================================================================
|
|
# 정적 파일 프록시 화이트리스트
|
|
# =============================================================================
|
|
# P2V 의 /files/* 마운트 중 castad 프록시가 인증 없이 중계해도 되는 것만 나열한다.
|
|
# render/·uploads/·f2/ 는 결과물·원본이라 Blob 으로만 나간다 — 프록시 금지.
|
|
# 검수용 regions/ 는 별도 라우트(/p2v/files/regions/*)가 로그인 필수로 중계한다.
|
|
#: 인증 없이 중계 (템플릿 썸네일 — <img src> 는 헤더를 못 붙이고, 내용도 공개 명화다)
|
|
PUBLIC_FILE_PREFIXES: Final[tuple[str, ...]] = ("templates/", "user_templates/")
|