diff --git a/automation/upload-consultant-photos.sh b/automation/upload-consultant-photos.sh new file mode 100644 index 0000000..85a109c --- /dev/null +++ b/automation/upload-consultant-photos.sh @@ -0,0 +1,121 @@ +#!/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