6de2455917
- Added GLOBAL_MARKETS_TITLE to all translation files - Updated footer with 12 markets (4 active + 8 upcoming) - Translated market section to: zh-cn, zh-tw, ja, ko, th, vi, id, ms, hi - Built and deployed to production - CloudFront invalidation: I3RTMXVFDJXWLG3SYX208OP1CC
84 lines
2.0 KiB
Bash
Executable File
84 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# VIMS Photo Upload Script
|
|
# Uploads photos to VIMS API
|
|
|
|
set -e
|
|
|
|
API_URL="${VIMS_API_URL:-http://localhost:3450}"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
show_help() {
|
|
echo "VIMS Photo Upload"
|
|
echo ""
|
|
echo "Usage:"
|
|
echo " $0 -f <photo.jpg> -o <object-id> -a <angle>"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -f Photo file path"
|
|
echo " -o Object ID (from created object)"
|
|
echo " -a Angle: front, back, left, right, top, detail"
|
|
echo " -z Zoomer ID (optional)"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 -f ~/photos/atm1.jpg -o abc-123 -a front"
|
|
echo " $0 -f ~/photos/atm1.jpg -o abc-123 -a left -z zoomer-001"
|
|
}
|
|
|
|
# Parse arguments
|
|
while getopts "f:o:a:z:h" opt; do
|
|
case $opt in
|
|
f) PHOTO="$OPTARG" ;;
|
|
o) OBJECT_ID="$OPTARG" ;;
|
|
a) ANGLE="$OPTARG" ;;
|
|
z) ZOOMER_ID="$OPTARG" ;;
|
|
h) show_help; exit 0 ;;
|
|
*) show_help; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
# Validate
|
|
if [ -z "$PHOTO" ] || [ -z "$OBJECT_ID" ] || [ -z "$ANGLE" ]; then
|
|
echo -e "${RED}Error: Missing required arguments${NC}"
|
|
show_help
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$PHOTO" ]; then
|
|
echo -e "${RED}Error: File not found: $PHOTO${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}Uploading photo to VIMS...${NC}"
|
|
echo " File: $PHOTO"
|
|
echo " Object: $OBJECT_ID"
|
|
echo " Angle: $ANGLE"
|
|
|
|
# Build curl command
|
|
CURL_CMD="curl -s -X POST \"$API_URL/api/v1/observations\" \
|
|
-F \"images=@$PHOTO\" \
|
|
-F \"objectId=$OBJECT_ID\" \
|
|
-F \"angle=$ANGLE\""
|
|
|
|
if [ -n "$ZOOMER_ID" ]; then
|
|
CURL_CMD="$CURL_CMD -F \"zoomerId=$ZOOMER_ID\""
|
|
fi
|
|
|
|
# Upload
|
|
RESPONSE=$(eval $CURL_CMD)
|
|
|
|
# Check response
|
|
if echo "$RESPONSE" | grep -q "error"; then
|
|
echo -e "${RED}Upload failed:${NC}"
|
|
echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE"
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}✓ Upload successful!${NC}"
|
|
echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE"
|
|
fi
|