2023-01-06 06:23:34 +01:00
|
|
|
#!/bin/bash
|
2023-05-06 02:35:06 +02:00
|
|
|
################################################################################
|
|
|
|
# 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
|
2023-01-06 06:23:34 +01:00
|
|
|
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"
|
2023-02-27 17:19:17 +01:00
|
|
|
|
2023-03-05 02:38:03 +01:00
|
|
|
if [[ ! -d $img_dir ]]; then
|
2023-05-06 02:35:06 +02:00
|
|
|
|
2023-03-11 14:36:41 +01:00
|
|
|
PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
2023-05-06 02:35:06 +02:00
|
|
|
[[ ! $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)
|
|
|
|
|
2023-11-13 16:05:17 +01:00
|
|
|
# Get PLAYER wallet amount
|
2023-05-06 02:35:06 +02:00
|
|
|
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 +++"
|
|
|
|
|
2023-11-13 16:05:17 +01:00
|
|
|
# CONVERT COINS to ZEN
|
2023-11-16 18:07:55 +01:00
|
|
|
ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1)
|
2023-11-13 16:05:17 +01:00
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
## 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)
|
2023-12-01 03:26:56 +01:00
|
|
|
[[ $(echo "$COINS > 0" | bc -l) -eq 1 ]] \
|
2023-11-13 16:05:17 +01:00
|
|
|
&& echo "<a href=\"javascript:homeAstroportStation('"$myASTROPORT"/?qrcode="$ASTRONAUTENS"', 'page', '3000')\" title=\"$PLAYER ($ZEN ZEN) CHARGEUR DE G1BILLET \">_REPLACE_</a>" > ~/.zen/tmp/carousel/${pub}.insert \
|
2023-05-06 02:35:06 +02:00
|
|
|
|| 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
|
2024-03-08 15:40:26 +01:00
|
|
|
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.moa.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${PLAYER}"
|
2023-05-06 02:35:06 +02:00
|
|
|
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
|
|
|
|
|
2023-09-06 02:06:28 +02:00
|
|
|
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}"
|
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
## 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 "<button onclick=\"homeAstroportStation('$myASTROPORT/?qrcode=G1G1$WISHNAME&tw=$ASTRONAUTENS', 'tab', 9000)\">G1$WISHNAME</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
|
|
|
done < ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
|
|
|
fi
|
2024-03-16 15:36:19 +01:00
|
|
|
echo "<button onclick=\"window.open('"$myIPFS"/ipns/"$ASTRONAUTENS"');\">_*_ TW _*_*_</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
2023-03-16 03:46:43 +01:00
|
|
|
##################
|
2023-03-13 00:50:08 +01:00
|
|
|
|
2023-04-27 12:20:49 +02:00
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
# CREATE G1 AMZQR
|
2023-11-24 02:41:09 +01:00
|
|
|
CIMG="$MY_PATH/../images/zenticket.png"
|
2023-05-06 02:35:06 +02:00
|
|
|
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
|
2023-04-27 12:20:49 +02:00
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
## WRITE ON IT : ASK FOR REFILL
|
|
|
|
convert -font 'Liberation-Sans' \
|
2024-03-29 18:23:04 +01:00
|
|
|
-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}"'"' \
|
2023-05-06 02:35:06 +02:00
|
|
|
"${HOME}/.zen/tmp/one.png" "${HOME}/.zen/tmp/carousel/${pub}.png" \
|
|
|
|
&& rm ${HOME}/.zen/tmp/carousel/${pub}.one.png
|
2023-04-27 12:20:49 +02:00
|
|
|
|
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
done
|
|
|
|
img_dir="$HOME/.zen/tmp/carousel"
|
2023-02-11 20:03:39 +01:00
|
|
|
fi
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
#Set Path to HTML page
|
|
|
|
html_file="/tmp/index.html"
|
2023-03-09 19:42:41 +01:00
|
|
|
core_file="/tmp/core.html"
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
#Create HTML page
|
|
|
|
echo "<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
2023-03-05 02:38:03 +01:00
|
|
|
<title>Astroport ZEN Gallery : $myIP</title>
|
2023-01-06 06:23:34 +01:00
|
|
|
<meta charset=\"UTF-8\">
|
2023-03-09 19:42:41 +01:00
|
|
|
</head>
|
|
|
|
<body>" > $html_file
|
|
|
|
|
|
|
|
echo "<link rel=\"stylesheet\" href=\"/ipfs/QmX9QyopkTw9TdeC6yZpFzutfjNFWP36nzfPQTULc4cYVJ/bootstrap.min.css\">
|
2023-04-15 15:45:23 +02:00
|
|
|
<script src=\"/ipfs/Qmae5v9zydax9u6C9ceDijURu5PYdd5avmv4NkenCw7RFv/astro.js\"></script>
|
2023-03-13 00:50:08 +01:00
|
|
|
|
2023-01-06 06:23:34 +01:00
|
|
|
<style>
|
|
|
|
.carousel-item {
|
|
|
|
background-color: #0B0C10;
|
|
|
|
}
|
|
|
|
.carousel-indicators li {
|
|
|
|
background-color: #0B0C10;
|
|
|
|
}
|
|
|
|
.carousel-indicators .active {
|
|
|
|
background-color: #FFFFFF;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
2023-04-15 15:45:23 +02:00
|
|
|
<h3>$myHOST :: ${#PLAYERONE[@]} :: <div id=\"countdown\"></div><div id=\"ainfo\"></div></h3>
|
2023-03-16 14:38:25 +01:00
|
|
|
|
2023-01-06 06:23:34 +01:00
|
|
|
<div class=\"container\">
|
2023-03-10 00:57:16 +01:00
|
|
|
|
2023-01-06 06:23:34 +01:00
|
|
|
<div id=\"myCarousel\" class=\"carousel slide\" data-ride=\"carousel\">
|
|
|
|
<!-- Indicators -->
|
|
|
|
<ul class=\"carousel-indicators\">
|
2023-03-09 19:42:41 +01:00
|
|
|
<li data-target=\"#myCarousel\" data-slide-to=\"0\" class=\"active\"></li>" > $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
#Loop over images
|
|
|
|
num=1
|
|
|
|
for i in "$img_dir"/*; do
|
2023-01-11 20:57:59 +01:00
|
|
|
if [[ $i =~ \.(JPG|jpg|PNG|png|JPEG|jpeg|GIF|gif)$ ]]; then
|
2023-01-06 06:23:34 +01:00
|
|
|
if [ $num -ne 1 ]; then
|
2023-03-09 19:42:41 +01:00
|
|
|
echo " <li data-target=\"#myCarousel\" data-slide-to=\"$num\"></li>" >> $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
fi
|
|
|
|
num=$((num+1))
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
echo " </ul>
|
|
|
|
|
|
|
|
<!-- The slideshow -->
|
2023-03-09 19:42:41 +01:00
|
|
|
<div class=\"carousel-inner\">" >> $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
#Loop over images
|
|
|
|
num=1
|
|
|
|
for i in "$img_dir"/*; do
|
2023-01-11 20:57:59 +01:00
|
|
|
if [[ $i =~ \.(JPG|jpg|PNG|png|JPEG|jpeg|GIF|gif)$ ]]; then
|
2023-03-05 02:38:03 +01:00
|
|
|
|
|
|
|
|
2023-02-11 21:48:26 +01:00
|
|
|
ilink=$(ipfs add -q "$i")
|
|
|
|
img_info=$(identify -format '%w %h %[EXIF:*]' "$i")
|
2023-01-06 06:23:34 +01:00
|
|
|
img_width=$(echo $img_info | cut -d ' ' -f1)
|
|
|
|
img_height=$(echo $img_info | cut -d ' ' -f2)
|
|
|
|
img_alt=$(echo $img_info | cut -d ' ' -f3)
|
2023-03-05 02:38:03 +01:00
|
|
|
|
|
|
|
MORE="${i%.png}.insert"
|
|
|
|
echo "$MORE"
|
2023-05-06 02:35:06 +02:00
|
|
|
CODEBOUTON="$(cat ${i%.png}.button 2>/dev/null)"
|
2023-03-16 14:52:50 +01:00
|
|
|
echo "$CODEBOUTON"
|
2023-03-16 03:46:43 +01:00
|
|
|
|
2023-03-05 02:38:03 +01:00
|
|
|
LINK="<img src=\"/ipfs/$ilink\" alt=\"$img_alt\" width=\"$img_width\" height=\"$img_height\">"
|
|
|
|
[[ -s $MORE ]] && ZLINK=$(cat $MORE | sed "s~_REPLACE_~$LINK~g") || ZLINK="$LINK"
|
2023-03-16 03:46:43 +01:00
|
|
|
# echo $ZLINK
|
2023-03-05 02:38:03 +01:00
|
|
|
|
2023-01-06 06:23:34 +01:00
|
|
|
if [ $num -eq 1 ]; then
|
|
|
|
echo " <div class=\"carousel-item active\">
|
2023-03-16 14:52:50 +01:00
|
|
|
$CODEBOUTON
|
|
|
|
<br>
|
2023-03-05 02:38:03 +01:00
|
|
|
$ZLINK
|
2023-03-09 19:42:41 +01:00
|
|
|
</div>" >> $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
else
|
|
|
|
echo " <div class=\"carousel-item\">
|
2023-03-16 14:52:50 +01:00
|
|
|
$CODEBOUTON
|
|
|
|
<br>
|
2023-03-05 02:38:03 +01:00
|
|
|
$ZLINK
|
2023-03-16 14:52:50 +01:00
|
|
|
</div>" >> $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
fi
|
|
|
|
num=$((num+1))
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
echo " </div>
|
|
|
|
|
|
|
|
<!-- Left and right controls -->
|
|
|
|
<a class=\"carousel-control-prev\" href=\"#myCarousel\" data-slide=\"prev\">
|
|
|
|
<span class=\"carousel-control-prev-icon\"></span>
|
|
|
|
</a>
|
|
|
|
<a class=\"carousel-control-next\" href=\"#myCarousel\" data-slide=\"next\">
|
|
|
|
<span class=\"carousel-control-next-icon\"></span>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2023-02-23 22:15:58 +01:00
|
|
|
<script src=\"/ipfs/QmX9QyopkTw9TdeC6yZpFzutfjNFWP36nzfPQTULc4cYVJ/jquery-3.2.1.slim.min.js\"></script>
|
|
|
|
<script src=\"/ipfs/QmX9QyopkTw9TdeC6yZpFzutfjNFWP36nzfPQTULc4cYVJ/popper.min.js\"></script>
|
2023-03-09 19:42:41 +01:00
|
|
|
<script src=\"/ipfs/QmX9QyopkTw9TdeC6yZpFzutfjNFWP36nzfPQTULc4cYVJ/bootstrap.min.js\"></script>" >> $core_file
|
2023-01-06 06:23:34 +01:00
|
|
|
|
2023-03-09 19:42:41 +01:00
|
|
|
cat $core_file >> $html_file
|
2023-03-10 00:57:16 +01:00
|
|
|
echo "</body></html>" >> $html_file
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
htmlipfs=$(ipfs add -q $html_file)
|
2024-01-11 16:59:16 +01:00
|
|
|
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open http://ipfs.localhost:8080/ipfs/$htmlipfs
|
2023-03-15 05:37:03 +01:00
|
|
|
|
2024-01-30 18:02:32 +01:00
|
|
|
echo "/ipfs/$htmlipfs" > ~/.zen/tmp/ISTATION
|
2024-02-23 23:39:54 +01:00
|
|
|
cat ~/.zen/tmp/ISTATION ### KEEPIT ON LAST LINE
|
2023-01-06 06:23:34 +01:00
|
|
|
|
|
|
|
exit 0
|