g1-stats/scripts/geoloc-members-json.sh

95 lines
2.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Récupération du chemin absolut du répertoir du script actuel
GPATH="$( cd "$(dirname "$0")" ; pwd -P )/.."
[[ ! -f $GPATH/.env ]] && cp $GPATH/.env.example $GPATH/.env
source $GPATH/.env
timeout=5
FILE="/tmp/geoloc-members.json"
2021-03-30 19:11:05 +02:00
FINAL_LOCATION="$WEBPATH/data/geoloc-members.json"
FINAL_LOCATION_ALT="$WEBPATH/data/geoloc-members-alt.json"
DATA_MBR=$($JAKLIS listWallets --brut --mbr)
2021-10-14 21:56:20 +02:00
DATA_NONMBR=$($JAKLIS listWallets --brut --non_mbr)
DATA_LARF=$($JAKLIS listWallets --brut --larf)
2021-03-30 17:09:15 +02:00
2022-03-30 01:21:24 +02:00
echo "{\"wallets\":[" > $FILE
oldIFS=$IFS;
IFS=$'\n';
2021-10-14 21:56:20 +02:00
j=0
2021-03-30 17:09:15 +02:00
for i in $DATA_MBR; do
IFS=$oldIFS
pubkey=$(echo $i | awk '{ print $1 }')
userId=\"$(echo $i | awk '{ print $2 }')\"
result=$(timeout $timeout $JAKLIS get -p $pubkey)
geoPoint=$(echo "$result" | jq .geoPoint 2>/dev/null)
if [[ "$geoPoint" == "null" || "$result" == "Profile vide" ]]; then
continue
else
2021-03-30 17:09:15 +02:00
isMbr='"isMember": true,'
2021-03-31 15:09:02 +02:00
userIdFormat="\"userId\": $userId,"
resultWithMbr=$(echo "$result" | sed "s/\"geoPoint\": {/$userIdFormat $isMbr \"geoPoint\": {/g")
2021-03-30 17:09:15 +02:00
echo "$resultWithMbr," >> $FILE
fi
[[ $DEBUG ]] && echo "$j - $i"
2022-03-30 01:21:24 +02:00
# [[ $DEBUG && $j -ge 5 ]] && break
((j++))
2021-03-30 17:09:15 +02:00
done
2021-10-14 21:56:20 +02:00
IFS=$'\n'
for i in $DATA_NONMBR; do
IFS=$oldIFS
pubkey=$(echo $i | awk '{ print $1 }')
userId=\"$(echo $i | awk '{ print $2 }')\"
result=$(timeout $timeout $JAKLIS get -p $pubkey)
2021-10-14 21:56:20 +02:00
geoPoint=$(echo "$result" | jq .geoPoint 2>/dev/null)
if [[ "$geoPoint" == "null" || "$result" == "Profile vide" ]]; then
continue
else
isMbr='"isMember": false,'
userIdFormat="\"userId\": $userId,"
resultWithMbr=$(echo "$result" | sed "s/\"geoPoint\": {/$userIdFormat $isMbr \"geoPoint\": {/g")
echo "$resultWithMbr," >> $FILE
fi
[[ $DEBUG ]] && echo "$j - $i"
2022-03-30 01:21:24 +02:00
# [[ $DEBUG && $j -ge 7 ]] && break
((j++))
2021-10-14 21:56:20 +02:00
done
2021-03-30 17:09:15 +02:00
for i in $DATA_LARF; do
result=$(timeout $timeout $JAKLIS get -p $i)
2021-03-30 17:09:15 +02:00
geoPoint=$(echo "$result" | jq .geoPoint 2>/dev/null)
2021-03-30 17:09:15 +02:00
if [[ "$geoPoint" == "null" || "$result" == "Profile vide" ]]; then
continue
else
isMbr='"isMember": false,'
2021-03-30 19:11:05 +02:00
resultWithMbr=$(echo "$result" | sed "s/\"geoPoint\": {/$isMbr \"geoPoint\": {/g")
2021-03-30 17:09:15 +02:00
echo "$resultWithMbr," >> $FILE
fi
[[ $DEBUG ]] && echo "$j - $i"
2022-03-30 01:21:24 +02:00
# [[ $DEBUG && $j -ge 10 ]] && break
((j++))
done
nowD=$(date +"%s")
sed -i '$ d' $FILE
2022-03-30 01:21:24 +02:00
echo "}]," >> $FILE
echo "\"time\": $nowD" >> $FILE
2022-03-30 01:21:24 +02:00
echo "}" >> $FILE
2021-06-04 01:40:42 +02:00
finalResult=$(cat $FILE | jq .)
RESULT=$?
2021-03-31 15:09:02 +02:00
2021-06-04 01:40:42 +02:00
if [ $RESULT -eq 0 ]; then
echo "$finalResult" > $FINAL_LOCATION
2021-06-04 01:40:42 +02:00
else
echo "Failed" >> $FILE
fi