#!/bin/bash startTime=$(date +'%H:%M') day=$(date +'%y-%m-%d') echo -e "\n############# $day à $startTime #############\n" SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" if [[ -e $SCRIPTPATH/.env ]]; then source $SCRIPTPATH/.env; else echo "Veuillez créer votre fichier .env inspiré de .env.example" && exit 1; fi rm $SCRIPTPATH/tmp/*_solde 2>/dev/null ! [[ -d $SCRIPTPATH/db ]] && mkdir $SCRIPTPATH/db echo "[" > $SCRIPTPATH/db/recus.json lsDays=$(ls $SCRIPTPATH/tmp/) # | awk -F/ '{ print $NF }') # | awk -F_ '{ print $1 }') nbrD=$(for i in $lsDays; do cat $SCRIPTPATH/tmp/$i; done | wc -l) daysLoop() { k=0 l=0 for i in $lsDays; do # [[ $l -ge 20 ]] && break ## ((k++)) && continue # ((l++)) walletDay=$(cat $SCRIPTPATH/tmp/$i) [[ -z $walletDay ]] && continue dateT=$(echo $i | awk -F_ '{ print $1 }') dateLDay=$(date -d "$dateT" +%s -u) dateLDay=$(($dateLDay-3600*2)) dateHDay=$(($dateLDay+60*60*24)) dateHDay=$(($dateHDay+3600*2)) [[ $i =~ "_mbr" ]] && type="Membre" || type="Wallet" for j in $walletDay; do echo "$(echo $i | awk -F_ '{ print $1 }'): $j" curl -s ${DUNITER}/tx/history/$j/times/$dateLDay/$dateHDay | jq '.history.received[].outputs[]' | grep $j | awk -F: '{ print $1 }' | tr -d '" ' >> $SCRIPTPATH/tmp/${i}_solde ((k++)) clear echo -e "\n############# $day à $startTime #############\n" progress=$(echo "scale=1; $k*100/$nbrD/1" | bc) echo "Scan $type: $progress% - $k/$nbrD" done # Somme de la journée soldes=$(cat $SCRIPTPATH/tmp/${i}_solde | awk '{total+=$1}END{print total}') echo $soldes > $SCRIPTPATH/tmp/${i}_solde # Écriture en JSON jsonify() { local jsonTPL=$(sed s/_DATE/$dateT/g $SCRIPTPATH/tpl/recus.json) local jsonTPL=$(sed s/_RWALLETS/$1/g <<< $jsonTPL) local jsonTPL=$(sed s/_RMEMBRES/$2/g <<< $jsonTPL) echo -e "$jsonTPL" | tr -d '\\' >> $SCRIPTPATH/db/recus.json } soldes=$(echo "scale=2; $soldes/100" | bc) if [[ $i =~ "_mbr" ]]; then jsonify _RWALLETS_$dateT $soldes elif [[ $i =~ "_wallets" ]]; then if [[ ! $(grep $dateT $SCRIPTPATH/db/recus.json) ]]; then jsonify $soldes 0 else sed -i s/_RWALLETS_$dateT/$soldes/g $SCRIPTPATH/db/recus.json fi fi done } daysLoop # Final touch sed -i '$ s/,//g' $SCRIPTPATH/db/recus.json echo "]" >> $SCRIPTPATH/db/recus.json awk '{gsub(/_RWALLETS.*/,"0\",")}1;' $SCRIPTPATH/db/recus.json > /tmp/tmpawk && mv /tmp/tmpawk $SCRIPTPATH/db/recus.json day=$(date +'%d-%m-%y') echo "$day - Heure de fin: $(date +'%H:%M')" $SCRIPTPATH/sum.sh