122 lines
4.2 KiB
Bash
122 lines
4.2 KiB
Bash
#!/bin/bash
|
|
# Consultant Photos Upload Script
|
|
# Created by The Builder (Chronicler the Sixth) - February 13, 2026
|
|
# For The Seventh to execute
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
GITEA_TOKEN="YOUR_TOKEN_HERE" # The Seventh: Retrieve from Vaultwarden
|
|
GITEA_URL="https://git.firefrostgaming.com/api/v1/repos/firefrost-gaming/firefrost-operations-manual/contents"
|
|
PHOTO_DIR="/tmp" # Directory containing renamed photos
|
|
|
|
# Color output
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "${BLUE} Consultant Photos Upload Script${NC}"
|
|
echo -e "${BLUE} The Builder → The Seventh${NC}"
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo ""
|
|
|
|
# Check for token
|
|
if [ "$GITEA_TOKEN" = "YOUR_TOKEN_HERE" ]; then
|
|
echo "ERROR: Please retrieve Gitea API token from Vaultwarden and update GITEA_TOKEN variable"
|
|
echo "Token is stored as: 'Gitea API Token (Command Center)'"
|
|
exit 1
|
|
fi
|
|
|
|
# Photos to upload (already renamed by The Builder)
|
|
declare -A PHOTOS
|
|
PHOTOS["2016/2016-11-19_butter-with-companion-cuddling-gladys-era_01.jpg"]="Butter with companion - Gladys era"
|
|
PHOTOS["2016/2016-11-19_butter-kitten-with-toys-first-year_01.jpg"]="Butter as kitten - First year"
|
|
PHOTOS["2017/2017-10-09_butter-on-bed-ice-king-surveying_01.jpg"]="Butter surveying domain - Ice King"
|
|
PHOTOS["2020/2020-04-14_butter-relaxed-pre-throne-era_01.jpg"]="Butter relaxed - Pre-throne era"
|
|
PHOTOS["2020/2020-10-31_oscar-formal-portrait-sentinel-duty_01.jpg"]="Oscar formal portrait - Sentinel on duty"
|
|
PHOTOS["2021/2021-03-17_oscar-derpy-happy-expression-recruit_01.jpg"]="Oscar derpy expression - The recruit"
|
|
PHOTOS["2022/2022-06-11_jasmine-red-collar-protector-training_01.jpg"]="Jasmine - Protector in training"
|
|
PHOTOS["2023/2023-04-17_jack-profile-ambassador-contemplative_01.jpg"]="Jack profile - Ambassador contemplative"
|
|
PHOTOS["2024/2024-02-02_michael-and-jack-wizard-companion-partnership_01.jpg"]="Michael with Jack - The partnership"
|
|
PHOTOS["2025/2025-02-07_noir-lounging-blankets-converted-peaceful_01.jpg"]="Noir lounging - The Converted at peace"
|
|
|
|
# Function to upload a photo
|
|
upload_photo() {
|
|
local path=$1
|
|
local description=$2
|
|
local filename=$(basename "$path")
|
|
local filepath="photos/images/$path"
|
|
|
|
echo -e "${BLUE}Uploading:${NC} $filename"
|
|
echo -e " Description: $description"
|
|
|
|
# Check if file exists
|
|
if [ ! -f "${PHOTO_DIR}/${filename}" ]; then
|
|
echo " ERROR: File not found: ${PHOTO_DIR}/${filename}"
|
|
return 1
|
|
fi
|
|
|
|
# Encode to base64
|
|
local content=$(base64 -w 0 "${PHOTO_DIR}/${filename}")
|
|
|
|
# Upload via Gitea API
|
|
local response=$(curl -s -X POST \
|
|
-H "Authorization: token ${GITEA_TOKEN}" \
|
|
-H "Content-Type: application/json" \
|
|
"${GITEA_URL}/${filepath}" \
|
|
-d "{
|
|
\"message\": \"Add consultant photo: ${description}\",
|
|
\"content\": \"${content}\"
|
|
}")
|
|
|
|
# Check if successful
|
|
if echo "$response" | grep -q '"sha"'; then
|
|
echo -e " ${GREEN}✓ Uploaded successfully${NC}"
|
|
return 0
|
|
else
|
|
echo " ERROR: Upload failed"
|
|
echo " Response: $response"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Upload all photos
|
|
echo "Starting upload of 10 consultant photos..."
|
|
echo ""
|
|
|
|
SUCCESS_COUNT=0
|
|
FAIL_COUNT=0
|
|
|
|
for path in "${!PHOTOS[@]}"; do
|
|
description="${PHOTOS[$path]}"
|
|
if upload_photo "$path" "$description"; then
|
|
((SUCCESS_COUNT++))
|
|
else
|
|
((FAIL_COUNT++))
|
|
fi
|
|
echo ""
|
|
sleep 1 # Rate limiting courtesy
|
|
done
|
|
|
|
echo -e "${BLUE}========================================${NC}"
|
|
echo -e "Upload Summary:"
|
|
echo -e " ${GREEN}Successful: ${SUCCESS_COUNT}${NC}"
|
|
if [ $FAIL_COUNT -gt 0 ]; then
|
|
echo -e " Failed: ${FAIL_COUNT}"
|
|
fi
|
|
echo -e "${BLUE}========================================${NC}"
|
|
|
|
if [ $FAIL_COUNT -eq 0 ]; then
|
|
echo -e "${GREEN}All photos uploaded successfully!${NC}"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Verify photos in repo: git.firefrostgaming.com"
|
|
echo "2. Update photos/catalog.md with entries from consultant-photos-catalog-additions.md"
|
|
echo "3. Review consultant-profiles.md to understand the lore"
|
|
exit 0
|
|
else
|
|
echo "Some uploads failed. Review errors above."
|
|
exit 1
|
|
fi
|