Files
2026-09-14 12:43:38 +02:00

114 lines
5.3 KiB
Bash
Executable File

#!/bin/bash
SITES=("https://www.fondsprofessionell.at/fonds/details/fondsName/Amundi-Komfort-Invest-traditionell-T/ISIN/AT0000801071/fondsID/FU_80107/"
"https://www.fondsprofessionell.at/fonds/details/ISIN/AT0000A2L443/fondsID/FU_100076607/"
"https://www.fondsprofessionell.at/fonds/details/fondsName/Amundi-CPR-Climate-Action-T/ISIN/AT0000A28YU4/fondsID/FU_100070247/"
"https://www.finanzen.net/index/dow_jones" "https://www.finanzen.net/index/dax" "https://www.finanzen.net/index/atx")
if [ -f /home/lucas/Documents/Dokumente/Projekte/Server/www/BA_Data.html ]; then
BA_JS="/home/lucas/Documents/Dokumente/Projekte/Server/www/data.js"
BA_DATA="/home/lucas/Documents/Dokumente/Projekte/Server/www/BA_Data.html"
else
exit
fi
DEBUG=false
if [ "$1" == "-d" ];then
DEBUG=true
fi
DATE="$(date +"%d.%m.%Y")"
if [ $# -eq 3 ]; then
KURS_INET1="$1"
KURS_INET2="$2"
KURS_INET3="$3"
else
KURS_INET1=""
KURS_INET2=""
KURS_INET3=""
DOWJ=""
DAX=""
GET=true
if ${GET}; then
KURS_INET1=$(wget -qO- ${SITES[0]} | sed 's/<\//\n<\//g' | grep -A2 "NAV am" | grep -o -P '(?<=<td> ).*(?=EUR)' | sed 's/ //g' | sed 's/,/./g')
KURS_INET2=$(wget -qO- ${SITES[1]} | sed 's/<\//\n<\//g' | grep -A2 "NAV am" | grep -o -P '(?<=<td> ).*(?=EUR)' | sed 's/ //g' | sed 's/,/./g')
#KURS_INET2=$(wget -qO- ${SITES[1]} | grep "Rücknahmepreis" | grep -o -P '(?<=right">).*(?=</td>)' | sed 's/,/./g')
KURS_INET3=$(wget -qO- ${SITES[2]} | sed 's/<\//\n<\//g' | grep -A2 "NAV am" | grep -o -P '(?<=<td> ).*(?=EUR)' | sed 's/ //g' | sed 's/,/./g')
DOWJ=$(wget -qO- ${SITES[3]} | sed 's/<tr>/<tr>\n/g' | grep -A3 '<strong>Kurs</strong>' | grep -o -E "[0-9]+\.[0-9]+,[0-9]{2}" | tr -d '.' | tr ',' '.' | tail -1)
DAX=$(wget -qO- ${SITES[4]} | sed 's/<tr>/<tr>\n/g' | grep -A3 '<strong>Kurs</strong>' | grep -o -E "[0-9]+\.[0-9]+,[0-9]{2}" | tr -d '.' | tr ',' '.' | tail -1)
ATX=$(wget -qO- ${SITES[5]} | sed 's/<tr>/<tr>\n/g' | grep -A3 '<strong>Kurs</strong>' | grep -o -E "[0-9]+\.[0-9]+,[0-9]{2}" | tr -d '.' | tr ',' '.' | tail -1)
fi
fi
#if [ "$(cat ${BA_DATA} | grep -F "<td>${DATE}</td>")" == "" ]; then
# if [[ "${KURS_INET1}" != "" ]] && [[ "${KURS_INET2}" != "" ]] && [[ "${KURS_INET3}" != "" ]] && [[ "${DATE}" != "" ]]; then
# sed -i 's/<\/table>/<tr><td>'"${KURS_INET1}"'<\/td><td>'"${KURS_INET2}"'<\/td><td>'"${KURS_INET3}"'<\/td><td>'"${DATE}"'<\/td><\/tr><\/table>/g' ${BA_DATA}
# fi
IFS=$'\n'; set -f
KURSE_INET=("${KURS_INET1}" "${KURS_INET2}" "${KURS_INET3}" "${DOWJ}" "${DAX}" "${ATX}")
KURSE_LOCAL=($(cat ${BA_JS} | grep '.data' | rev | cut -d',' -f 1 | rev | sed 's/\];//g'))
DATE_LOCAL="$(cat ${BA_JS} | grep 'date' | rev | cut -d',' -f 1 | rev | sed 's/\];//g' | tr -d "\'")"
if ${DEBUG}; then
echo "${#KURSE_INET[@]} -eq ${#KURSE_LOCAL[@]}"
fi
ALL_THERE=true
for ((i=0;i<${#KURSE_INET[@]};i++)); do
if [[ "${KURSE_INET[$i]}" == "" ]]; then
ALL_THERE=false
if ${DEBUG}; then
echo "$i: ${KURSE_INET[$i]}"
fi
fi
done
if [[ "${ALL_THERE}" == "true" ]]; then
CHANGE=false
unset IFS; set +f
if ${DEBUG}; then
printf "Inet\t\tLocal\n"
fi
for ((i=0;i<${#KURSE_INET[@]};i++)); do
if ${DEBUG}; then
printf "%s\t\t%s\n" "${KURSE_INET[$i]}" "${KURSE_LOCAL[$i]}"
fi
if [ "${KURSE_INET[$i]}" != "${KURSE_LOCAL[$i]}" ]; then
CHANGE=true
printf "Diff: %s\t\t%s\n" "${KURSE_INET[$i]}" "${KURSE_LOCAL[$i]}"
fi
done
if [[ "${CHANGE}" == "true" ]]; then
if [[ "${DATE}" == "${DATE_LOCAL}" ]]; then
if ${DEBUG}; then echo "Change on same Date"; fi
sed -i 's/<tr><td>'"${KURS_LOCAL[0]}"'<\/td><td>'"${KURS_LOCAL[1]}"'<\/td><td>'"${KURS_LOCAL[2]}"'<\/td><td>'"${DATE}"'<\/td><\/tr>/<tr><td>'"${KURSE_INET[0]}"'<\/td><td>'"${KURSE_INET[1]}"'<\/td><td>'"${KURSE_INET[2]}"'<\/td><td>'"${DATE}"'<\/td><\/tr>/g' ${BA_DATA}
sed -i 's/\(fond_trad\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[0]}"'];/g' ${BA_JS}
sed -i 's/\(fond_dyn\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[1]}"'];/g' ${BA_JS}
sed -i 's/\(fond_climate\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[2]}"'];/g' ${BA_JS}
sed -i 's/\(fond_doj\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[3]}"'];/g' ${BA_JS}
sed -i 's/\(fond_dax\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[4]}"'];/g' ${BA_JS}
sed -i 's/\(fond_atx\.data.*\),[0-9]\+\.[0-9]\{2\}\];/\1,'"${KURSE_INET[5]}"'];/g' ${BA_JS}
touch ${BA_DATA}
touch ${BA_JS}
else
if ${DEBUG}; then echo "Change on New Date"; fi
sed -i 's/<\/table>/<tr><td>'"${KURSE_INET[0]}"'<\/td><td>'"${KURSE_INET[1]}"'<\/td><td>'"${KURSE_INET[2]}"'<\/td><td>'"${DATE}"'<\/td><\/tr><\/table>/g' ${BA_DATA}
## data.js ##
sed -i 's/\(fond_trad\.data.*\)\];/\1,'"${KURSE_INET[0]}"'];/g' ${BA_JS}
echo $?
sed -i 's/\(fond_dyn\.data.*\)\];/\1,'"${KURSE_INET[1]}"'];/g' ${BA_JS}
echo $?
sed -i 's/\(fond_climate\.data.*\)\];/\1,'"${KURSE_INET[2]}"'];/g' ${BA_JS}
echo $?
sed -i 's/\(date.*\)\];/\1,'"'${DATE}'"'];/g' ${BA_JS}
echo $?
sed -i 's/\(fond_doj\.data.*\)\];/\1,'"${KURSE_INET[3]}"'];/g' ${BA_JS}
echo $?
sed -i 's/\(fond_dax\.data.*\)\];/\1,'"${KURSE_INET[4]}"'];/g' ${BA_JS}
echo $?
sed -i 's/\(fond_atx\.data.*\)\];/\1,'"${KURSE_INET[5]}"'];/g' ${BA_JS}
echo $?
touch ${BA_DATA}
touch ${BA_JS}
fi
else
if ${DEBUG}; then echo No Change; fi
fi
fi
if [ "$(which syncNC)" != "" ]; then
syncNC > /dev/null 2>&1
fi