1
0
Files
ollama/rag/1_download_page.sh

51 lines
1.7 KiB
Bash
Executable File

#!/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 <pageId>"
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}/rest/api/content/${PAGE_ID}?expand=body.storage,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
error_message=$(echo "$response" | jq -r '.message' 2>/dev/null)
if [ -n "$error_message" ] && [ "$error_message" != "null" ]; then
echo "$response"
exit 1
fi
output_path="./input_html"
[ ! -d "$output_path" ] && mkdir -p "$output_path"
title=$(echo "$response" | jq -r .title)
content=$(echo "$response" | jq -r .body.storage.value)
echo "<html><body>$content</body></html>" > "$output_path/$title.html"
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 "Переход к дочерней странице: $child_id"
sleep 1
$0 "$child_id"
done