81 lines
2.5 KiB
Bash
Executable File
81 lines
2.5 KiB
Bash
Executable File
#!/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
|