Astroport.ONE/ASTROBOT/VOEUX.refresh.sh

158 lines
6.6 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
ME="${0##*/}"
################################################################################
# Inspect game wishes, refresh latest IPNS version
2022-10-10 00:39:07 +02:00
# SubProcess Backup and chain
INDEX="$1"
[[ ! $INDEX ]] && echo "Please provide path to source TW index.html" && exit 1
[[ ! -f $INDEX ]] && echo "Fichier TW absent. $INDEX" && exit 1
2022-08-23 13:38:37 +02:00
PLAYER="$2" ## IPNS KEY NAME - G1PUB - PLAYER ...
[[ ! $PLAYER ]] && echo "Please provide IPFS publish key" && exit 1
ASTRONAUTENS=$(ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1)
2022-08-23 19:27:38 +02:00
[[ ! $ASTRONAUTENS ]] && echo "$PLAYER IPNS INTROUVABLE" && exit 1
2022-08-25 17:21:39 +02:00
###############################
## EXTRACT G1Voeu from PLAYER TW
echo "Exporting $PLAYER TW [tag[G1Voeu]]"
rm -f ~/.zen/tmp/g1voeu.json
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' 'g1voeu.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
2022-10-16 02:57:29 +02:00
cat ~/.zen/tmp/g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/g1wishes
## GET VoeuTitle LIST
2022-10-16 02:57:29 +02:00
while read WISH
2022-08-23 13:38:37 +02:00
do
echo "G1Voeu $WISH"
## Get $WISHNAME TW
WISHNAME=$(cat ~/.zen/game/world/$WISH/.pepper)
[[ ! $WISHNAME ]] && echo "ERROR - Missing WISHNAME !! CONTINUE" && continue
WISHINDEX="$HOME/.zen/game/world/$WISH/index.html"
## RUN SPECIFIC G1Voeu Treatment (G1CopierYoutube.sh)
if [[ -s $MY_PATH/G1$WISHNAME.sh ]]; then
echo "Astrobot G1$WISHNAME.sh program found !"
echo "________________________________ Running it *****"
${MY_PATH}/G1${WISHNAME}.sh "$INDEX" "$PLAYER"
echo "________________________________ Finished ******"
fi
## RUN TW search & copy treatment
echo "Search & Collect default program"
2022-10-10 00:39:07 +02:00
## CLEAN OLD CACHE
2022-08-25 17:21:39 +02:00
rm -Rf ~/.zen/tmp/work
2022-08-23 13:38:37 +02:00
mkdir -p ~/.zen/tmp/work
2022-10-10 00:39:07 +02:00
echo "==============================="
echo "VOEU : $WISHNAME : $WISH"
VOEUNS=$(ipfs key list -l | grep $WISH | cut -d ' ' -f1)
echo "/ipns/$VOEUNS"
2022-10-10 00:39:07 +02:00
echo "==============================="
2022-08-23 13:38:37 +02:00
2022-10-01 16:18:15 +02:00
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2)
2022-10-10 00:39:07 +02:00
echo "$LIBRA/ipns/$VOEUNS"
echo "http://$myIP:8080/ipns/$VOEUNS"
echo "Getting latest online TW..."
[[ $YOU ]] && ipfs --timeout 12s cat /ipns/$VOEUNS > ~/.zen/tmp/work/index.html \
|| curl -m 12 -so ~/.zen/tmp/work/index.html "$LIBRA/ipns/$VOEUNS"
2022-08-23 13:38:37 +02:00
2022-08-25 17:21:39 +02:00
if [[ ! -s ~/.zen/tmp/work/index.html ]]; then
2022-10-10 00:39:07 +02:00
echo "UNAVAILABLE WISH! If you want to remove $WISHNAME $VOEU"
echo "ipfs key rm $VOEU && rm -Rf ~/.zen/game/world/$VOEU"
echo "============================================="
echo "ipfs name publish -t 72h /ipfs/$(cat ~/.zen/game/world/$VOEU/.chain)"
2022-09-23 12:09:30 +02:00
echo "============================================="
## CONTINUE - COULD WORK ON LOCAL CACHE ??
2022-08-23 13:38:37 +02:00
continue
2022-08-24 11:40:49 +02:00
else
2022-08-25 17:21:39 +02:00
##################################
## Search for [tag[G1$WISHNAME]] in all Friends TW.
## Copy tiddlers ...
##################################
2022-10-10 00:39:07 +02:00
echo "NEXT SEARCH Ŋ1 FRIENDS TW's FOR tag=$WISHNAME"
## Search in Local World (NB! G1Voeu TW copied by Connect_PLAYER_To_Gchange.sh)
for pepperpath in $(grep -lw "$WISHNAME" ~/.zen/game/world/*/.pepper);
do
G1PUB=$(echo $pepperpath | rev | cut -d '/' -f 2 | rev)
##### EACH FRIEND SAME G1VOEU HAVE SAME PEPPER
VTWINDEX="$HOME/.zen/game/world/$G1PUB/index.html"
##### Search Friend TW to get All Tiddlers G1Voeu tiddlers and copy to Player G1Voeu TW
tiddlywiki --load $VTWINDEX --output ~/.zen/tmp --render '.' 'astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport'
FRIENDNS=$(cat ~/.zen/tmp/astroport.json | jq -r .[].astroport) ## Value exists also in "MadeInZion" tiddler
G1FRIEND=$(cat ~/.zen/tmp/astroport.json | jq -r .[].g1pub) ## Value exists also in "MadeInZion" tiddler
2022-10-16 02:57:29 +02:00
[[ ! $FRIENDNS ]] && echo "ERROR MISSING /ipns/astroport FOR THAT WISH - CONTINUE -" && continue
[[ $FRIENDNS == $ASTRONAUTENS ]] && echo "One of My Wish !! - CONTINUE -" && continue
FINDEX="$HOME/.zen/game/players/$PLAYER/FRIENDS/$G1FRIEND/index.html"
2022-10-16 02:57:29 +02:00
echo "Expport [tag[G1$WISHNAME]] from $FINDEX"
tiddlywiki --load $FINDEX \
--output ~/.zen/tmp --render '.' 'g1wishtiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1'$WISHNAME']]'
[[ ! -s ~/.zen/tmp/g1wishtiddlers.json ]] && echo "ERROR - FAILED" && continue
# TODO Add Friends G1Voeu Tiddlers to my G1Voeu
2022-10-16 02:57:29 +02:00
## DIRECTLY LOOP SCAN FRIENDS TW !?
#####
done
2022-09-27 00:09:24 +02:00
2022-08-28 19:09:06 +02:00
echo "DIFFERENCE ?"
2022-10-10 00:39:07 +02:00
DIFF=$(diff ~/.zen/tmp/work/index.html ~/.zen/game/world/$VOEU/index.html)
2022-08-28 19:18:46 +02:00
if [[ $DIFF ]]; then
2022-10-10 00:39:07 +02:00
echo "Upgrade TW local copy..."
cp ~/.zen/tmp/work/index.html ~/.zen/game/world/$VOEU/index.html
2022-08-28 19:18:46 +02:00
else
echo "No change since last Refresh"
fi
2022-08-23 13:38:37 +02:00
fi
2022-10-10 00:39:07 +02:00
# RECORDING CHANGES
2022-08-23 13:38:37 +02:00
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
2022-10-10 00:39:07 +02:00
[[ $DIFF ]] && cp ~/.zen/game/world/$VOEU/.chain \
~/.zen/game/world/$VOEU/.chain.$(cat ~/.zen/game/world/$VOEU/.moats)
2022-08-28 19:18:46 +02:00
2022-10-10 00:39:07 +02:00
# PUBLISH VOEU TW
IPUSH=$(ipfs add -Hq ~/.zen/game/world/$VOEU/index.html | tail -n 1)
ipfs name publish -t 24h --key=${VOEU} /ipfs/$IPUSH 2>/dev/null
2022-08-24 11:40:49 +02:00
2022-10-10 00:39:07 +02:00
[[ $DIFF ]] && echo $IPUSH > ~/.zen/game/world/$VOEU/.chain; \
echo $MOATS > ~/.zen/game/world/$VOEU/.moats
2022-08-23 13:38:37 +02:00
rm -Rf ~/.zen/tmp/work
2022-08-28 19:18:46 +02:00
echo "================================================"
2022-10-10 00:39:07 +02:00
echo "$WISHNAME : http://$myIP:8080/ipns/$VOEUNS"
2022-08-28 19:18:46 +02:00
echo "================================================"
2022-10-11 13:51:46 +02:00
echo
echo "*****************************************************"
2022-08-28 19:18:46 +02:00
2022-10-16 02:57:29 +02:00
done < ~/.zen/tmp/g1wishes
############################################
2022-10-16 02:57:29 +02:00
echo "## WORLD VOEUX LIST = "
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
for v in $(cat ~/.zen/game/players/*/voeux/*/.title); do echo $v ;done
for VOEU in $(ls ~/.zen/game/world/);
do
2022-10-16 02:57:29 +02:00
echo "$VOEU"
## TODO REFESH IPNS
2022-08-23 19:27:38 +02:00
done
exit 0