#!/bin/bash ################################################################################ # Author: Fred (support@qo-op.com) # Version: 0.12 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ # Create HTML page with image caroussel # If no image directory = create G1Station Local PLAYER accounts MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized . "$MY_PATH/my.sh" #Set Path to Images img_dir="$1" if [[ ! -d $img_dir ]]; then PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null)) [[ ! $PLAYERONE ]] && echo "NO PLAYER IN THE GAME HERE" && exit 1 echo "ASTROPORT STATION CAROUSEL MODE" rm -Rf ~/.zen/tmp/carousel 2>/dev/null mkdir -p ~/.zen/tmp/carousel ## RUNING FOR ALL LOCAL PLAYERS for PLAYER in ${PLAYERONE[@]}; do pub=$(cat ~/.zen/game/players/$PLAYER/.g1pub) # Get PLAYER wallet amount echo "$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey balance" COINS=$($MY_PATH/COINScheck.sh ${pub} | tail -n 1) echo "+++ ${PLAYER} have $COINS Ğ1 Coins +++" # CONVERT COINS to ZEN ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1) ## USE G1BARRE OR G1WorldMap.png AS 1ST IMAGE #~ curl -m 3 -so ~/.zen/tmp/carousel/${pub}.one.png \ #~ "https://g1sms.fr/g1barre/image.php?pubkey=${pub}&target=20000&title=${PLAYER}&node=g1.asycn.io&start_date=2020-01-01&display_pubkey=true&display_qrcode=true" #~ [[ $(file -b ~/.zen/tmp/carousel/${pub}.one.png | cut -d ' ' -f 1) == "PNG" ]] \ #~ && echo "GOT ~/.zen/tmp/carousel/${pub}.one.png" \ #~ || cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png ################## ## PREPARE LOOP LINK LINE ASTRONAUTENS=$(cat ~/.zen/game/players/${PLAYER}/.playerns) [[ $(echo "$COINS > 0" | bc -l) -eq 1 ]] \ && echo "_REPLACE_" > ~/.zen/tmp/carousel/${pub}.insert \ || echo "_REPLACE_" > ~/.zen/tmp/carousel/${pub}.insert ## EXTRACT G1Voeu FROM PLAYER TW echo "Ŋ1Flux ____ " > ~/.zen/tmp/carousel/${pub}.button INDEX=~/.zen/game/players/${PLAYER}/ipfs/moa/index.html if [[ -s ${INDEX} ]]; then # EXTRACT [tag[moa]] : ~/.zen/game/players/${PLAYER}/moa.jpg tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.moa.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${PLAYER}" cat ~/.zen/tmp/${PLAYER}.moa.json | jq -r '.[].text' | base64 -d > ~/.zen/game/players/${PLAYER}/moa.jpg echo "DESSIN DE MOA : ~/.zen/game/players/${PLAYER}/moa.jpg" [[ $(file -b ~/.zen/game/players/${PLAYER}/moa.jpg | cut -d ' ' -f 1) == "JPEG" ]] \ && convert ~/.zen/game/players/${PLAYER}/moa.jpg -resize 200 ~/.zen/tmp/moa.jpg \ && composite -compose Over -gravity Center -geometry +0+0 ~/.zen/tmp/moa.jpg ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/carousel/${pub}.one.png tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.astroport.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' moabirth=$(cat ~/.zen/tmp/${PLAYER}.astroport.json | jq -r '.[].birthdate') year="${moabirth:0:4}" month="${moabirth:4:2}" day="${moabirth:6:2}" weekday=$(date -d "$year-$month-$day" "+%A") time="${moabirth:8:6}" birthdate="${year}/${month}/${day} - ${weekday} - ${time}" ## EXTRACT [tag[G1Voeu]] : ~/.zen/tmp/${PLAYER}.g1wishes.txt tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]' cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/${PLAYER}.g1wishes.txt while read WISH do [[ ${WISH} == "" || ${WISH} == "null" ]] && echo "BLURP. EMPTY WISH" && continue WISHNAME=$(cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .title') [[ ! ${WISHNAME} ]] && echo "WISH sans NOM - CONTINUE -" && continue echo "" >> ~/.zen/tmp/carousel/${pub}.button done < ~/.zen/tmp/${PLAYER}.g1wishes.txt fi echo "" >> ~/.zen/tmp/carousel/${pub}.button ################## # CREATE G1 AMZQR CIMG="$MY_PATH/../images/zenticket.png" amzqr ${pub} -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/ convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 250 ~/.zen/tmp/QR.png # ADD IT composite -compose Over -gravity NorthEast -geometry +0+0 ~/.zen/tmp/QR.png ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/one.png ## WRITE ON IT : ASK FOR REFILL convert -font 'Liberation-Sans' \ -pointsize 80 -fill orange -draw 'text 50,120 "'"$ZEN Zen"'"' \ -pointsize 30 -fill yellow -draw 'text 40, 180 "'"$PLAYER"'"' \ -pointsize 14 -fill blue -draw 'text 40, 200 "'"${birthdate}"'"' \ "${HOME}/.zen/tmp/one.png" "${HOME}/.zen/tmp/carousel/${pub}.png" \ && rm ${HOME}/.zen/tmp/carousel/${pub}.one.png done img_dir="$HOME/.zen/tmp/carousel" fi #Set Path to HTML page html_file="/tmp/index.html" core_file="/tmp/core.html" #Create HTML page echo " Astroport ZEN Gallery : $myIP " > $html_file echo "

$myHOST :: ${#PLAYERONE[@]} ::

" >> $core_file #Loop over images num=1 for i in "$img_dir"/*; do if [[ $i =~ \.(JPG|jpg|PNG|png|JPEG|jpeg|GIF|gif)$ ]]; then ilink=$(ipfs add -q "$i") img_info=$(identify -format '%w %h %[EXIF:*]' "$i") img_width=$(echo $img_info | cut -d ' ' -f1) img_height=$(echo $img_info | cut -d ' ' -f2) img_alt=$(echo $img_info | cut -d ' ' -f3) MORE="${i%.png}.insert" echo "$MORE" CODEBOUTON="$(cat ${i%.png}.button 2>/dev/null)" echo "$CODEBOUTON" LINK="\"$img_alt\"" [[ -s $MORE ]] && ZLINK=$(cat $MORE | sed "s~_REPLACE_~$LINK~g") || ZLINK="$LINK" # echo $ZLINK if [ $num -eq 1 ]; then echo "
$CODEBOUTON
$ZLINK
" >> $core_file else echo "
$CODEBOUTON
$ZLINK
" >> $core_file fi num=$((num+1)) fi done echo "
" >> $core_file cat $core_file >> $html_file echo "" >> $html_file htmlipfs=$(ipfs add -q $html_file) [[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open http://ipfs.localhost:8080/ipfs/$htmlipfs echo "/ipfs/$htmlipfs" > ~/.zen/tmp/ISTATION cat ~/.zen/tmp/ISTATION ### KEEPIT ON LAST LINE exit 0