Astroport.ONE/ASTROBOT/VOEUX.refresh.sh

247 lines
12 KiB
Bash
Raw Normal View History

2022-08-23 13:38:37 +02:00
#!/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
2022-12-29 14:51:05 +01:00
. "$MY_PATH/../tools/my.sh"
2022-08-23 13:38:37 +02:00
################################################################################
# Inspect game wishes, refresh latest IPNS version
2022-10-10 00:39:07 +02:00
# SubProcess Backup and chain
2022-12-28 23:11:16 +01:00
PLAYER="$1" ## IPNS KEY NAME - G1PUB - PLAYER ...
2023-01-08 20:02:49 +01:00
[[ ! ${PLAYER} ]] && echo "Please provide IPFS publish key" && exit 1
2022-08-23 19:27:38 +02:00
2022-12-30 17:07:08 +01:00
MOATS="$2"
2023-01-08 20:02:49 +01:00
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
ASTRONS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null)
## REFRESH ASTRONAUTE TW
2023-03-04 00:22:08 +01:00
ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
2023-01-08 20:02:49 +01:00
[[ ! $ASTRONAUTENS ]] && echo "WARNING No ${PLAYER} in keystore --" && ASTRONAUTENS=$ASTRONS
[[ ! $ASTRONAUTENS ]] && echo "Missing ${PLAYER} IPNS KEY - CONTINUE --" && exit 1
2022-08-25 17:21:39 +02:00
INDEX="$3"
2023-01-08 20:02:49 +01:00
[[ ! $INDEX ]] && INDEX="$HOME/.zen/game/players/${PLAYER}/ipfs/moa/index.html"
[[ ! -s $INDEX ]] && echo "TW ${PLAYER} manquant" && exit 1
2022-11-05 22:32:28 +01:00
mkdir -p ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu
2022-10-24 14:59:14 +02:00
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
###############################
## EXTRACT G1Voeu from PLAYER TW
2023-01-08 20:02:49 +01:00
echo "Exporting ${PLAYER} TW [tag[G1Voeu]]"
2022-11-05 22:32:28 +01:00
rm -f ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json
tiddlywiki --load ${INDEX} --output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu --render '.' "${PLAYER}.g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
[[ ! -s ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json ]] && echo "AUCUN G1VOEU - EXIT -" && exit 0
2022-11-05 22:32:28 +01:00
cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt
2023-01-17 21:53:10 +01:00
echo $(cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt | wc -l)" VOEUX : ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt "
2022-10-16 02:57:29 +02:00
2022-10-24 14:59:14 +02:00
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
## GET VoeuTitle LIST
2022-10-16 02:57:29 +02:00
while read WISH
2022-08-23 13:38:37 +02:00
do
[[ ${WISH} == "" || ${WISH} == "null" ]] && echo "BLURP. EMPTY WISH" && continue
2022-10-24 14:59:14 +02:00
echo "==============================="
2022-10-28 02:01:23 +02:00
echo "G1Voeu ${WISH}"
2023-03-02 23:48:10 +01:00
## Get ${WISHNAME}
2022-11-05 22:32:28 +01:00
WISHNAME=$(cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .title')
2022-10-28 02:01:23 +02:00
[[ ! ${WISHNAME} ]] && echo "WISH sans NOM - CONTINUE -" && continue
VOEUNS=$(cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .wishns')
VOEUKEY=$(cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .wish')
ICHECK=$(ipfs key list -l | grep -w "$VOEUKEY" | cut -d ' ' -f 1 )
if [[ ! $ICHECK ]]; then
echo "MISSING $VOEUKEY (new astronaut here) - RESET G1Voeu to voeu"
sed -i "s~G1Voeu~voeu~g" $INDEX
continue
else
2023-03-13 18:50:20 +01:00
VCOINS=$($MY_PATH/../tools/COINScheck.sh $VOEUKEY | tail -n 1)
[[ $VCOINS == "" || $VCOINS == "null" ]] \
&& echo "ERROR G1WALLET" \
|| echo "WISH G1WALLET = $VCOINS G1"
fi
echo "************************************************************"
echo "Hop, UNE JUNE pour le Voeu $WISHNAME"
echo $MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 1 -p $VOEUKEY -c \'"ASTRO:$VOEUNS G1Voeu $WISHNAME"\' -m
echo "************************************************************"
echo "************************************************************"
$MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 1 -p $VOEUKEY -c "ASTRO:$VOEUXNS G1Voeu $WISHNAME" -m
[[ ! $? == 0 ]] \
2023-03-16 20:02:12 +01:00
&& echo "POOOOOOOOOOOOOOOOOOOORRRRRR GUY. YOU CANNOT PAY A G1 FOR YOUR WISH"
## RUNNING WISH REFRESH
mkdir -p ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/${WISH}
2022-10-30 18:27:08 +01:00
##########################################################################
##########################################################################
2022-10-30 18:27:08 +01:00
## RUN SPECIFIC G1Voeu ASTROBOT PROGRAM (like G1CopierYoutube.sh)
2022-10-28 02:01:23 +02:00
if [[ -s $MY_PATH/G1${WISHNAME}.sh ]]; then
echo "........................ Astrobot G1${WISHNAME}.sh program found !"
echo "________________________________ Running it *****"
2023-01-08 20:02:49 +01:00
${MY_PATH}/G1${WISHNAME}.sh "$INDEX" "${PLAYER}" "$MOATS"
echo "________________________________ Finished ******"
2022-10-24 14:59:14 +02:00
else
echo "......................... G1${WISHNAME} REGULAR Ŋ1 RSS JSON"
fi
##########################################################################
##########################################################################
## RUN TW Ŋ1 search & copy treatment
2022-10-24 14:59:14 +02:00
echo "*********************************"
##################################
2022-10-28 02:01:23 +02:00
## Search for [tag[G1${WISHNAME}]] in all Friends TW.
## Copy tiddlers ...
##################################
2022-11-11 18:22:35 +01:00
echo "NOW SEARCH Ŋ1 FRIENDS TW's FOR tag=G1${WISHNAME}"
2023-01-08 20:02:49 +01:00
echo "ls ~/.zen/game/players/${PLAYER}/FRIENDS/*/index.html"
echo "*********************************"
## Search in Local World (NB! G1Voeu TW copied by Connect_PLAYER_To_Gchange.sh)
2023-01-08 20:02:49 +01:00
FINDEX=($( ls $HOME/.zen/game/players/${PLAYER}/FRIENDS/*/index.html))
2022-09-27 00:09:24 +02:00
## PREPARE Ŋ1 WORLD MAP
echo "var examples = {};
examples['locations'] = function() {
var locations = {" > ~/.zen/tmp/world.js
floop=1
for FRIENDTW in ${FINDEX[@]};
do
2023-03-20 21:21:46 +01:00
[[ ! -s $FRIENDTW ]] && echo "$floop / ${#FINDEX[@]} $FRIENDTW VIDE (AMI SANS TW)" && echo && ((floop++)) && continue
2023-03-20 21:31:51 +01:00
2023-03-20 21:21:46 +01:00
## GET FRIEND EMAIL = APLAYER
tiddlywiki --load $FRIENDTW \
--output ~/.zen/tmp/${MOATS} \
--render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion'
[[ ! -s ~/.zen/tmp/${MOATS}/MadeInZion.json ]] && echo "${PLAYER} MadeInZion : BAD TW (☓‿‿☓) " && continue
2023-03-20 21:31:51 +01:00
2023-03-20 21:21:46 +01:00
APLAYER=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].player)
2022-10-27 20:36:25 +02:00
rm -f ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.json
2023-03-20 21:21:46 +01:00
echo "$floop / ${#FINDEX[@]} TRY EXPORT [tag[G1${WISHNAME}]] FROM $APLAYER TW"
tiddlywiki --load $FRIENDTW \
--output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME} --render '.' _${APLAYER}'.tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1'${WISHNAME}']!tag[G1Voeu]]'
2023-03-20 21:31:51 +01:00
[[ ! -s ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.json ]] \
&& echo "NO ${WISHNAME} - CONTINUE -" \
&& echo && ((floop++)) && continue
[[ $(cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/_${APLAYER}.tiddlers.json) == "[]" ]] \
&& echo "EMPTY ${WISHNAME} - CONTINUE -" && echo && ((floop++)) && continue
echo "## TIDDLERS FOUND ;) MIAM >>> (◕‿‿◕) <<<"
echo ">>> G1FRIEND § $myIPFS/$VOEUNS/_${APLAYER}.tiddlers.json ${WISHNAME}"
2022-08-28 19:18:46 +02:00
tiddlywiki --load ${FRIENDTW} --output ~/.zen/tmp --render '.' "${APLAYER}.${WISHNAME}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${WISHNAME}"
WISHNS=$(cat ~/.zen/tmp/${APLAYER}.${WISHNAME}.json | jq -r '.[].wishns')
2023-03-20 14:34:28 +01:00
[[ $WISHNS == "null" ]] && echo "NO WISHNS in ~/.zen/tmp/${APLAYER}.${WISHNAME}.json" && echo && ((floop++)) && continue
echo ">>> ${myIPFS}${WISHNS}"
2023-03-20 21:31:51 +01:00
echo "${APLAYER}: {
alpha: Math.random() * 2 * Math.PI,
delta: Math.random() * 2 * Math.PI,
name: '"${WISNAME} ${APLAYER}"',
link: '"${myIPFS}${WISHNS}"'
2023-03-20 21:31:51 +01:00
}
," >> ~/.zen/tmp/world.js
((floop++))
done
2023-03-20 21:31:51 +01:00
# REMOVE la dernière virgule
sed -i '$ d' ~/.zen/tmp/world.js
##################################
## FINISH LOCATIONS
2023-03-20 13:33:16 +01:00
echo "};
\$('#sphere').earth3d({
locationsElement: \$('#locations'),
dragElement: \$('#locations'),
locations: locations
});
};
2023-03-20 13:33:16 +01:00
\$(document).ready(function() {
selectExample('locations');
2023-03-20 13:33:16 +01:00
\$('#example').change(function() {
selectExample(\$(this).val());
});
});
" >> ~/.zen/tmp/world.js
cat ~/.zen/tmp/world.js
IAMAP=$(ipfs add -qw ~/.zen/tmp/world.js | tail -n 1)
echo "CREATING /ipfs/${IAMAP}/world.js"
##################################
## MAKE MY OWN JSON
################################## MOA MAINTENANT
2023-03-16 21:14:45 +01:00
echo ">>> EXPORT [tag[G1${WISHNAME}]!tag[G1Voeu]] § $myIPFSGW$VOEUNS/_${PLAYER}.tiddlers.json"
tiddlywiki --load $INDEX \
--output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME} \
2023-03-16 21:52:42 +01:00
--render '.' _${PLAYER}'.tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1'${WISHNAME}']!tag[G1Voeu]]'
##################################
## MAKE EARTH MAP TILES
2023-03-04 00:22:08 +01:00
echo
2023-03-07 02:26:23 +01:00
# echo "DEBUG : s~_LIBRA_~$(myIpfsGw)~g s~_G1VOEU_~${WISHNAME}~g s~_PLAYER_~${PLAYER}~g s~_VOEUNS_~${VOEUNS}~g s~_ASTRONAUTENS_~${ASTRONAUTENS}~g"
2023-03-04 00:22:08 +01:00
echo
##################################
## INSERT PLAYER G1 QRCODE : QRG1avatar.png
2023-03-16 21:18:21 +01:00
#~ [[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.dir.ipfs ]] # REACTIVATE .?
ipfs add -qw ~/.zen/game/players/${PLAYER}/QRG1avatar.png | tail -n 1 > ~/.zen/game/players/${PLAYER}/QRG1avatar.dir.ipfs
QRLINK=$(cat ~/.zen/game/players/${PLAYER}/QRG1avatar.dir.ipfs)
##################################
2023-03-03 13:44:03 +01:00
cat $MY_PATH/../www/PasseportTerre/index.html \
| sed -e "s~_LIBRA_~$(myIpfsGw)~g" \
-e "s~_G1VOEU_~${WISHNAME}~g" \
-e "s~_PLAYER_~${PLAYER}~g" \
-e "s~_VOEUNS_~${VOEUNS}~g" \
-e "s~QmYdWBx32dP14XcbXF7hhtDq7Uu6jFmDaRnuL5t7ARPYkW/index_fichiers/world.js~${IAMAP}/world.js~g" \
-e "s~_ASTRONAUTENS_~${ASTRONAUTENS}~g" \
-e "s~QmWUpjGFuF7NhpXgkrCmx8Tbu4xjcFpKhE7Bsvt6HeKYxu/g1ticket_qrcode.png~${QRLINK}/QRG1avatar.png~g" \
2023-03-16 17:03:37 +01:00
-e "s~http://127.0.0.1:8080~${myIPFS}~g" \
2023-01-07 17:14:57 +01:00
> ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/index.html
### PREPARE WISHNAME index.html
##################################
### ADD TO IPFS
echo "++WISH PUBLISHING++ ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/*"
2023-03-02 23:48:10 +01:00
du -h ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/
WISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/* | tail -n 1) # ADDING JSONS TO IPFS
ipfs name publish -k $VOEUKEY /ipfs/$WISHFLUX # PUBLISH $VOEUKEY
## MOVE INTO PLAYER AREA
echo ">>> $VOEUKEY : Ŋ1 FLUX $(myIpfsGw)${VOEUNS}"
2023-01-14 01:08:14 +01:00
echo "~/.zen/game/players/${PLAYER}/G1${WISHNAME}/${G1PUB}"
cp -f ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${WISHNAME}/* ~/.zen/game/players/${PLAYER}/G1${WISHNAME}/${G1PUB}/
2022-11-05 22:32:28 +01:00
done < ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt
2022-10-28 02:01:23 +02:00
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
echo "TODO : REFRESH WORLD SAME WISH"
cat ~/.zen/game/world/$WISHNAME/*/.link 2>/dev/null
2022-10-28 02:01:23 +02:00
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
############################################
2022-08-23 19:27:38 +02:00
exit 0