G1-WOF/run.sh

128 lines
5.0 KiB
Bash
Raw Normal View History

2023-01-22 19:51:05 +01:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
2023-01-23 01:36:54 +01:00
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
2023-01-22 19:51:05 +01:00
# SCAN & DISPLAY G1 MEMBERS
################################################################################
DUNITER="https://g1.le-sou.org"
CESIUM="https://g1.data.le-sou.org"
2023-07-19 14:02:45 +02:00
CESIUM="https://g1.data.e-is.pro"
2023-01-22 19:51:05 +01:00
# TEST INTERNET CONNEXION
2023-01-23 01:36:54 +01:00
#~ ip="$(ifconfig wlan0 | grep "inet " | awk '{print $2}')"
#~ if [[ "$ip" != "" ]]; then
#~ curl ${DUNITER}/wot/members > "${MY_PATH}/members.json"
#~ total=$(cat "${MY_PATH}/members.json" | jq '.results' | jq length)
#~ # DISPLAY Startup Screen
#~ python ${MY_PATH}/name-badge.py --type phat --colour black --name $total --madate "$ip"
#~ else
#~ ssid=$(sudo cat /etc/wpa_supplicant/wpa_supplicant.conf | grep "ssid=\"")
#~ python ${MY_PATH}/name-badge.py --type phat --colour black --name "NO INTERNET" --madate "$ssid"
#~ # DISPLAY ALL already collected members...
#~ for inky in $(ls ${MY_PATH}/SCAN/*/inky.png); do cp "$inky" "${MY_PATH}/result.png"; python inky_display.py; sleep 10; done
#~ sudo reboot
#~ fi
curl -s ${DUNITER}/wot/members > "${MY_PATH}/members.json"
total=$(cat "${MY_PATH}/members.json" | jq '.results' | jq length)
2023-01-22 19:51:05 +01:00
echo "$total membres"
2023-07-19 14:02:45 +02:00
mkdir -p ${MY_PATH}/tmp
2023-01-22 19:51:05 +01:00
# Forever Loop
2023-01-23 01:36:54 +01:00
while :
2023-01-22 19:51:05 +01:00
do
# Selection d'un autre membre au hasard
numero=$((RANDOM % $total))
member=$(($numero - 1))
2023-07-19 14:02:45 +02:00
NODE=$(${MY_PATH}/duniter_getnode.sh | tail -n 1)
2023-01-22 19:51:05 +01:00
# Récupération de son uid et pubkey
2023-01-23 01:36:54 +01:00
MEMBER=$(cat "${MY_PATH}/members.json" | jq ".results[$member].uid" | sed s/\"//g)
PUBKEY=$(cat "${MY_PATH}/members.json" | jq ".results[$member].pubkey" | sed s/\"//g)
2023-01-22 19:51:05 +01:00
# MAKES ALL MEMBERS QUICKER COLLECTED
2023-01-23 01:36:54 +01:00
#if [[ -d "${MY_PATH}/SCAN/${PUBKEY}" ]]; then continue; fi
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
mkdir -p "${MY_PATH}/SCAN/${PUBKEY}"
2023-01-22 19:51:05 +01:00
# silkaj : Record uid / history / amount
2023-01-23 01:36:54 +01:00
touch "${MY_PATH}/SCAN/${PUBKEY}/${MEMBER}"
2023-07-19 14:02:45 +02:00
echo ${PUBKEY} > "${MY_PATH}/SCAN/${PUBKEY}/G1PUB" # uid
silkaj money balance ${PUBKEY} > "${MY_PATH}/SCAN/${PUBKEY}/COINS"
amount=$(cat "${MY_PATH}/SCAN/${PUBKEY}/COINS")
zen=$(echo $amount | awk '{print $1 * 100}')
g1=$(echo $amount | cut -d '.' -f 1)
[[ ! $g1 -gt 0 ]] && echo "ERROR $g1" && sleep 30 && continue
${MY_PATH}/jaklis/jaklis.py -n $NODE history -p ${PUBKEY} -j -n 200 > "${MY_PATH}/SCAN/${PUBKEY}/history.json" # history
[ $? != 0 ] && echo "ERROR ${MY_PATH}/jaklis/jaklis.py -n $NODE history -p ${PUBKEY} -j -n 200" && sleep 30 && continue
2023-01-23 01:36:54 +01:00
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
usage=$(cat "${MY_PATH}/SCAN/${PUBKEY}/history.json" | jq length)
mkdir -p "${MY_PATH}/USAGE/$usage"
ln -s ${MY_PATH}/SCAN/${PUBKEY} ${MY_PATH}/USAGE/$usage/${MEMBER}
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
mkdir -p "${MY_PATH}/COINS/$g1/"
ln -s ${MY_PATH}/SCAN/${PUBKEY} ${MY_PATH}/COINS/$g1/${MEMBER}
2023-01-22 19:51:05 +01:00
# RECORD MEMBER DATA
2023-01-23 01:36:54 +01:00
LOG="${MEMBER} : $g1 ($usage) ${PUBKEY}"
echo $LOG
echo $LOG >> ${MY_PATH}/collect.log
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
if [[ "$zen" != "" ]]; then
2023-01-22 19:51:05 +01:00
2023-07-19 14:02:45 +02:00
echo "Profiling... ${CESIUM}/user/profile/${PUBKEY}"
2023-01-23 01:36:54 +01:00
2023-07-19 14:02:45 +02:00
curl -s ${CESIUM}/user/profile/${PUBKEY} > "${MY_PATH}/SCAN/${PUBKEY}/profile.json"
[[ ! -s "${MY_PATH}/SCAN/${PUBKEY}/profile.json" ]] && echo "NO PROFILE" && continue
2023-01-23 01:36:54 +01:00
echo "$zen" > "${MY_PATH}/SCAN/${PUBKEY}/ZEN"
2023-01-22 19:51:05 +01:00
fi
# Téléchargement de la photo Cesium+?
2023-07-19 14:02:45 +02:00
test=$(cat "${MY_PATH}/SCAN/${PUBKEY}/profile.json" | jq '._source.avatar._content')
2023-01-23 01:36:54 +01:00
if [[ $test != null && $test != "" ]]; then
2023-01-22 19:51:05 +01:00
# GET avatar.png, rotate, put over in G1.png, write member name, 3 color then display
2023-07-19 14:02:45 +02:00
cat "${MY_PATH}/SCAN/${PUBKEY}/profile.json" | jq '._source.avatar._content' | sed 's/\"//g' | base64 -d > "${MY_PATH}/SCAN/${PUBKEY}/avatar.png"
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
convert "${MY_PATH}/SCAN/${PUBKEY}/avatar.png" -rotate 90 "${MY_PATH}/tmp/rotate.png"
composite -compose Over -gravity East "${MY_PATH}/tmp/rotate.png" "${MY_PATH}/G1.png" "/tmp/image0.png"
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
qrencode -s 3 -o "${MY_PATH}/tmp/PUBKEY.png" ${PUBKEY}
composite -compose Over -gravity West "${MY_PATH}/tmp/PUBKEY.png" "/tmp/image0.png" "${MY_PATH}/tmp/image.png"
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 100,20 "'"${MEMBER}"'"' "${MY_PATH}/tmp/image.png" "${MY_PATH}/tmp/uid.png"
2023-01-22 19:51:05 +01:00
else
# CREATE PUBKEY put over in G1.png, write member name, 3 color then display
2023-01-23 01:36:54 +01:00
qrencode -s 3 -o "${MY_PATH}/tmp/rotate.png" ${PUBKEY}
composite -compose Over -gravity East "${MY_PATH}/tmp/rotate.png" "${MY_PATH}/G1.png" "${MY_PATH}/tmp/image.png"
2023-01-22 19:51:05 +01:00
2023-01-23 01:36:54 +01:00
convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 10,20 "'"${MEMBER}"'"' "${MY_PATH}/tmp/image.png" "${MY_PATH}/tmp/uid.png"
2023-01-22 19:51:05 +01:00
fi
2023-07-19 14:02:45 +02:00
echo "COOL g1_avatar.png"
cp "${MY_PATH}/tmp/uid.png" "${MY_PATH}/SCAN/${PUBKEY}/g1_avatar.png"
sleep 1
2023-01-22 19:51:05 +01:00
done