Astroport.ONE/tools/Connect_PLAYER_To_Gchange.sh

194 lines
11 KiB
Bash
Raw Normal View History

2022-06-01 16:17:20 +02:00
#!/bin/bash
2022-08-15 19:07:39 +02:00
# Run After PLAYER.entrance.sh
2022-08-23 16:31:40 +02:00
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
2022-06-01 16:17:20 +02:00
######################################################################### CONNECT PLAYER WITH GCHANGE
# Check who is .current PLAYER
PLAYER="$1"
[[ $PLAYER == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
[[ $PLAYER == "" ]] && echo "ERROR PLAYER - EXIT" && exit 1
PSEUDO=$(cat ~/.zen/game/players/$PLAYER/.pseudo 2>/dev/null)
[[ $G1PUB == "" ]] && G1PUB=$(cat ~/.zen/game/players/$PLAYER/.g1pub 2>/dev/null)
[[ $G1PUB == "" ]] && echo "ERROR G1PUB - EXIT" && exit 1
2022-06-01 16:17:20 +02:00
2022-08-15 19:07:39 +02:00
ASTRONAUTENS=$(ipfs key list -l | grep -w "$PLAYER" | cut -d ' ' -f 1)
[[ ! $ASTRONAUTENS ]] && echo "ERROR ASTRONAUTENS - EXIT" && exit 1
2022-08-15 19:07:39 +02:00
## Directory is created, So this script already run once.
2022-10-07 00:32:33 +02:00
if [[ ! -d ~/.zen/game/players/$PLAYER/FRIENDS/ ]]; then
########################################################################
echo "CREATING $PLAYER GCHANGE+ PROFILE"
########################################################################
2022-10-24 03:21:46 +02:00
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://data.gchange.fr" set --site "http://tube.copylaradio.com:8080/ipns/$ASTRONAUTENS" #GCHANGE+
[[ ! $? == 0 ]] && echo "GCHANGE PROFILE CREATION FAILED" && echo "Action Manuelle " $MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://data.gchange.fr" set --name "Astronaute $PSEUDO" --avatar "/home/$USER/.zen/Astroport.ONE/images/logo.png" --site "http://qo-op.com:8080/ipns/$ASTRONAUTENS" #GCHANGE+
2022-08-28 19:09:06 +02:00
2022-10-07 00:32:33 +02:00
########################################################################
#echo "CREATING $PLAYER CESIUM+ PROFILE"
########################################################################
2022-10-24 03:21:46 +02:00
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://g1.data.presles.fr" set --site "http://127.0.0.1:8080/ipns/$ASTRONAUTENS" #CESIUM+
2022-10-07 00:32:33 +02:00
[[ ! $? == 0 ]] && echo "CESIUM PROFILE CREATION FAILED" && echo "Action Manuelle " $ $MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://g1.data.presles.fr" set --name "Astronaute $PLAYER" --avatar "/home/$USER/.zen/Astroport.ONE/images/logo.png" --site "http://127.0.0.1:8080/ipns/$ASTRONAUTENS" #CESIUM+
fi
2022-08-28 19:09:06 +02:00
2022-06-01 16:17:20 +02:00
########################################################################
########################################################################
echo "SCANNING $PLAYER - $G1PUB - Gchange FRIENDS"
2022-06-01 16:17:20 +02:00
########################################################################
2022-09-27 00:09:24 +02:00
################## CHECKING WHO GAVE ME STARS
################## BOOTSTRAP LIKES THEM BACK
################## SEND ipfstryme MESSAGES to FRIENDS
2022-10-07 00:59:15 +02:00
rm -f ~/.zen/tmp/my_star_level
2022-09-27 00:09:24 +02:00
## Getting Gchange liking_me list
echo "Getting received stars"
################################## JAKLIS PLAYER stars
~/.zen/Astroport.ONE/tools/timeout.sh -t 20 \
~/.zen/Astroport.ONE/tools/jaklis/jaklis.py \
-k ~/.zen/game/players/$PLAYER/secret.dunikey \
-n "https://data.gchange.fr" stars > ~/.zen/tmp/received_stars.json
cat ~/.zen/tmp/received_stars.json | jq -r '.likes[].issuer' | uniq > ~/.zen/tmp/liking_me
echo "cat ~/.zen/tmp/received_stars.json | jq -r"
2022-09-27 00:09:24 +02:00
for liking_me in $(cat ~/.zen/tmp/liking_me | sort | uniq);
do
[[ "${liking_me}" == "" ]] && continue ## Protect from empty line !!
2022-09-27 00:09:24 +02:00
ASTRONAUTENS=$(~/.zen/Astroport.ONE/tools/g1_to_ipfs.py ${liking_me})
echo "${liking_me} is Astronaut ?"
echo "Get TW Capsule http://qo-op.com:8080/ipns/$ASTRONAUTENS "
2022-09-27 00:09:24 +02:00
2022-10-07 00:32:33 +02:00
##### CHECKING IF WE LIKE EACH OTHER Ŋ1 LEVEL
################################## JAKLIS LIKING_ME stars
~/.zen/Astroport.ONE/tools/timeout.sh -t 20 \
~/.zen/Astroport.ONE/tools/jaklis/jaklis.py \
-k ~/.zen/game/players/$PLAYER/secret.dunikey \
-n "https://data.gchange.fr" \
stars -p ${liking_me} > ~/.zen/tmp/${liking_me}.Gstars.json
echo "Got Stars : cat ~/.zen/tmp/${liking_me}.Gstars.json | jq -r"
2022-09-27 00:09:24 +02:00
## ZOMBIE PROTECTION
[[ "$?" == "0" && ! -s ~/.zen/tmp/${liking_me}.Gstars.json ]] && rm -Rf ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me} && echo "${liking_me} is a ZOMBIE..." && continue
2022-09-27 00:09:24 +02:00
2022-10-06 21:18:54 +02:00
#### RECUP ANNONCES Gchange
## https://www.gchange.fr/#/app/records/wallet?q=2geH4d2sndR47XWtfDWsfLLDVyNNnRsnUD3b1sk9zYc4&old
2022-10-07 17:09:07 +02:00
## https://www.gchange.fr/#/app/market/records/42LqLa7ARTZqUKGz2Msmk79gwsY8ZSoFyMyPyEnoaDXR
2022-10-06 21:18:54 +02:00
## DATA EXTRACTION FROM ~/.zen/tmp/${liking_me}.Gstars.json
my_star_level=$(cat ~/.zen/tmp/${liking_me}.Gstars.json | jq -r '.yours.level');
f_score=$(cat ~/.zen/tmp/${liking_me}.Gstars.json | jq -r '.score');
myfriendship=$(cat ~/.zen/tmp/${liking_me}.Gstars.json | jq -r '.likes[] | select(.issuer | strings | test("'$G1PUB'"))')
## OH MY FRIEND !
if [[ "$my_star_level" != "null" && "${liking_me}" != "$G1PUB" ]]
2022-09-27 00:09:24 +02:00
then
# ADD ${liking_me} TO MY ipfs FRIENDS list
echo "${liking_me} ($my_star_level stars) : Ŋ1 SCORE $f_score "
mkdir -p ~/.zen/game/players/$PLAYER/FRsIENDS/${liking_me}
2022-09-27 00:09:24 +02:00
# REFRESH & PUBLISH stars friends map
2022-10-07 00:59:15 +02:00
if [[ "$my_star_level" == "null" || "$my_star_level" == "" ]]; then
rm -Rf ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}
echo "$my_star_level NO STAR !! Removing ${liking_me}"
2022-09-27 00:09:24 +02:00
## TODO : remove "ipfs pin" in "~/.zen/PIN/"
continue ## REMOVE NO GOOD FRIENDS (no star)
fi
cp ~/.zen/tmp/${liking_me}.Gstars.json ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/ && rm -f ~/.zen/tmp/${liking_me}.Gstars.json
echo "$my_star_level" > ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/stars.level && echo "***** $my_star_level STARS *****"
2022-09-27 00:09:24 +02:00
## GET FRIEND TW !!
echo "Getting latest online TW..."
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)
echo "$LIBRA/ipns/$ASTRONAUTENS"
echo "http://$myIP:8080/ipns/$ASTRONAUTENS ($YOU)"
[[ $YOU ]] && ipfs --timeout 12s cat /ipns/$ASTRONAUTENS > ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html \
|| curl -m 12 -so ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html "$LIBRA/ipns/$ASTRONAUTENS"
## PLAYER TW IS ONLINE ?
if [ ! -s ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html ]; then
# # # # # # # # # # # # # # #
## AUCUN VISA ASTRONAUTE ENVOYER UN MESSAGE PAR GCHANGE
echo "AUCUN TW ACTIF. ENVOYONS LUI UN MESSAGE..."
2022-10-24 03:21:46 +02:00
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://data.gchange.fr" send -d "${liking_me}" -t "SALUT. Je suis sur Astroport. Et toi." -m "Active ton TW avec moi : http://libra.copylaradio.com:1234"
else
echo "COOL MON AMI PUBLIE SUR IPFS"
ls -al ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html
# # # # # # # # # # # # # # # TODO
# CHECK Dessin de Moa ?? For Now Gchange contains official friends stars level
# # # # # # # # # # # # # # #
# GET G1Voeux
# # # # # # # # # # # # # # #
2022-10-16 02:57:29 +02:00
## EXPORT [tag[G1Voeu]]
echo "## EXPORT FRIEND $PLAYER TW [tag[G1Voeu]] $INDEX"
rm -f ~/.zen/tmp/g1amig1voeu.json
tiddlywiki --load ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html \
--output ~/.zen/tmp --render '.' 'g1amig1voeu.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
if [[ -s ~/.zen/tmp/g1amig1voeu.json ]];
then
for VOEUNS in "$(cat ~/.zen/tmp/g1amig1voeu.json | jq -r '.[].ipns')"
do
# GET SUB JSON VALUES
cat ~/.zen/tmp/g1amig1voeu.json | jq -r '.[] | select(.ipns | strings | test("'$VOEUNS'"))' > ~/.zen/tmp/wish.json
WISH=$(cat ~/.zen/tmp/wish.json | jq -r '.wish' )
TITLE=$(cat ~/.zen/tmp/wish.json | jq -r '.title' )
TAGS=$(cat ~/.zen/tmp/wish.json | jq -r '.tags' )
IPNS=$(cat ~/.zen/tmp/wish.json | jq -r '.ipns' )
[[ ! $WISH ]] && echo "JSON G1WISH ERROR - CHECK - ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/index.html" && continue
# IPNS could contain VOEUNS or /ipns/VOEUNS (/ tailing)
VOEUNS=$(echo $IPNS | rev | cut -d '/' -f 1 | rev)
2022-10-16 02:57:29 +02:00
echo "Getting latest FRIEND G1$TITLE TW into Local World"
mkdir -p ~/.zen/game/world/$WISH
2022-10-16 02:57:29 +02:00
echo "/ipns/$VOEUNS => ~/.zen/game/world/$WISH"
[[ $YOU ]] && ipfs --timeout 12s cat /ipns/$VOEUNS > ~/.zen/tmp/$VOEUNS.html \
|| curl -m 12 -so ~/.zen/tmp/$VOEUNS.html "$LIBRA/ipns/$ASTRONAUTENS"
[[ -s ~/.zen/tmp/$VOEUNS.html ]] && cp ~/.zen/tmp/$VOEUNS.html ~/.zen/game/world/$WISH/index.html
2022-10-16 02:57:29 +02:00
echo "FRIEND G1WISH COPIED ! $TITLE"
echo "$TITLE" > ~/.zen/game/world/$WISH/.pepper
ls -al ~/.zen/game/world/$WISH/index.html
done
else
echo "ERROR -- NOT COMPATIBLE TW -- AUCUN G1VOEU CHEZ CET AMI ?"
fi
fi
## APPLIQUER FILTRAGE TAG
2022-10-07 00:32:33 +02:00
## Get Ŋ2 LEVEL
for nid in $(cat ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/${liking_me}.Gstars.json | jq -r '.likes[].issuer');
2022-10-07 00:32:33 +02:00
do
echo "Ami(s) de cet Ami $linking_me : $nid"
friend_of_friend=$(cat ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/${liking_me}.Gstars.json | jq -r '.likes[] | select(.issuer | strings | test("'$nid'"))')
echo "$friend_of_friend" | jq -r > ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/friend_of_friend.json
2022-10-07 00:32:33 +02:00
done
echo "***** Keep G1/IPNS conversion *****"
echo ${ASTRONAUTENS} > ~/.zen/game/players/$PLAYER/FRIENDS/${liking_me}/.astronautens
else
2022-10-16 02:57:29 +02:00
echo "ETOILES RECUES!! ... ENVOI MOI UN MESSAGE POUR CONNAITRE QUI"
2022-10-24 03:35:48 +02:00
$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey -n "https://data.gchange.fr" send -d "${G1PUB}" -t "ETOILES RECUES (G1STARS $f_score)" -m "https://www.gchange.fr/#/app/user/${liking_me}/"
echo "Not Linking ;( YET."
2022-09-27 00:09:24 +02:00
fi
2022-09-27 00:09:24 +02:00
sleep $((1 + RANDOM % 2)) # SLOW DOWN
done
2022-06-01 16:17:20 +02:00
2022-08-18 03:47:49 +02:00
exit 0