Show file sizes in list
Include mp3 size display in API responses and render it in the list; remove obsolete Apache config.
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName tts.ncue.net
|
||||
Redirect permanent / https://tts.ncue.net/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
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/
|
||||
</VirtualHost>
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user