function query()

This commit is contained in:
2021-04-18 16:57:57 +02:00
parent 31c579e9c9
commit 4d8c96c2bc
2 changed files with 33 additions and 27 deletions

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
while true; do clear; ./stocks.sh $(cat ~/.ticker.conf); sleep 60; done
refresh="60"
while true; do clear; ./stocks.sh $(cat ~/.ticker.conf); sleep $refresh; done

View File

@@ -15,7 +15,8 @@ LANG=C
LC_NUMERIC=C
SYMBOLS=("$@")
echo "${SYMBOLS[*]}"
#echo "${SYMBOLS[*]}"
#^FCHI AC.PA ALCLS.PA ATO.PA AUB.PA CS.PA DG.PA ORA.PA VIRB.PA WLN.PA
if ! $(type jq > /dev/null 2>&1); then
echo "'jq' is not in the PATH. (See: https://stedolan.github.io/jq/)"
@@ -36,54 +37,57 @@ results=$(curl --silent "$API_ENDPOINT&fields=$fields&symbols=$symbols" | jq '.q
#echo "$results"
query () {
echo $results | jq -r ".[] | select(.symbol == \"$1\") | .$2"
echo "$obj" | jq -r ".$1"
}
t=0
echo -e "${bold}stocks.sh${reset}\n"
while IFS= read -r obj; do
marketState=$(echo "$obj" | jq -j '.marketState')
symbol=$(echo "$obj" | jq -j '.symbol')
marketState=$(query 'marketState')
symbol=$(query 'symbol')
preMarketChange=$(echo "$obj" | jq -j '.preMarketChange')
postMarketChange=$(echo "$obj" | jq -j '.postMarketChange')
preMarketChange=$(query 'preMarketChange')
postMarketChange=$(query 'postMarketChange')
longName=$(echo "$obj" | jq -j '.longName')
longName=$(query 'longName')
if [ "$longName" == "null" ] && [ $symbol == "^FCHI" ]; then
longName="CAC 40"
fi
if [ $t == "0" ]; then
printf "${bold}%-10s | %-25s | %-7s | " "Symbole" "Entreprise" "Cours"
printf "%-6s | %-6s | %-7s | " "Diff" "%" "Veille"
printf "${bold}%-10s | %-23s | %-7s | " "Symbole" "Entreprise" "Cours"
printf "%-6s | %-7s | %-7s | " "Diff" "%" "Veille"
printf "%-7s | %-7s | %-8s | " "+ Haut" "+ Bas" "Volume"
printf "%-9s | %-25s${reset}\n" "Ouverture" "Heure"
printf "%-9s | %-25s | %-18s${reset}\n" "Ouverture" "Heure" "52 semaines"
fi
t=1
if [ $marketState == "PRE" ] && [ $preMarketChange != "0" ] && [ $preMarketChange != "null" ]; then
nonRegularMarketSign='*'
price=$(echo "$obj" | jq -j '.preMarketPrice')
price=$(query 'preMarketPrice')
diff=$preMarketChange
percent=$(echo "$obj" | jq -j '.preMarketChangePercent')
percent=$(query 'preMarketChangePercent')
elif [ $marketState != "REGULAR" ] && [ $postMarketChange != "0" ] && [ $postMarketChange != "null" ]; then
nonRegularMarketSign='*'
price=$(echo "$obj" | jq -j '.postMarketPrice')
price=$(query 'postMarketPrice')
diff=$postMarketChange
percent=$(echo "$obj" | jq -j '.postMarketChangePercent')
percent=$(query 'postMarketChangePercent')
else
nonRegularMarketSign=''
price=$(echo "$obj" | jq -j '.regularMarketPrice')
diff=$(echo "$obj" | jq -j '.regularMarketChange')
percent=$(echo "$obj" | jq -j '.regularMarketChangePercent')
previous=$(echo "$obj" | jq -j '.regularMarketPreviousClose')
volume=$(echo "$obj" | jq -j '.regularMarketVolume')
haut=$(echo "$obj" | jq -j '.regularMarketDayHigh')
bas=$(echo "$obj" | jq -j '.regularMarketDayLow')
ouverture=$(echo "$obj" | jq -j '.regularMarketOpen')
ts=$(echo "$obj" | jq -j '.regularMarketTime')
price=$(query 'regularMarketPrice')
diff=$(query 'regularMarketChange')
percent=$(query 'regularMarketChangePercent')
previous=$(query 'regularMarketPreviousClose')
volume=$(query 'regularMarketVolume')
haut=$(query 'regularMarketDayHigh')
bas=$(query 'regularMarketDayLow')
ouverture=$(query 'regularMarketOpen')
ts=$(query 'regularMarketTime')
heure=$(LC_ALL=fr_FR.UTF-8 date -d @$ts +"%c" 2>/dev/null || LC_ALL=fr_FR.UTF-8 date -r $ts +"%c")
ftweeks=$(query 'fiftyTwoWeekRange')
fi
if [ "$diff" == "0" ] || [ "$diff" == "0.0" ]; then
@@ -95,10 +99,10 @@ while IFS= read -r obj; do
fi
if [ "$price" != "null" ]; then
printf "${color}%-10s | %-25s | %7.2f | " $symbol "$longName" $price
printf "% 6.2f | % 3.2f%% | %7.2f | " $diff $percent $previous
printf "${color}%-10s | %-23s | %7.2f | " $symbol "$longName" $price
printf "% 6.2f | % 6.2f%% | %7.2f | " $diff $percent $previous
printf "%7.2f | %7.2f | %8d | " $haut $bas $volume
printf "%9.2f | %25s${reset}\n" $ouverture "$heure"
printf "%9.2f | %25s | %18s${reset}\n" $ouverture "$heure" "$ftweeks"
fi
done < <(echo "$results" | jq -c '.[]')