Improve error handling and translate messages to English

This commit is contained in:
YusufB5 2026-05-03 21:36:14 +03:00
parent 95a3029679
commit e7002173c2
3 changed files with 26 additions and 8 deletions

9
app.js
View file

@ -85,6 +85,15 @@ function startStream() {
if (state !== 'PLAYING') return;
if (typeof event.data === 'string') {
if (event.data.startsWith('Error:')) {
statusEl.textContent = event.data;
statusEl.style.color = '#ff0000';
state = 'IDLE';
if (ws) ws.close();
setTimeout(() => resetToIdle(), 3000);
return;
}
if (event.data.startsWith('INIT:')) {
const p = event.data.split(':');
targetFps = parseFloat(p[1]);

View file

@ -37,7 +37,7 @@ class VideoDecoder:
def __init__(self, path: str, cols: int, rows: int) -> None:
self._cap = cv2.VideoCapture(path)
if not self._cap.isOpened():
raise FileNotFoundError(f"Video açılamadı: {path!r}")
raise FileNotFoundError(f"Could not open video file: {path!r}")
self.fps : float = self._cap.get(cv2.CAP_PROP_FPS) or 24.0
self.frame_count : int = int(self._cap.get(cv2.CAP_PROP_FRAME_COUNT))
@ -294,9 +294,13 @@ if __name__ == "__main__":
custom_palette = args.palette.split() if args.palette else None
renderer = TerminalRenderer(
path = args.video,
palette = custom_palette,
quantize_bits = args.quality,
)
renderer.play()
try:
renderer = TerminalRenderer(
path = args.video,
palette = custom_palette,
quantize_bits = args.quality,
)
renderer.play()
except FileNotFoundError as e:
print(f"\n[Error] {e}")
sys.exit(1)

View file

@ -125,7 +125,12 @@ if __name__ == "__main__":
app.state.cols = args.cols
app.state.rows = args.rows
print(f"[{args.video}] ready to stream. Mode: {args.mode}, Res: {args.cols}x{args.rows}")
if not os.path.exists(args.video):
print(f"\n[WARNING] Video file '{args.video}' not found!")
print("The server will start, but streaming will fail until the file is provided.\n")
else:
print(f"[{args.video}] ready to stream. Mode: {args.mode}, Res: {args.cols}x{args.rows}")
print(f"Starting server... Please go to http://localhost:{args.port} in your browser.")
uvicorn.run(app, host="0.0.0.0", port=args.port, ws_ping_interval=None, ws_ping_timeout=None)