From 4d8c96c2bcc490eeb060a6aedbe807f24f81d575 Mon Sep 17 00:00:00 2001 From: Bruno 21 Date: Sun, 18 Apr 2021 16:57:57 +0200 Subject: [PATCH] function query() --- run_stocks.sh | 4 +++- stocks.sh | 56 +++++++++++++++++++++++++++------------------------ 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/run_stocks.sh b/run_stocks.sh index 2de76f1..afb9633 100755 --- a/run_stocks.sh +++ b/run_stocks.sh @@ -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 diff --git a/stocks.sh b/stocks.sh index 17ce913..6c81573 100755 --- a/stocks.sh +++ b/stocks.sh @@ -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 '.[]')