diff --git a/apache/tts.conf b/apache/tts.conf deleted file mode 100644 index ba00459..0000000 --- a/apache/tts.conf +++ /dev/null @@ -1,21 +0,0 @@ - - ServerName tts.ncue.net - Redirect permanent / https://tts.ncue.net/ - - - - ServerName tts.ncue.net - - SSLEngine on - SSLCertificateFile /etc/letsencrypt/live/ncue.net/fullchain.pem - SSLCertificateKeyFile /etc/letsencrypt/live/ncue.net/privkey.pem - # 선택: 체인 파일이 필요하면 아래 경로 사용 - # SSLCertificateChainFile /etc/letsencrypt/live/ncue.net/chain.pem - - ProxyRequests Off - ProxyPreserveHost On - - # 전체 프록시 (FastAPI가 정적/템플릿 포함 제공) - ProxyPass / http://127.0.0.1:8019/ - ProxyPassReverse / http://127.0.0.1:8019/ - diff --git a/client/static/app.js b/client/static/app.js index 0c5343a..8235617 100644 --- a/client/static/app.js +++ b/client/static/app.js @@ -84,7 +84,9 @@ function renderList() { } const label = document.createElement("span"); - label.textContent = item.display_time; + label.textContent = item.size_display + ? `${item.display_time} (${item.size_display})` + : item.display_time; label.className = "item-label"; li.appendChild(label); diff --git a/server/main.py b/server/main.py index ac7fc38..8d723a1 100644 --- a/server/main.py +++ b/server/main.py @@ -64,6 +64,23 @@ def ensure_resources_dir(): RESOURCES_DIR.mkdir(parents=True, exist_ok=True) +def format_size(bytes_size: int) -> str: + if bytes_size < 1024: + return f"{bytes_size}B" + if bytes_size < 1024 * 1024: + return f"{bytes_size / 1024:.1f}KB" + return f"{bytes_size / (1024 * 1024):.1f}MB" + + +def get_file_size_display(filename: str | None) -> str | None: + if not filename: + return None + file_path = RESOURCES_DIR / filename + if not file_path.exists(): + return None + return format_size(file_path.stat().st_size) + + @app.on_event("startup") def on_startup(): ensure_resources_dir() @@ -84,6 +101,7 @@ def api_list_tts(): "created_at": row["created_at"].isoformat(), "display_time": format_display_time(row["created_at"]), "filename": row["filename"], + "size_display": get_file_size_display(row["filename"]), } for row in rows ] @@ -117,6 +135,7 @@ def api_create_tts(payload: TtsCreateRequest): "created_at": created_at.isoformat(), "display_time": format_display_time(created_at), "filename": filename, + "size_display": get_file_size_display(filename), }