#!/bin/bash command -v curl >/dev/null 2>&1 || { echo >&2 "Ошибка: curl не установлен"; exit 1; } command -v jq >/dev/null 2>&1 || { echo >&2 "Ошибка: jq не установлен"; exit 1; } if [ $# -lt 1 ]; then echo >&2 "Ошибка: не указан ID страницы для загрузки" echo "Использование: $0 " exit 1 fi [ ! -f .env ] && cp .env.example .env source .env [ -z "$CONF_URL" ] && { echo >&2 "Ошибка: CONF_URL не указан в файле .env"; exit 1; } [ -z "$CONF_USERNAME" ] && { echo >&2 "Ошибка: CONF_USERNAME не указан в файле .env"; exit 1; } [ -z "$CONF_PASSWORD" ] && { echo >&2 "Ошибка: CONF_PASSWORD не указан в файле .env"; exit 1; } PAGE_ID="$1" API_ENDPOINT="${CONF_URL}/spaces/flyingpdf/pdfpageexport.action?pageId=${PAGE_ID}" OUTPUT_PATH="./input_pdf" PDF_PATH="$OUTPUT_PATH/$PAGE_ID.pdf" [ ! -d "$OUTPUT_PATH" ] && mkdir -p "$OUTPUT_PATH" echo echo "Загрузка: $API_ENDPOINT" result=$(curl \ --silent \ --location \ --user "$CONF_USERNAME:$CONF_PASSWORD" \ --header "Accept: application/json" \ --output "$PDF_PATH" \ "${API_ENDPOINT}") if [ ! -f "$PDF_PATH" ]; then echo "Ошибка $result" exit fi API_ENDPOINT="${CONF_URL}/rest/api/content/${PAGE_ID}?expand=children.page" response=$(curl \ --silent \ --user "$CONF_USERNAME:$CONF_PASSWORD" \ --header "Accept: application/json" \ "${API_ENDPOINT}" ) if [ $? -ne 0 ]; then echo "$response" exit 1 fi error_message=$(echo "$response" | jq -r '.message' 2>/dev/null) if [ -n "$error_message" ] && [ "$error_message" != "null" ]; then echo "$response" exit 1 fi title=$(echo "$response" | jq -r .title) PDF_TITLED_PATH="$OUTPUT_PATH/${title//\//_}.pdf" mv "$PDF_PATH" "$PDF_TITLED_PATH" echo "Сохранено: $PDF_TITLED_PATH" child_ids=$(echo "$response" | jq -r '.children.page.results[]?.id' 2>/dev/null) for child_id in $child_ids; do echo "Переход к дочерней странице: $child_id" $0 "$child_id" done