Improve loop solde meca

This commit is contained in:
poka 2020-06-26 14:52:47 +02:00
parent dee743556f
commit 89d3be7dd6
2 changed files with 35 additions and 25 deletions

View File

@ -7,24 +7,19 @@ 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
lsDaysW=$(ls $SCRIPTPATH/tmp/*_wallets) # | awk -F/ '{ print $NF }') # | awk -F_ '{ print $1 }')
nbrW=$(cat $lsDaysW | wc -l)
lsDaysW=$(echo "$lsDaysW" | awk -F/ '{ print $NF }')
lsDaysM=$(ls $SCRIPTPATH/tmp/*_mbr)
nbrM=$(cat $lsDaysM | wc -l)
lsDaysM=$(echo "$lsDaysM" | awk -F/ '{ print $NF }')
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++))
# [[ $l -ge 20 ]] && break ## ((k++)) && continue
## ((l++))
walletDay=$(cat $SCRIPTPATH/tmp/$i)
[[ -z $walletDay ]] && continue
@ -34,14 +29,16 @@ for i in $lsDays; do
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/$nbr/1" | bc)
echo "Scan: $progress% - $k/$nbr"
progress=$(echo "scale=1; $k*100/$nbrD/1" | bc)
echo "Scan $type: $progress% - $k/$nbrD"
done
# Somme de la journée
@ -50,35 +47,31 @@ for i in $lsDays; do
# Écriture en JSON
soldes=$(echo "scale=2; $soldes/100" | bc)
if [[ $lsDays == $lsDaysW ]]; then
if [[ $i =~ "_mbr" ]]; then
local jsonTPL=$(sed s/_DATE/$dateT/g $SCRIPTPATH/tpl/recus.json)
local jsonTPL=$(sed s/_RWALLETS/$soldes/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RMEMBRES/_RMEMBRES_$dateT/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RWALLETS/_RWALLETS_$dateT/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RMEMBRES/$soldes/g <<< $jsonTPL)
echo -e "$jsonTPL" | tr -d '\\' >> $SCRIPTPATH/db/recus.json
elif [[ $lsDays == $lsDaysM ]]; then
elif [[ $i =~ "_wallets" ]]; then
if [[ ! $(grep $dateT $SCRIPTPATH/db/recus.json) ]]; then
local jsonTPL=$(sed s/_DATE/$dateT/g $SCRIPTPATH/tpl/recus.json)
local jsonTPL=$(sed s/_RWALLETS/0/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RMEMBRES/$soldes/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RWALLETS/$soldes/g <<< $jsonTPL)
local jsonTPL=$(sed s/_RMEMBRES/0/g <<< $jsonTPL)
echo -e "$jsonTPL" | tr -d '\\' >> $SCRIPTPATH/db/recus.json
else
sed -i s/_RMEMBRES_$dateT/$soldes/g $SCRIPTPATH/db/recus.json
sed -i s/_RWALLETS_$dateT/$soldes/g $SCRIPTPATH/db/recus.json
fi
fi
done
}
lsDays=$lsDaysW
nbr=$nbrW
daysLoop
lsDays=$lsDaysM
nbr=$nbrM
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')"

17
sum.sh
View File

@ -1,8 +1,25 @@
#!/bin/bash
old() {
echo "Total: $(echo $(($(cat tmp/*_solde | awk '{total+=$1}END{print total}')/100)) | sed ':a;s/\B[0-9]\{3\}\>/.&/;ta')"
echo "Wallets: $(echo $(($(cat tmp/*wallets_solde | awk '{total+=$1}END{print total}')/100)) | sed ':a;s/\B[0-9]\{3\}\>/.&/;ta')"
echo "Membres: $(echo $(($(cat tmp/*mbr_solde | awk '{total+=$1}END{print total}')/100)) | sed ':a;s/\B[0-9]\{3\}\>/.&/;ta')"
echo "Fichiers vides:"
for i in $(ls tmp/*_solde); do ! [[ $(cat $i) ]] && echo $i ; done
}
json() {
sumW=$(jq -r '.[].rWallets' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }' | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')
sumM=$(jq -r '.[].rMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }' | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')
sumT=$(jq -r '.[] | .rWallets, .rMembres' db/recus.json | awk '{ SUM += $1} END { printf "%.2f", SUM }' | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')
echo "Wallets: $sumW"
echo "Membres: $sumM"
echo "Total: $sumT"
echo "Fichiers vides:"
for i in $(ls tmp/*_solde); do ! [[ $(cat $i) ]] && echo $i ; done
}
json