feat: Implement a web gallery interface with image thumbnail generation and new API endpoints.

This commit is contained in:
sebseb7
2025-12-18 15:35:17 +01:00
parent 6b0381aded
commit 253612bb3b
5 changed files with 1137 additions and 12 deletions

View File

@@ -90,10 +90,21 @@ if [[ "${1:-}" == "--test" ]]; then
echo "✓ fswebcam installed"
# Try capture
TEST_FILE="${TEMP_DIR}/picupper_test_$(date +%s).jpg"
# Get System Info for Overlay
SYSTEM_HOSTNAME=$(hostname)
SYSTEM_IP=$(hostname -I 2>/dev/null | awk '{print $1}') || SYSTEM_IP="unknown"
echo "Capturing test image to: $TEST_FILE"
if fswebcam -d "$VIDEO_DEVICE" -r "$RESOLUTION" -S "$SKIP_FRAMES" --no-banner "$TEST_FILE" 2>/dev/null; then
if fswebcam -d "$VIDEO_DEVICE" -r "$RESOLUTION" -S "$SKIP_FRAMES" \
--title "$CAMERA_ID" \
--subtitle "$SYSTEM_HOSTNAME | $SYSTEM_IP" \
--banner-colour '#AA000000' \
--line-colour '#FF000000' \
--text-colour '#FFFFFF' \
--font "sans:24" \
--timestamp "%Y-%m-%d %H:%M:%S" \
"$TEST_FILE" 2>/dev/null; then
FILE_SIZE=$(stat -f%z "$TEST_FILE" 2>/dev/null || stat -c%s "$TEST_FILE" 2>/dev/null)
echo "✓ Capture successful: $TEST_FILE (${FILE_SIZE} bytes)"
echo ""
@@ -239,7 +250,21 @@ apply_camera_settings
# Capture image
log "Capturing from $VIDEO_DEVICE ($RESOLUTION)"
if ! fswebcam -d "$VIDEO_DEVICE" -r "$RESOLUTION" -S "$SKIP_FRAMES" --no-banner "$TEMP_FILE" 2>/dev/null; then
# Get System Info for Overlay
SYSTEM_HOSTNAME=$(hostname)
# Get first non-loopback IP
SYSTEM_IP=$(hostname -I 2>/dev/null | awk '{print $1}') || SYSTEM_IP="unknown"
if ! fswebcam -d "$VIDEO_DEVICE" -r "$RESOLUTION" -S "$SKIP_FRAMES" \
--title "$CAMERA_ID" \
--subtitle "$SYSTEM_HOSTNAME | $SYSTEM_IP" \
--banner-colour '#AA000000' \
--line-colour '#FF000000' \
--text-colour '#FFFFFF' \
--font "sans:24" \
--timestamp "%Y-%m-%d %H:%M:%S" \
"$TEMP_FILE" 2>/dev/null; then
log_error "Capture failed"
exit 1
fi