#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" # SCAN & DISPLAY G1 MEMBERS ################################################################################ DUNITER="https://g1.le-sou.org" CESIUM="https://g1.data.le-sou.org" CESIUM="https://g1.data.e-is.pro" # TEST INTERNET CONNEXION #~ 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) echo "$total membres" mkdir -p ${MY_PATH}/tmp # Forever Loop while : do # Selection d'un autre membre au hasard numero=$((RANDOM % $total)) member=$(($numero - 1)) NODE=$(${MY_PATH}/duniter_getnode.sh | tail -n 1) # Récupération de son uid et pubkey 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) # MAKES ALL MEMBERS QUICKER COLLECTED #if [[ -d "${MY_PATH}/SCAN/${PUBKEY}" ]]; then continue; fi mkdir -p "${MY_PATH}/SCAN/${PUBKEY}" # silkaj : Record uid / history / amount touch "${MY_PATH}/SCAN/${PUBKEY}/${MEMBER}" 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 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} mkdir -p "${MY_PATH}/COINS/$g1/" ln -s ${MY_PATH}/SCAN/${PUBKEY} ${MY_PATH}/COINS/$g1/${MEMBER} # RECORD MEMBER DATA LOG="${MEMBER} : $g1 ($usage) ${PUBKEY}" echo $LOG echo $LOG >> ${MY_PATH}/collect.log if [[ "$zen" != "" ]]; then echo "Profiling... ${CESIUM}/user/profile/${PUBKEY}" curl -s ${CESIUM}/user/profile/${PUBKEY} > "${MY_PATH}/SCAN/${PUBKEY}/profile.json" [[ ! -s "${MY_PATH}/SCAN/${PUBKEY}/profile.json" ]] && echo "NO PROFILE" && continue echo "$zen" > "${MY_PATH}/SCAN/${PUBKEY}/ZEN" fi # Téléchargement de la photo Cesium+? test=$(cat "${MY_PATH}/SCAN/${PUBKEY}/profile.json" | jq '._source.avatar._content') if [[ $test != null && $test != "" ]]; then # GET avatar.png, rotate, put over in G1.png, write member name, 3 color then display cat "${MY_PATH}/SCAN/${PUBKEY}/profile.json" | jq '._source.avatar._content' | sed 's/\"//g' | base64 -d > "${MY_PATH}/SCAN/${PUBKEY}/avatar.png" 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" 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" convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 100,20 "'"${MEMBER}"'"' "${MY_PATH}/tmp/image.png" "${MY_PATH}/tmp/uid.png" else # CREATE PUBKEY put over in G1.png, write member name, 3 color then display 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" convert -font 'Times-Bold' -pointsize 20 -fill black -draw 'text 10,20 "'"${MEMBER}"'"' "${MY_PATH}/tmp/image.png" "${MY_PATH}/tmp/uid.png" fi echo "COOL g1_avatar.png" cp "${MY_PATH}/tmp/uid.png" "${MY_PATH}/SCAN/${PUBKEY}/g1_avatar.png" sleep 1 done