diff --git a/rag/download.sh b/rag/download.sh index 4602b24..2077bee 100755 --- a/rag/download.sh +++ b/rag/download.sh @@ -1,11 +1,12 @@ #!/bin/bash +# shellcheck disable=SC1091,SC2181 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 " + echo "Использование: $0 [...]" exit 1 fi @@ -16,45 +17,46 @@ source ../.env [ -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}/rest/api/content/${PAGE_ID}?expand=body.view,children.page" - OUTPUT_PATH="./input_html" [ ! -d "$OUTPUT_PATH" ] && mkdir -p "$OUTPUT_PATH" -echo -echo "Загрузка: $API_ENDPOINT" +for PAGE_ID in "$@"; do + API_ENDPOINT="${CONF_URL}/rest/api/content/${PAGE_ID}?expand=body.view,children.page" + echo + echo "Загрузка: $API_ENDPOINT" -response=$(curl -s -u "$CONF_USERNAME:$CONF_PASSWORD" -H "Accept: application/json" "${API_ENDPOINT}") -if [ $? -ne 0 ]; then - echo "$response" - exit 1 -fi + RESPONSE=$(curl -s -u "$CONF_USERNAME:$CONF_PASSWORD" -H "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 + 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) -content=$(echo "$response" | jq -r .body.view.value) + TITLE=$(echo "$RESPONSE" | jq -r .title) + CONTENT=$(echo "$RESPONSE" | jq -r .body.view.value) -if [ -z "$content" ]; then - echo "Пустая страница, пропущено" - exit -fi + if [ -z "$CONTENT" ]; then + echo "Пустая страница, пропущено" + exit + fi -path="$output_path/${title//\//_}.html" -content=${content//href=\"\//href=\"$CONF_URL} -content=${content//src=\"\//src=\"$CONF_URL} + HTML_FILEPATH="$OUTPUT_PATH/${TITLE//\//_}.html" + CONTENT=${CONTENT//href=\"\//href=\"$CONF_URL} + CONTENT=${CONTENT//src=\"\//src=\"$CONF_URL} -url="$CONF_URL/pages/viewpage.action?pageId=$PAGE_ID" -echo -e "@@$url@@\n
Исходная страница: $url

$title

$content" > "$path" -echo "Сохранено: $output_path/$title.html" + URL="$CONF_URL/pages/viewpage.action?pageId=$PAGE_ID" + echo -e "@@$URL@@\n
Исходная страница: $URL

$TITLE

$CONTENT" > "$HTML_FILEPATH" + echo "Сохранено: $OUTPUT_PATH/$TITLE.html" + + CHILD_IDS=$(echo "$RESPONSE" | jq -r '.children.page.results[]?.id' 2>/dev/null) + for CHILD_ID in $CHILD_IDS; do + echo "Переход к дочерней странице: $PAGE_ID => $CHILD_ID" + $0 "$CHILD_ID" + done -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