58 lines
2.5 KiB
Bash
58 lines
2.5 KiB
Bash
function get_marketdata {
|
|
local f_url="$1"
|
|
local f_name="$2"
|
|
|
|
## get data for analysis
|
|
if find asset-histories/${f_name}.history.csv -mmin -${INTERVAL_MIN} | grep -q "asset-histories/${f_name}.history.csv"
|
|
then
|
|
g_echo_note "asset-histories/${f_name}.history.csv already downloaded in the last ${INTERVAL_MIN} minutes"
|
|
f_get_marketdata_price=$(cat MARKET_DATA_CMD_OUT-${f_name})
|
|
return 0
|
|
fi
|
|
|
|
# check source platform for parsing parameters, prepare and run wget command
|
|
>MARKET_DATA_CMD
|
|
echo ${f_url} | grep -q "boerse.de" && echo "wget -q -O - ${f_url} | egrep 'itemprop=\"price\" content=\"[0-9]+\.[0-9]+\"' | sed s'#\"#\n#g' | egrep '^[0-9]+\.[0-9]+'" >MARKET_DATA_CMD
|
|
echo ${f_url} | egrep -q "investing.com.+economic-calendar" && echo "wget -q -O - ${f_url} | egrep 'Actual.+Forecast.+Previous' | cut -d'>' -f7,11 | cut -d'<' -f1,2 | sed 's#,##g' | sed 's#\%##g' | sed 's#</div>#,#' | grep '[0-9]'" >MARKET_DATA_CMD
|
|
echo ${f_url} | egrep -q "investing.com.+indices" && echo "wget -q -O - ${f_url} | sed 's#</div>#\n#g' | grep 'text-5xl.*font-bold.*md:text-' | sed 's#^.*>##; s#,##g' | grep '[0-9]'" >MARKET_DATA_CMD
|
|
[ -s MARKET_DATA_CMD ] || echo "wget -q -O - ${f_url}" >MARKET_DATA_CMD
|
|
|
|
g_runcmd g_retrycmd sh MARKET_DATA_CMD >MARKET_DATA_CMD_OUT-${f_name}.tmp 2>MARKET_DATA_CMD_OUT-${f_name}.tmp.err
|
|
|
|
# check output
|
|
if [ -s MARKET_DATA_CMD_OUT-${f_name}.tmp ] && egrep -q "^[0-9]*\.[0-9]+" MARKET_DATA_CMD_OUT-${f_name}.tmp
|
|
then
|
|
if egrep -q "^0\.00" MARKET_DATA_CMD_OUT-${f_name}.tmp
|
|
then
|
|
g_echo_note "Ignoring ${f_name} $(tail -n 10 MARKET_DATA_CMD_OUT-${f_name}.tmp) - maybe out of business day"
|
|
else
|
|
g_echo_note "${f_name}: $(tail -n 10 MARKET_DATA_CMD_OUT-${f_name}.tmp)"
|
|
mv MARKET_DATA_CMD_OUT-${f_name}.tmp MARKET_DATA_CMD_OUT-${f_name}
|
|
fi
|
|
else
|
|
g_echo_warn "MARKET_DATA_CMD_OUT-${f_name}.tmp has wrong Syntax. - Not updating ${f_name} Index.
|
|
|
|
CMD:
|
|
$(tail -n 10 MARKET_DATA_CMD);
|
|
|
|
Output:
|
|
$(tail -n 10 MARKET_DATA_CMD_OUT-${f_name}.tmp | cat -t);
|
|
|
|
Error:
|
|
$(tail -n 10 MARKET_DATA_CMD_OUT-${f_name}.tmp.err | cat -t)"
|
|
fi
|
|
if ! [ -e "MARKET_DATA_CMD_OUT-${f_name}" ]
|
|
then
|
|
local f_old_value=$(tail -n 1 asset-histories/${f_name}.history.csv | cut -d, -f2)
|
|
if echo ${f_old_value} | egrep -q "^[0-9]*\.[0-9]+"
|
|
then
|
|
echo ${f_old_value} >MARKET_DATA_CMD_OUT-${f_name}
|
|
else
|
|
echo 0 >MARKET_DATA_CMD_OUT-${f_name}
|
|
fi
|
|
fi
|
|
f_get_marketdata_price=$(cat MARKET_DATA_CMD_OUT-${f_name})
|
|
echo "${f_timestamp},${f_get_marketdata_price}" >>asset-histories/${f_name}.history.csv
|
|
}
|
|
|