G1-WOF/run.sh

113 lines
4.7 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
# SCAN & DISPLAY G1 MEMBERS
################################################################################
DUNITER="https://g1.le-sou.org"
CESIUM="https://g1.data.le-sou.org"
# TEST INTERNET CONNEXION
ip="$(ifconfig wlan0 | grep "inet " | awk '{print $2}')"
if [[ "$ip" != "" ]]; then
curl ${DUNITER}/wot/members > "./members.json"
total=$(cat "./members.json" | jq '.results' | jq length)
# DISPLAY Startup Screen
python ./name-badge.py --type phat --colour black --name $total --madate "$ip"
else
ssid=$(sudo cat /etc/wpa_supplicant/wpa_supplicant.conf | grep "ssid=\"")
python ./name-badge.py --type phat --colour black --name "NO INTERNET" --madate "$ssid"
# DISPLAY ALL already collected members...
for inky in $(ls ./SCAN/*/inky.png); do cp "$inky" "./result.png"; python inky_display.py; sleep 10; done
sudo reboot
fi
echo "$total membres"
# Forever Loop
while :
do
# Selection d'un autre membre au hasard
numero=$((RANDOM % $total))
member=$(($numero - 1))
# Récupération de son uid et pubkey
MEMBER=$(cat "./members.json" | jq ".results[$member].uid" | sed s/\"//g)
PUBKEY=$(cat "./members.json" | jq ".results[$member].pubkey" | sed s/\"//g)
# MAKES ALL MEMBERS QUICKER COLLECTED
#if [[ -d "./SCAN/${PUBKEY}" ]]; then continue; fi
mkdir -p "./SCAN/${PUBKEY}"
# silkaj : Record uid / history / amount
echo ${MEMBER} > "./SCAN/${PUBKEY}/uid.txt" # uid
silkaj history ${PUBKEY} > "./SCAN/${PUBKEY}/history.txt" # history
usage=$(cat "./SCAN/${PUBKEY}/history.txt" | wc -l)
amount=$(cat "./SCAN/${PUBKEY}/history.txt" | grep balance | cut -d ":" -f 2 | cut -d "," -f 1 | xargs)
echo $amount > "./SCAN/${PUBKEY}/amount.txt" # amount
g1=$(echo $amount | cut -d '.' -f 1)
love=$(echo $amount | awk '{print $1 * 100}')
echo $amount > "./SCAN/${PUBKEY}/g1.txt" # g1
# RECORD MEMBER DATA
echo "${MEMBER} : $amount ($usage) ${PUBKEY}"
if [[ "$love" != "" ]]; then
curl ${CESIUM}/user/profile/${PUBKEY} > "./tmp/${PUBKEY}"
mkdir -p "./IPFS/MEMBERS/${MEMBER}/WALLETS/member.${PUBKEY}"
echo "$g1" > "./IPFS/MEMBERS/${usage}.${MEMBER}"
mkdir -p "./IPFS/WALLETS/${PUBKEY}/in"
mkdir -p "./IPFS/WALLETS/${PUBKEY}/out"
echo "$love" > "./IPFS/WALLETS/${PUBKEY}/LOVE"
# Write Member details
cat "./tmp/${PUBKEY}" | jq '._source.socials' > "./IPFS/MEMBERS/${MEMBER}/social.json"
cat "./tmp/${PUBKEY}" | jq '._source.title' > "./IPFS/MEMBERS/${MEMBER}/adressse.json"
cat "./tmp/${PUBKEY}" | jq '._source.address' >> "./IPFS/MEMBERS/${MEMBER}/adressse.json"
cat "./tmp/${PUBKEY}" | jq '._source.city' >> "./IPFS/MEMBERS/${MEMBER}/adressse.json"
cat "./tmp/${PUBKEY}" | jq '._source.description' > "./IPFS/MEMBERS/${MEMBER}/description.json"
cat "./tmp/${PUBKEY}" | jq '._source.geoPoint' > "./IPFS/MEMBERS/${MEMBER}/geoPoint.json"
cat "./IPFS/MEMBERS/${MEMBER}/social.json"
fi
# Téléchargement de la photo Cesium+?
test=$(curl ${CESIUM}/user/profile/${PUBKEY} | jq '._source.avatar._content')
if [[ $test != null ]]; then
# GET avatar.png, rotate, put over in G1.png, write member name, 3 color then display
curl ${CESIUM}/user/profile/${PUBKEY} | jq '._source.avatar._content' | sed 's/\"//g' | base64 -d > "./SCAN/${PUBKEY}/avatar.png"
convert "./SCAN/${PUBKEY}/avatar.png" -rotate 90 "./tmp/rotate.png"
composite -compose Over -gravity East "./tmp/rotate.png" "./G1.png" "/tmp/image0.png"
qrencode -s 3 -o "./tmp/PUBKEY.png" ${PUBKEY}
composite -compose Over -gravity West "./tmp/PUBKEY.png" "/tmp/image0.png" "./tmp/image.png"
convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 100,20 "'"${MEMBER}"'"' "./tmp/image.png" "./tmp/uid.png"
else
# CREATE PUBKEY put over in G1.png, write member name, 3 color then display
qrencode -s 3 -o "./tmp/rotate.png" ${PUBKEY}
composite -compose Over -gravity East "./tmp/rotate.png" "./G1(gris).png" "./tmp/image.png"
convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 10,20 "'"${MEMBER}"'"' "./tmp/image.png" "./tmp/uid.png"
fi
convert "./tmp/uid.png" -strip +dither -colors 3 -treedepth 3 -remap inkymap.png "./result.png"
# Backup inky display
cp "./result.png" "./SCAN/${PUBKEY}/inky.png"
cp "./tmp/uid.png" "./IPFS/MEMBERS/${MEMBER}/g1_avatar.png"
python inky_display.py
done