Merge branch 'papiche:master' into master
This commit is contained in:
commit
0daca449ff
|
@ -16,7 +16,13 @@ LOWMODE=$(sudo systemctl status ipfs | grep disabled) ## IPFS DISABLED - START O
|
||||||
[[ ! $isLAN ]] && LOWMODE="" ## LOWMODE ONLY FOR LAN STATION
|
[[ ! $isLAN ]] && LOWMODE="" ## LOWMODE ONLY FOR LAN STATION
|
||||||
# echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl')
|
# echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl')
|
||||||
|
|
||||||
sudo systemctl restart ipfs && sleep 10
|
#~ sudo systemctl stop astroport
|
||||||
|
## CHECK IF IPFS NODE IS RESPONDING (ipfs name resolve ?)
|
||||||
|
ipfs --timeout=30s swarm peers 2>/dev/null > ~/.zen/tmp/ipfs.swarm.peers
|
||||||
|
[[ ! -s ~/.zen/tmp/ipfs.swarm.peers || $? != 0 ]] \
|
||||||
|
&& echo "---- SWARM COMMUNICATION BROKEN / RESTARTING IPFS DAEMON ----" \
|
||||||
|
&& sudo systemctl restart ipfs \
|
||||||
|
&& sleep 60
|
||||||
|
|
||||||
floop=0
|
floop=0
|
||||||
while [[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]]; do
|
while [[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]]; do
|
||||||
|
@ -31,12 +37,21 @@ done
|
||||||
echo "TODAY UPlanet landings"
|
echo "TODAY UPlanet landings"
|
||||||
ls ~/.zen/tmp/ZONE_* 2>/dev/null
|
ls ~/.zen/tmp/ZONE_* 2>/dev/null
|
||||||
|
|
||||||
## REMOVE TMP BUT KEEP SWARM and coucou
|
## REMOVE TMP BUT KEEP swarm, flashmem and coucou
|
||||||
mv ~/.zen/tmp/swarm ~/.zen/swarm
|
mv ~/.zen/tmp/swarm ~/.zen/swarm
|
||||||
mv ~/.zen/tmp/coucou ~/.zen/coucou
|
mv ~/.zen/tmp/coucou ~/.zen/coucou
|
||||||
|
mv ~/.zen/tmp/flashmem ~/.zen/flashmem
|
||||||
rm -Rf ~/.zen/tmp/*
|
rm -Rf ~/.zen/tmp/*
|
||||||
mv ~/.zen/swarm ~/.zen/tmp/swarm
|
mv ~/.zen/swarm ~/.zen/tmp/swarm
|
||||||
mv ~/.zen/coucou ~/.zen/tmp/coucou
|
mv ~/.zen/coucou ~/.zen/tmp/coucou
|
||||||
|
mv ~/.zen/flashmem ~/.zen/tmp/flashmem
|
||||||
|
|
||||||
|
### DELAY _12345 ASTROPORT DURING 20H12 UPDATE ###
|
||||||
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
|
MOATS_plus_5_hours=$(date -d "now + 5 hours" +"%Y%m%d%H%M%S%4N")
|
||||||
|
mkdir ~/.zen/tmp/${IPFSNODEID}
|
||||||
|
echo ${MOATS_plus_5_hours} > ~/.zen/tmp/${IPFSNODEID}/_MySwarm.moats
|
||||||
|
echo 9000 > ~/.zen/tmp/random.sleep
|
||||||
|
|
||||||
## UPDATE G1BILLETS code
|
## UPDATE G1BILLETS code
|
||||||
[[ -s ~/.zen/G1BILLET/G1BILLETS.sh ]] \
|
[[ -s ~/.zen/G1BILLET/G1BILLETS.sh ]] \
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Pourquoi ?
|
||||||
|
|
||||||
|
## La Monnaie est Buggée !
|
||||||
|
Dans l'écosystème actuel, la notion de monnaie est sujette à des défauts.
|
||||||
|
La distinction entre une unité non libre et une monnaie libre révèle des imperfections
|
||||||
|
dans les échanges économiques.
|
||||||
|
|
||||||
|
## Blockchain = Registre Global
|
||||||
|
La blockchain, en tant que registre global, offre une opportunité de remédier aux lacunes du
|
||||||
|
système financier actuel. Elle peut être envisagée comme une carte d'identité pour le Web3,
|
||||||
|
offrant transparence et traçabilité.
|
||||||
|
|
||||||
|
## IA Apprentissage et Contrôle
|
||||||
|
La gestion de l'intelligence artificielle est cruciale. La comparaison entre un ChatGPT privé
|
||||||
|
et Mistral libre souligne la nécessité d'un contrôle plus étendu.
|
||||||
|
"The PILE", source d'information, demande une cohérence accrue pour garantir une
|
||||||
|
diffusion fiable des connaissances.
|
||||||
|
|
||||||
|
## Loi de Moore vs Industrie
|
||||||
|
La cadence effrénée de la Loi de Moore, avec une progression tous les 1,5 ans,
|
||||||
|
se heurte à la réalité industrielle où les cycles d'investissement s'étendent de 3 à 11 ans.
|
||||||
|
Les rendements sur investissements sont souvent compromis, créant des opportunités pour de nouveaux acteurs.
|
||||||
|
|
||||||
|
## Web2.0 Épileptique
|
||||||
|
Les soubresauts du Web2.0, caractérisés par l'instabilité des données et de leur localisation,
|
||||||
|
soulignent la nécessité d'une approche plus stable et cohérente.
|
||||||
|
|
||||||
|
# Comment ?
|
||||||
|
|
||||||
|
## UPlanet / Astroport.ONE
|
||||||
|
La solution réside dans UPlanet et Astroport.ONE, des initiatives axées sur la décentralisation et la régulation.
|
||||||
|
En adoptant une blockchain multi-grille sphérique et des clés géospatiales, ces plateformes créent un réseau de :
|
||||||
|
* stations index (300€)
|
||||||
|
* stations de stockage (1500€)
|
||||||
|
* stations IA avec GPU (5000€)
|
||||||
|
|
||||||
|
|
||||||
|
Ces stations, en synergie, visent à résoudre les problèmes évoqués, offrant une alternative innovante
|
||||||
|
pour les investisseurs souhaitant participer à la transformation du paysage technologique.
|
22
API/AMZQR.sh
22
API/AMZQR.sh
|
@ -26,6 +26,8 @@ MOATS=$9
|
||||||
COOKIE=$10"
|
COOKIE=$10"
|
||||||
PORT="$1" THAT="$2" AND="$3" THIS="$4" APPNAME="$5" WHAT="$6" OBJ="$7" VAL="$8" MOATS="$9" COOKIE="$10"
|
PORT="$1" THAT="$2" AND="$3" THIS="$4" APPNAME="$5" WHAT="$6" OBJ="$7" VAL="$8" MOATS="$9" COOKIE="$10"
|
||||||
|
|
||||||
|
[[ "$PORT" == "" ]] && echo "$MY_PATH/AMZQR.sh '0' 'la chaine a mettre en QRCODE' 'et' 'TV'" && exit 1
|
||||||
|
|
||||||
HTTPCORS="HTTP/1.1 200 OK
|
HTTPCORS="HTTP/1.1 200 OK
|
||||||
Access-Control-Allow-Origin: ${myASTROPORT}
|
Access-Control-Allow-Origin: ${myASTROPORT}
|
||||||
Access-Control-Allow-Credentials: true
|
Access-Control-Allow-Credentials: true
|
||||||
|
@ -37,6 +39,8 @@ Content-Type: text/html; charset=UTF-8
|
||||||
|
|
||||||
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||||
|
|
||||||
|
|
||||||
|
[[ ${MOATS} == "" ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/
|
mkdir -p ~/.zen/tmp/${MOATS}/
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
|
@ -44,10 +48,12 @@ USTRING=$(urldecode "${THAT}")
|
||||||
IMAGE="${THIS}"
|
IMAGE="${THIS}"
|
||||||
|
|
||||||
[[ ! -s ${MY_PATH}/../images/${IMAGE}.png || ${USTRING} == "" ]] \
|
[[ ! -s ${MY_PATH}/../images/${IMAGE}.png || ${USTRING} == "" ]] \
|
||||||
&& exho "UNKNOW IMAGE ${IMAGE}" \
|
&& echo "UNKNOW IMAGE ${IMAGE}" \
|
||||||
&& (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) \
|
&& ( [[ $PORT != "0" ]] && echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) \
|
||||||
&& echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 1
|
&& echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 1
|
||||||
|
|
||||||
|
echo amzqr "${USTRING}" -l H -c -p ${MY_PATH}/../images/${IMAGE}.png -n ${MOATS}.png -d ~/.zen/tmp/${MOATS}/
|
||||||
|
|
||||||
## RUN AMZQR
|
## RUN AMZQR
|
||||||
amzqr "${USTRING}" -l H -c -p ${MY_PATH}/../images/${IMAGE}.png -n ${MOATS}.png -d ~/.zen/tmp/${MOATS}/
|
amzqr "${USTRING}" -l H -c -p ${MY_PATH}/../images/${IMAGE}.png -n ${MOATS}.png -d ~/.zen/tmp/${MOATS}/
|
||||||
IPFSMG=$(ipfs add -q ~/.zen/tmp/${MOATS}/${MOATS}.png | tail -n 1)
|
IPFSMG=$(ipfs add -q ~/.zen/tmp/${MOATS}/${MOATS}.png | tail -n 1)
|
||||||
|
@ -55,6 +61,18 @@ echo "${myIPFS}/ipfs/${IPFSMG}"
|
||||||
|
|
||||||
echo "$HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url='${myIPFS}/ipfs/${IPFSMG}'\" />" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
echo "$HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url='${myIPFS}/ipfs/${IPFSMG}'\" />" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
||||||
|
|
||||||
|
if [[ $PORT == "0" ]]; then
|
||||||
|
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open ${myIPFS}/ipfs/${IPFSMG}
|
||||||
|
|
||||||
|
LP=$(ls /dev/usb/lp* 2>/dev/null | head -n1)
|
||||||
|
[[ ! $LP ]] && echo "NO PRINTER FOUND - Brother QL700 validated" && exit 1
|
||||||
|
|
||||||
|
echo "IMPRESSION QRCODE"
|
||||||
|
brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/${MOATS}/${MOATS}.png > ~/.zen/tmp/${MOATS}/toprint.bin 2>/dev/null
|
||||||
|
sudo brother_ql_print ~/.zen/tmp/${MOATS}/toprint.bin $LP
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
rm -Rf ~/.zen/tmp/${MOATS}/
|
rm -Rf ~/.zen/tmp/${MOATS}/
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
echo "(AMZQR) Operation time was "`expr $end - $start` seconds.
|
echo "(AMZQR) Operation time was "`expr $end - $start` seconds.
|
||||||
|
|
|
@ -159,22 +159,23 @@ mkdir -p ~/.zen/tmp/${MOATS}/${LAT}_${LON}
|
||||||
ipfs key rm ${G1PUB} > /dev/null 2>&1
|
ipfs key rm ${G1PUB} > /dev/null 2>&1
|
||||||
rm ~/.zen/tmp/${MOATS}/_ipns.priv 2>/dev/null
|
rm ~/.zen/tmp/${MOATS}/_ipns.priv 2>/dev/null
|
||||||
|
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}"
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
||||||
UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv )
|
UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv )
|
||||||
|
|
||||||
[[ ! ${UMAPNS} ]] && (echo "$HTTPCORS ERROR - (╥☁╥ ) - UMAPNS COMPUTATION DISFUNCTON" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1
|
[[ ! ${UMAPNS} ]] && (echo "$HTTPCORS ERROR - (╥☁╥ ) - UMAPNS COMPUTATION DISFUNCTON" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1
|
||||||
echo "UMAPNS : ${myIPFS}/ipns/${UMAPNS}"
|
echo "UMAPNS : ${myIPFS}/ipns/${UMAPNS}"
|
||||||
|
|
||||||
## ALL TEST PASSED -> CREATE ZENCARD + ASTROID
|
## ALL TEST PASSED -> CREATE ZENCARD + ASTROID
|
||||||
NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES
|
#~ NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES
|
||||||
PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 4) ## STRONGER TW SECURITY "AlpH4nUm"
|
#~ NPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10) ## STRONGER TW SECURITY "AlpH4nUm"
|
||||||
NPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10) ## STRONGER TW SECURITY "AlpH4nUm"
|
#~ PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 2)
|
||||||
|
PPASS=$(${MY_PATH}/../tools/diceware.sh $(${MY_PATH}/../tools/getcoins_from_gratitude_box.sh) | xargs)
|
||||||
|
NPASS=$(${MY_PATH}/../tools/diceware.sh $(${MY_PATH}/../tools/getcoins_from_gratitude_box.sh) | xargs)
|
||||||
## CREATE ASTRONAUTE TW ON CURRENT ASTROPORT
|
## CREATE ASTRONAUTE TW ON CURRENT ASTROPORT
|
||||||
(
|
(
|
||||||
echo VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}"
|
echo VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}"
|
||||||
##### (☉_☉ ) #######
|
##### (☉_☉ ) #######
|
||||||
${MY_PATH}/../RUNTIME/VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt
|
${MY_PATH}/../RUNTIME/VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt
|
||||||
|
|
||||||
## TO REMOVE : MONITOR
|
## TO REMOVE : MONITOR
|
||||||
${MY_PATH}/../tools/mailjet.sh "support@qo-op.com" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt "LOG VISA.new $EMAIL" ## Send VISA.new log to EMAIL
|
${MY_PATH}/../tools/mailjet.sh "support@qo-op.com" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt "LOG VISA.new $EMAIL" ## Send VISA.new log to EMAIL
|
||||||
|
@ -183,10 +184,9 @@ end=`date +%s`
|
||||||
echo "(TW REGISTRATION) Operation time was "`expr $end - $start` seconds.
|
echo "(TW REGISTRATION) Operation time was "`expr $end - $start` seconds.
|
||||||
) &
|
) &
|
||||||
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
## Calculating TW IPNS ADDRESS
|
## Calculating TW IPNS ADDRESS
|
||||||
TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${EMAIL}_${PPASS}" "${NPASS}")
|
TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${PPASS}" "${NPASS}")
|
||||||
|
|
||||||
## HTTP nc ON PORT RESPONSE
|
## HTTP nc ON PORT RESPONSE
|
||||||
echo "$HTTPCORS
|
echo "$HTTPCORS
|
||||||
|
@ -216,11 +216,11 @@ echo "$HTTPCORS
|
||||||
</style>
|
</style>
|
||||||
</head><body>
|
</head><body>
|
||||||
<h1>UPlanet Registration</h1>
|
<h1>UPlanet Registration</h1>
|
||||||
Your AstroID seeds are:<br>
|
${EMAIL} AstroID seeds are:<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>${EMAIL}_${PPASS}</h2>
|
<h2>${PPASS}</h2>
|
||||||
<h1>${NPASS}</h1>
|
<h2>${NPASS}</h2>
|
||||||
|
<h2>${PASS}</h2>
|
||||||
Generating account...
|
Generating account...
|
||||||
<br>Please check your mail box to get your ZenCard and PIN code.
|
<br>Please check your mail box to get your ZenCard and PIN code.
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -69,11 +69,11 @@ for YURL in $(cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.js
|
||||||
lastrun=$(echo "$CMD" | rev | cut -d ':' -f 1 | rev) && echo "$CMD"
|
lastrun=$(echo "$CMD" | rev | cut -d ':' -f 1 | rev) && echo "$CMD"
|
||||||
duree=$(expr ${MOATS} - $lastrun)
|
duree=$(expr ${MOATS} - $lastrun)
|
||||||
fi
|
fi
|
||||||
# ONE WEEK NEW SCAN
|
# ONE WEEK NEW SCAN
|
||||||
if [[ $duree -ge 604800000 || ! -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} ]]; then
|
if [[ $duree -ge 604800000 || ! -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} ]]; then
|
||||||
/usr/local/bin/yt-dlp $BROWSER --print "%(id)s&%(webpage_url)s" "${YURL}" >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER}
|
/usr/local/bin/yt-dlp $BROWSER --print "%(id)s&%(webpage_url)s" "${YURL}" 2>/dev/null >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER}
|
||||||
sed -i "s~$lastrun~$MOATS~g" ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command # UPDATE LASTRUN
|
sed -i "s~$lastrun~$MOATS~g" ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command # UPDATE LASTRUN
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done # FINISH YURL loop
|
done # FINISH YURL loop
|
||||||
|
|
||||||
|
@ -94,6 +94,9 @@ while read LINE;
|
||||||
echo "_____ $LINE _____ $boucle"
|
echo "_____ $LINE _____ $boucle"
|
||||||
YID="$(echo "$LINE" | rev | cut -d '=' -f 1 | rev )"
|
YID="$(echo "$LINE" | rev | cut -d '=' -f 1 | rev )"
|
||||||
|
|
||||||
|
#~ [[ $boucle -gt 50 ]] && break ## TODO SCAN FOR ABROAD SAME COPY DONE
|
||||||
|
### MAKE BETTER THAN RANDOM !! CONNECT TO THE WARM...
|
||||||
|
|
||||||
###################################################################
|
###################################################################
|
||||||
## Search for $YID.TW.json TIDDLER in local & MySwarm cache
|
## Search for $YID.TW.json TIDDLER in local & MySwarm cache
|
||||||
#~ echo "--- CACHE SEARCH FOR $YID ---"
|
#~ echo "--- CACHE SEARCH FOR $YID ---"
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
To use `natools` for message encryption (to destination) and signature (from sender), you would typically follow these steps:
|
||||||
|
|
||||||
|
### 1. Generate Key Pairs:
|
||||||
|
- Both the sender and the recipient need to generate their key pairs (public and private keys). You can use the `natools` script to generate keys.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Sender generate keys
|
||||||
|
python3 natools.py privkey -k ~/.zen/game/sender_secret.dunikey -f cred
|
||||||
|
python3 natools.py pubkey -k ~/.zen/game/sender_secret.dunikey -o sender_public_key
|
||||||
|
|
||||||
|
# Recipient generates keys
|
||||||
|
python3 natools.py privkey -k ~/.zen/game/myswarm_secret.dunikey -f cred
|
||||||
|
python3 natools.py pubkey -k ~/.zen/game/myswarm_secret.dunikey -o recipient_public_key
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Encrypt the Message:
|
||||||
|
- The sender uses the recipient's public key to encrypt the message.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 natools.py encrypt -i plaintext.txt -k recipient_public_key -o encrypted_message.bin
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Sign the Message:
|
||||||
|
- The sender signs the original message using their private key.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 natools.py sign -i plaintext.txt -k sender_private_key -o signature.bin
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Verify the Signature:
|
||||||
|
- The recipient uses the sender's public key to verify the signature.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 natools.py verify -i plaintext.txt -p sender_public_key
|
||||||
|
```
|
||||||
|
|
||||||
|
- The script will output "Signature OK!" if the verification is successful.
|
||||||
|
|
||||||
|
### 5. Decrypt the Message:
|
||||||
|
- The recipient uses their private key to decrypt the message.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 natools.py decrypt -i encrypted_message.bin -k recipient_private_key -o decrypted_message.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you have successfully performed message encryption to the destination and signature from the sender using the `natools` script. Adjust the file paths and content as needed for your specific use case.
|
||||||
|
|
||||||
|
Note: Ensure that both sender and recipient securely store their private keys. Public keys can be shared openly. The encrypted message, signature, and decrypted message are intermediate files used for illustration; adjust as needed in your application.
|
|
@ -49,7 +49,7 @@ done < ${MY_PATH}/../A_boostrap_ssh.txt
|
||||||
[[ -s ~/.ssh/id_ed25519.pub ]] && cp ~/.ssh/id_ed25519.pub ~/.zen/tmp/${IPFSNODEID}/y_ssh.pub
|
[[ -s ~/.ssh/id_ed25519.pub ]] && cp ~/.ssh/id_ed25519.pub ~/.zen/tmp/${IPFSNODEID}/y_ssh.pub
|
||||||
## DRAGONz PGP/SSH style (https://pad.p2p.legal/keygen)
|
## DRAGONz PGP/SSH style (https://pad.p2p.legal/keygen)
|
||||||
gpg --export-ssh-key $(cat ~/.zen/game/players/.current/.player) 2>/dev/null > ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub
|
gpg --export-ssh-key $(cat ~/.zen/game/players/.current/.player) 2>/dev/null > ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub
|
||||||
[[ -z ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub ]] && rm ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub # remove empty file
|
[[ ! -s ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub ]] && rm ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub # remove empty file
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
### FORWARD SSH PORT over /x/ssh-${IPFSNODEID}
|
### FORWARD SSH PORT over /x/ssh-${IPFSNODEID}
|
||||||
|
@ -69,18 +69,48 @@ echo
|
||||||
PORT=22000
|
PORT=22000
|
||||||
PORT=$((PORT+${RANDOM:0:3}))
|
PORT=$((PORT+${RANDOM:0:3}))
|
||||||
|
|
||||||
echo "#!/bin/bash
|
echo '#!/bin/bash
|
||||||
if [[ ! \$(ipfs p2p ls | grep x/ssh-${IPFSNODEID}) ]]; then
|
if [[ ! $(ipfs p2p ls | grep x/ssh-'${IPFSNODEID}') ]]; then
|
||||||
ipfs --timeout=10s ping -n 3 /p2p/${IPFSNODEID}
|
ipfs --timeout=10s ping -n 4 /p2p/'${IPFSNODEID}'
|
||||||
ipfs p2p forward /x/ssh-${IPFSNODEID} /ip4/127.0.0.1/tcp/$PORT /p2p/${IPFSNODEID}
|
[[ $? == 0 ]] \
|
||||||
|
&& ipfs p2p forward /x/ssh-'${IPFSNODEID}' /ip4/127.0.0.1/tcp/'${PORT}' /p2p/'${IPFSNODEID}' \
|
||||||
|
&& ssh '${USER}'@127.0.0.1 -p '${PORT}' \
|
||||||
|
|| echo "CONTACT IPFSNODEID FAILED - ERROR -"
|
||||||
fi
|
fi
|
||||||
ssh ${USER}@127.0.0.1 -p $PORT
|
' > ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh
|
||||||
" > ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh
|
|
||||||
|
|
||||||
cat ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh
|
cat ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh
|
||||||
|
|
||||||
|
echo "
|
||||||
|
|
||||||
|
/| /\\
|
||||||
|
/^^^/ |^\Z / |
|
||||||
|
| \Z / |
|
||||||
|
/ @ \Z / / \_______
|
||||||
|
( \ _ / \Z / / /
|
||||||
|
( ---- /G |\ |Z / / /
|
||||||
|
( / ---- \ /---'/\ |Z / / /
|
||||||
|
\/--' /--/ /Z / /
|
||||||
|
| /--/ |Z / / \_______
|
||||||
|
/ /--/ |Z \ / /
|
||||||
|
--/ /--/ \Z | / /
|
||||||
|
/ /--/ \Z / /
|
||||||
|
|--| \Z/ /
|
||||||
|
|---| / /----'
|
||||||
|
\---| /^^^^^^^^^^^^\Z
|
||||||
|
\-/ \Z
|
||||||
|
/ / | \Z
|
||||||
|
\---' |\________| |_______ |Z
|
||||||
|
\--' /\/ \|_|_|_|| |_|_|_|_|\_ |Z
|
||||||
|
'------' / / / |_ /Z
|
||||||
|
\---' | / `````` /Z
|
||||||
|
\--' /\/ \ _____________/Z
|
||||||
|
'------' \
|
||||||
|
|
||||||
|
"
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
echo
|
echo "CONNECT WITH THIS COMMAND"
|
||||||
echo "ipfs cat /ipns/${IPFSNODEID}/x_ssh.sh | bash"
|
echo "ipfs cat /ipns/${IPFSNODEID}/x_ssh.sh | bash"
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,6 @@ cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json |
|
||||||
## GET @ in JSON INLINE
|
## GET @ in JSON INLINE
|
||||||
while read LINE; do
|
while read LINE; do
|
||||||
|
|
||||||
echo "MATCHING IN COMMENT"
|
|
||||||
echo "${LINE}"
|
echo "${LINE}"
|
||||||
JSON=${LINE}
|
JSON=${LINE}
|
||||||
TXIDATE=$(echo $JSON | jq -r .date)
|
TXIDATE=$(echo $JSON | jq -r .date)
|
||||||
|
@ -124,7 +123,6 @@ while read LINE; do
|
||||||
TXIAMOUNTUD=$(echo $JSON | jq -r .amountUD)
|
TXIAMOUNTUD=$(echo $JSON | jq -r .amountUD)
|
||||||
COMMENT=$(echo $JSON | jq -r .comment)
|
COMMENT=$(echo $JSON | jq -r .comment)
|
||||||
|
|
||||||
echo ">>> TODO CHECK TX HAPPENS LAST 24H (WHAT IS TXIDATE=$TXIDATE FORMAT ??)"
|
|
||||||
[[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] \
|
[[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] \
|
||||||
&& echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
|
&& echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
|
||||||
&& continue
|
&& continue
|
||||||
|
@ -132,18 +130,26 @@ while read LINE; do
|
||||||
## GET EMAILS FROM COMMENT
|
## GET EMAILS FROM COMMENT
|
||||||
TXIMAILS=($(echo "$COMMENT" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
|
TXIMAILS=($(echo "$COMMENT" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
|
||||||
|
|
||||||
|
echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %"
|
||||||
|
[[ $(echo "$TXIAMOUNT < 0" | bc) ]] \
|
||||||
|
&& echo "TX-OUT" \
|
||||||
|
&& echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate \
|
||||||
|
&& continue
|
||||||
|
|
||||||
## DIVIDE INCOMING AMOUNT TO SHARE
|
## DIVIDE INCOMING AMOUNT TO SHARE
|
||||||
echo "N=${#TXIMAILS[@]}"
|
echo "N=${#TXIMAILS[@]}"
|
||||||
N=${#TXIMAILS[@]}
|
N=${#TXIMAILS[@]}
|
||||||
SHARE=$(echo "scale=2; $TXIAMOUNT / $N" | bc)
|
SHAREE=$(echo "scale=2; $TXIAMOUNT / $N" | bc)
|
||||||
|
SHARE=$(makecoord ${SHAREE})
|
||||||
## SHARE is received AMOUT divided by numbers of EMAILS in comment
|
## SHARE is received AMOUT divided by numbers of EMAILS in comment
|
||||||
|
|
||||||
echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %"
|
|
||||||
|
|
||||||
# let's loop over TXIMAILS
|
# let's loop over TXIMAILS
|
||||||
for EMAIL in "${TXIMAILS[@]}"; do
|
for EMAIL in "${TXIMAILS[@]}"; do
|
||||||
|
|
||||||
[[ ${EMAIL} == $PLAYER ]] && echo "ME MYSELF" && continue
|
[[ ${EMAIL} == $PLAYER ]] \
|
||||||
|
&& echo "ME MYSELF" \
|
||||||
|
&& echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate \
|
||||||
|
&& continue
|
||||||
|
|
||||||
echo "EMAIL : ${EMAIL}"
|
echo "EMAIL : ${EMAIL}"
|
||||||
ASTROTW="" STAMP="" ASTROG1="" ASTROIPFS="" ASTROFEED="" # RESET VAR
|
ASTROTW="" STAMP="" ASTROG1="" ASTROIPFS="" ASTROFEED="" # RESET VAR
|
||||||
|
@ -183,7 +189,9 @@ while read LINE; do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## DONE STAMP IT
|
## DONE STAMP IT
|
||||||
[[ $STAMP == 0 ]] && echo "STAMP DONE" && echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate ## MEMORIZE LAST TXIDATE
|
[[ $STAMP == 0 ]] \
|
||||||
|
&& echo "STAMP DONE" \
|
||||||
|
&& echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate ## MEMORIZE LAST TXIDATE
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -42,75 +42,75 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
#####################################################
|
#####################################################
|
||||||
# CREATION DE LA CLEF DERIVEE "G1VOEU"
|
# CREATION DE LA CLEF DERIVEE "G1VOEU"
|
||||||
#####################################################
|
#####################################################
|
||||||
source ~/.zen/game/players/${PLAYER}/secret.june ## LE PEPPER DU PLAYER DEVIENT LE SALT DU G1VOEU
|
source ~/.zen/game/players/${PLAYER}/secret.june ## LE PEPPER DU PLAYER DEVIENT LE SALT DU G1VOEU
|
||||||
[[ ${PEPPER} ]] && echo "Using PLAYER PEPPER AS WISH SALT" && SECRET1=${PEPPER} ##
|
[[ ${PEPPER} ]] && echo "Using PLAYER PEPPER AS WISH SALT" && SECRET1=${PEPPER} ##
|
||||||
[[ ! ${SECRET1} ]] && SECRET1=$(${MY_PATH}/../tools/diceware.sh 3 | xargs)
|
[[ ! ${SECRET1} ]] && SECRET1=$(${MY_PATH}/../tools/diceware.sh 3 | xargs)
|
||||||
|
|
||||||
#~ echo "${SECRET1}"
|
#~ echo "${SECRET1}"
|
||||||
|
|
||||||
echo "## TITRE DU G1VOEU ? CapitalGluedWords please"
|
echo "## TITRE DU G1VOEU ? CapitalGluedWords please"
|
||||||
[[ ! ${TITRE} ]] && read TITRE
|
[[ ! ${TITRE} ]] && read TITRE
|
||||||
VoeuName=$(echo "${TITRE}" | sed -r 's/\<./\U&/g' | sed 's/ //g') # VoeuName EST LE TITRE DU VOEU : CapitalGluedWords + EMAIL
|
VoeuName=$(echo "${TITRE}" | sed -r 's/\<./\U&/g' | sed 's/ //g') # VoeuName EST LE TITRE DU VOEU : CapitalGluedWords + EMAIL
|
||||||
|
|
||||||
SECRET2="${VoeuName} ${PLAYER}" ## SECRET2 est "TitreDuVoeu PLAYER"
|
SECRET2="${VoeuName} ${PLAYER}" ## SECRET2 est "TitreDuVoeu PLAYER"
|
||||||
|
|
||||||
echo "${SECRET2}" && [[ ! ${SECRET2} ]] && echo "EMPTY SECRET2 - ERROR" && exit 1
|
echo "${SECRET2}" && [[ ! ${SECRET2} ]] && echo "EMPTY SECRET2 - ERROR" && exit 1
|
||||||
|
|
||||||
echo "## keygen PLAYER DERIVATE WISH KEY"
|
echo "## keygen PLAYER DERIVATE WISH KEY"
|
||||||
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/wish.dunikey "${SECRET1}" "${SECRET2}"
|
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/wish.dunikey "${SECRET1}" "${SECRET2}"
|
||||||
WISHG1PUB=$(cat ~/.zen/tmp/${MOATS}/wish.dunikey | grep "pub:" | cut -d ' ' -f 2)
|
WISHG1PUB=$(cat ~/.zen/tmp/${MOATS}/wish.dunikey | grep "pub:" | cut -d ' ' -f 2)
|
||||||
echo "WISHG1PUB (G1PUB) = ${WISHG1PUB}"
|
echo "WISHG1PUB (G1PUB) = ${WISHG1PUB}"
|
||||||
[[ ${WISHG1PUB} == "" ]] && echo "EMPTY WISHG1PUB G1PUB - ERROR" && exit 1
|
[[ ${WISHG1PUB} == "" ]] && echo "EMPTY WISHG1PUB G1PUB - ERROR" && exit 1
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
||||||
mv ~/.zen/tmp/${MOATS}/wish.dunikey ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey
|
mv ~/.zen/tmp/${MOATS}/wish.dunikey ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey
|
||||||
|
|
||||||
echo "# NOUVEAU VOEU"
|
echo "# NOUVEAU VOEU"
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey "${SECRET1}" "${SECRET2}"
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey "${SECRET1}" "${SECRET2}"
|
||||||
ipfs key import ${WISHG1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey
|
ipfs key import ${WISHG1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey
|
||||||
VOEUNS=$(ipfs key list -l | grep -w "${WISHG1PUB}" | cut -d ' ' -f 1 )
|
VOEUNS=$(ipfs key list -l | grep -w "${WISHG1PUB}" | cut -d ' ' -f 1 )
|
||||||
echo "/ipns/${VOEUNS}"
|
echo "/ipns/${VOEUNS}"
|
||||||
|
|
||||||
## NATOOLS ENCRYPT
|
## NATOOLS ENCRYPT
|
||||||
echo "# NATOOLS ENCODING qrtw.ipfskey "
|
echo "# NATOOLS ENCODING qrtw.ipfskey "
|
||||||
${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc
|
${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc
|
||||||
ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16)
|
ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16)
|
||||||
#~ echo $ENCODING
|
#~ echo $ENCODING
|
||||||
|
|
||||||
## TEST IPFS
|
## TEST IPFS
|
||||||
#~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json
|
#~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json
|
||||||
#~ [[ -s ~/.zen/tmp/${VOEUNS}.json ]] \
|
#~ [[ -s ~/.zen/tmp/${VOEUNS}.json ]] \
|
||||||
#~ && echo "HEY !!! UN CHANNEL EXISTE DEJA POUR CE VOEU ! ~/.zen/tmp/${VOEUNS}.json - EXIT -" \
|
#~ && echo "HEY !!! UN CHANNEL EXISTE DEJA POUR CE VOEU ! ~/.zen/tmp/${VOEUNS}.json - EXIT -" \
|
||||||
#~ && exit 1
|
#~ && exit 1
|
||||||
|
|
||||||
echo "# UPGRADING WORLD WHISHKEY DATABASE"
|
echo "# UPGRADING WORLD WHISHKEY DATABASE"
|
||||||
|
|
||||||
mkdir -p ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
mkdir -p ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
||||||
## A la fois Titre du tag et Pepper construction de clef
|
## A la fois Titre du tag et Pepper construction de clef
|
||||||
echo ${VoeuName} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.pepper
|
echo ${VoeuName} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.pepper
|
||||||
echo ${WISHG1PUB} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.wish
|
echo ${WISHG1PUB} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.wish
|
||||||
|
|
||||||
echo "# CREATION QR CODE"
|
echo "# CREATION QR CODE"
|
||||||
|
|
||||||
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2)
|
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2)
|
||||||
|
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png" "$LIBRA/ipns/${VOEUNS}"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png" "$LIBRA/ipns/${VOEUNS}"
|
||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
## MAKING SPECIAL amrzqr => G1Milgram TICKET
|
## MAKING SPECIAL amrzqr => G1Milgram TICKET
|
||||||
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${PLAYERG1PUB}" avec PASS=YYYYMM
|
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${PLAYERG1PUB}" avec PASS=YYYYMM
|
||||||
IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" "${G1PUB}" | tail -n 1)
|
IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" "${G1PUB}" | tail -n 1)
|
||||||
cp ~/.zen/tmp/${MOATS}/START.png ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
cp ~/.zen/tmp/${MOATS}/START.png ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
||||||
|
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS"
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "${G1PUB}"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "${G1PUB}"
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png" "${WISHG1PUB}:ZEN"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png" "${WISHG1PUB}:ZEN"
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.IPNS.png" "/ipns/${VOEUNS}"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.IPNS.png" "/ipns/${VOEUNS}"
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# PREMIER TYPE ~/.zen/tmp/player.png
|
# PREMIER TYPE ~/.zen/tmp/player.png
|
||||||
convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png -resize 300 ~/.zen/tmp/QRWISHLINK.png
|
convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png -resize 300 ~/.zen/tmp/QRWISHLINK.png
|
||||||
convert ${MY_PATH}/../images/logoastro.png -resize 220 ~/.zen/tmp/ASTROLOGO.png
|
convert ${MY_PATH}/../images/logoastro.png -resize 220 ~/.zen/tmp/ASTROLOGO.png
|
||||||
|
|
||||||
composite -compose Over -gravity NorthWest -geometry +350+10 ~/.zen/tmp/ASTROLOGO.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png
|
composite -compose Over -gravity NorthWest -geometry +350+10 ~/.zen/tmp/ASTROLOGO.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png
|
||||||
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png
|
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png
|
||||||
|
@ -120,9 +120,9 @@ convert -gravity northwest -pointsize 30 -fill black -draw "text 320,300 \"*****
|
||||||
convert -gravity northwest -pointsize 33 -fill black -draw "text 320,350 \"${VoeuName}\"" ~/.zen/tmp/salt.png ~/.zen/tmp/player.png
|
convert -gravity northwest -pointsize 33 -fill black -draw "text 320,350 \"${VoeuName}\"" ~/.zen/tmp/salt.png ~/.zen/tmp/player.png
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
# SECOND TYPE ~/.zen/tmp/voeu.png
|
# SECOND TYPE ~/.zen/tmp/voeu.png
|
||||||
convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png -resize 300 ~/.zen/tmp/G1WISH.png
|
convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png -resize 300 ~/.zen/tmp/G1WISH.png
|
||||||
convert ${MY_PATH}/../images/logojeu.png -resize 260 ~/.zen/tmp/MIZLOGO.png
|
convert ${MY_PATH}/../images/logojeu.png -resize 260 ~/.zen/tmp/MIZLOGO.png
|
||||||
|
|
||||||
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/G1WISH.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png
|
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/G1WISH.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png
|
||||||
composite -compose Over -gravity NorthWest -geometry +300+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png
|
composite -compose Over -gravity NorthWest -geometry +300+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png
|
||||||
|
@ -131,136 +131,134 @@ composite -compose Over -gravity NorthWest -geometry +320+280 ~/.zen/tmp/MIZLOGO
|
||||||
convert -gravity northwest -pointsize 28 -fill black -draw "text 32,350 \"Ğ1 VOEU\"" ~/.zen/tmp/two.png ~/.zen/tmp/pep.png
|
convert -gravity northwest -pointsize 28 -fill black -draw "text 32,350 \"Ğ1 VOEU\"" ~/.zen/tmp/two.png ~/.zen/tmp/pep.png
|
||||||
convert -gravity northwest -pointsize 50 -fill black -draw "text 30,300 \"${VoeuName}\"" ~/.zen/tmp/pep.png ~/.zen/tmp/voeu.png
|
convert -gravity northwest -pointsize 50 -fill black -draw "text 30,300 \"${VoeuName}\"" ~/.zen/tmp/pep.png ~/.zen/tmp/voeu.png
|
||||||
|
|
||||||
# IMAGE DANS IPFS
|
# IMAGE DANS IPFS
|
||||||
IVOEUPLAY=$(ipfs add -Hq ~/.zen/tmp/player.png | tail -n 1)
|
IVOEUPLAY=$(ipfs add -Hq ~/.zen/tmp/player.png | tail -n 1)
|
||||||
IVOEU=$(ipfs add -Hq ~/.zen/tmp/voeu.png | tail -n 1)
|
IVOEU=$(ipfs add -Hq ~/.zen/tmp/voeu.png | tail -n 1)
|
||||||
|
|
||||||
### G1VOEU LIGHTBEAM :: ${PLAYER}_${VoeuName} :: /ipns/${VOEUNS}
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_${VoeuName}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key-'${VoeuName}'","text":"'${VOEUNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-key-'${VoeuName}'","text":"'${WISHG1PUB}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-g1.json
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-'${VoeuName}'","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json
|
|
||||||
|
|
||||||
|
|
||||||
|
### G1VOEU LIGHTBEAM :: ${PLAYER}_${VoeuName} :: /ipns/${VOEUNS}
|
||||||
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_${VoeuName}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
||||||
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key-'${VoeuName}'","text":"'${VOEUNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
||||||
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-key-'${VoeuName}'","text":"'${WISHG1PUB}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-g1.json
|
||||||
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-'${VoeuName}'","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json
|
||||||
|
|
||||||
# TEXT="<a target='_blank' href='"/ipns/${VOEUNS}"'><img src='"/ipfs/${IVOEUPLAY}"'></a><br><br><a target='_blank' href='"/ipns/${VOEUNS}"'>"${VoeuName}"</a>"
|
# TEXT="<a target='_blank' href='"/ipns/${VOEUNS}"'><img src='"/ipfs/${IVOEUPLAY}"'></a><br><br><a target='_blank' href='"/ipns/${VOEUNS}"'>"${VoeuName}"</a>"
|
||||||
#:[tag[G1CopierYoutube]] [tag[pdf]]
|
#:[tag[G1CopierYoutube]] [tag[pdf]]
|
||||||
# Contains QRCode linked to G1VoeuTW and BUTTON listing G1Voeux
|
# Contains QRCode linked to G1VoeuTW and BUTTON listing G1Voeux
|
||||||
# <img width='600' src='"/ipfs/${IMAGIC}"'><br>
|
# <img width='600' src='"/ipfs/${IMAGIC}"'><br>
|
||||||
TEXT="<a target='_blank' href='#:[tag[G1"${VoeuName}"]]' ><img src='"/ipfs/${IVOEUPLAY}"'></a><br>
|
TEXT="<a target='_blank' href='#:[tag[G1"${VoeuName}"]]' ><img src='"/ipfs/${IVOEUPLAY}"'></a><br>\n
|
||||||
<a target='_blank' href='"/ipns/${VOEUNS}"'>TW G1Voeu "${PLAYER}"</a><br><br>
|
<a target='_blank' href='"/ipns/${VOEUNS}"'>TW G1Voeu "${PLAYER}"</a><br><br>\n\n
|
||||||
<\$button class='tc-tiddlylink'>
|
<\$button class='tc-tiddlylink'>\n
|
||||||
<\$list filter='[tag[G1"${VoeuName}"]]'>
|
<\$list filter='[tag[G1"${VoeuName}"]]'>\n
|
||||||
<\$action-navigate \$to=<<currentTiddler>> \$scroll=no/>
|
<\$action-navigate \$to=<<currentTiddler>> \$scroll=no/>\n
|
||||||
</\$list>
|
</\$list>\n
|
||||||
Afficher tous vos G1"${VoeuName}"
|
SHOW G1"${VoeuName}"\n
|
||||||
</\$button>"
|
</\$button>"
|
||||||
|
|
||||||
# NEW IVEU TIDDLER
|
# NEW IVEU TIDDLER
|
||||||
echo "## Creation json tiddler : G1${VoeuName} /ipfs/${IVOEU}"
|
echo "## Creation json tiddler : G1${VoeuName} /ipfs/${IVOEU}"
|
||||||
echo '[
|
echo '[
|
||||||
{
|
{
|
||||||
"created": "'${MOATS}'",
|
"created": "'${MOATS}'",
|
||||||
"title": "'${VoeuName}'",
|
"title": "'${VoeuName}'",
|
||||||
"type": "'text/vnd.tiddlywiki'",
|
"type": "'text/vnd.tiddlywiki'",
|
||||||
"astronautens": "'/ipns/${ASTRONAUTENS}'",
|
"astronautens": "'/ipns/${ASTRONAUTENS}'",
|
||||||
"wishns": "'/ipns/${VOEUNS}'",
|
"wishns": "'/ipns/${VOEUNS}'",
|
||||||
"qrcode": "'/ipfs/${IVOEUPLAY}'",
|
"qrcode": "'/ipfs/${IVOEUPLAY}'",
|
||||||
"decode": "'/ipfs/${IVOEU}'",
|
"decode": "'/ipfs/${IVOEU}'",
|
||||||
"wish": "'${WISHG1PUB}'",
|
"wish": "'${WISHG1PUB}'",
|
||||||
"g1pub": "'${G1PUB}'",
|
"g1pub": "'${G1PUB}'",
|
||||||
"text": "'${TEXT}'",
|
"text": "'${TEXT}'",
|
||||||
"tags": "'G1Voeu G1${VoeuName} ${PLAYER}'",
|
"tags": "'G1Voeu G1${VoeuName} ${PLAYER}'",
|
||||||
"asksalt": "'${HPass}'",
|
"asksalt": "'${HPass}'",
|
||||||
"junesec" : "'${ENCODING}'"
|
"junesec" : "'${ENCODING}'"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
' > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json
|
' > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rm -f ~/.zen/tmp/newindex.html
|
rm -f ~/.zen/tmp/newindex.html
|
||||||
|
|
||||||
echo "Nouveau Voeu ${VoeuName} dans MOA $PSEUDO : http://127.0.0.1:8080/ipns/$ASTRONAUTENS"
|
echo "Nouveau Voeu ${VoeuName} dans MOA $PSEUDO : http://127.0.0.1:8080/ipns/$ASTRONAUTENS"
|
||||||
tiddlywiki --load $INDEX \
|
tiddlywiki --load $INDEX \
|
||||||
--deletetiddlers '[tag[voeu]]' \
|
--deletetiddlers '[tag[voeu]]' \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-g1.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/lightbeam-g1.json "application/json" \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \
|
||||||
--import ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json "application/json" \
|
--import ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json "application/json" \
|
||||||
--output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain"
|
--output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain"
|
||||||
|
|
||||||
echo "PLAYER TW Update..."
|
echo "PLAYER TW Update..."
|
||||||
if [[ -s ~/.zen/tmp/newindex.html ]]; then
|
if [[ -s ~/.zen/tmp/newindex.html ]]; then
|
||||||
echo "___ Mise à jour $INDEX"
|
echo "___ Mise à jour $INDEX"
|
||||||
cp -f ~/.zen/tmp/newindex.html $INDEX
|
cp -f ~/.zen/tmp/newindex.html $INDEX
|
||||||
else
|
else
|
||||||
echo "ERROR INTO ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json"
|
echo "ERROR INTO ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# PRINTING
|
# PRINTING
|
||||||
LP=$(ls /dev/usb/lp* | head -n1)
|
LP=$(ls /dev/usb/lp* | head -n1)
|
||||||
if [[ ! $LP ]]; then
|
if [[ ! $LP ]]; then
|
||||||
echo "NO PRINTER FOUND - Plug a Brother QL700 or Add your printer"
|
echo "NO PRINTER FOUND - Plug a Brother QL700 or Add your printer"
|
||||||
else
|
else
|
||||||
echo "IMPRESSION VOEU"
|
echo "IMPRESSION VOEU"
|
||||||
brother_ql_create --model QL-700 --label-size 62 ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/result.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
brother_ql_create --model QL-700 --label-size 62 ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/result.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
||||||
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
||||||
brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/player.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/player.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
||||||
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
||||||
brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/voeu.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/voeu.png > ~/.zen/tmp/toprint.bin 2>/dev/null
|
||||||
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# COPY QR CODE TO PLAYER ZONE
|
# COPY QR CODE TO PLAYER ZONE
|
||||||
cp ~/.zen/tmp/player.png ~/.zen/tmp/voeu.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
cp ~/.zen/tmp/player.png ~/.zen/tmp/voeu.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
||||||
echo "${SECRET1}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.salt
|
echo "${SECRET1}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.salt
|
||||||
echo "${VoeuName}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.title
|
echo "${VoeuName}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.title
|
||||||
|
|
||||||
echo "$LIBRA/ipns/${VOEUNS}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link
|
echo "$LIBRA/ipns/${VOEUNS}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link
|
||||||
cp ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
cp ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
||||||
cp ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/*.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
cp ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/*.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/
|
||||||
|
|
||||||
# PUBLISHING
|
# PUBLISHING
|
||||||
echo "ipfs name publish --key=${WISHG1PUB}"
|
echo "ipfs name publish --key=${WISHG1PUB}"
|
||||||
banner="## ${PLAYER} G1WISH READY :: G1${VoeuName}
|
banner="## ${PLAYER} G1WISH READY :: G1${VoeuName}
|
||||||
<img src=/ipfs/$IMAGIC>
|
<img src=/ipfs/$IMAGIC>
|
||||||
G1Voeu Astronaute (TW) : $LIBRA/ipns/$ASTRONAUTENS
|
G1Voeu Astronaute (TW) : $LIBRA/ipns/$ASTRONAUTENS
|
||||||
${VoeuName} FLUX Ŋ1
|
${VoeuName} FLUX Ŋ1
|
||||||
G1${VoeuName} : $LIBRA/ipns/${VOEUNS}
|
G1${VoeuName} : $LIBRA/ipns/${VOEUNS}
|
||||||
WISH G1PUB : ${WISHG1PUB}"
|
WISH G1PUB : ${WISHG1PUB}"
|
||||||
|
|
||||||
IPUSH=$(echo "$banner" | ipfs add -q | tail -n 1)
|
IPUSH=$(echo "$banner" | ipfs add -q | tail -n 1)
|
||||||
ipfs name publish --key=${WISHG1PUB} /ipfs/$IPUSH 2>/dev/null
|
ipfs name publish --key=${WISHG1PUB} /ipfs/$IPUSH 2>/dev/null
|
||||||
|
|
||||||
echo $IPUSH > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.chain.${MOATS}
|
echo $IPUSH > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.chain.${MOATS}
|
||||||
|
|
||||||
echo $banner > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner
|
echo $banner > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner
|
||||||
cat ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner
|
cat ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner
|
||||||
|
|
||||||
#~ echo "## TO RECEIVE G1RONDS Creating Cesium+ Profil #### timeout long ... patience ...."
|
#~ echo "## TO RECEIVE G1RONDS Creating Cesium+ Profil #### timeout long ... patience ...."
|
||||||
#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey set --name "G1Voeu ${VoeuName}" --avatar "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/result_qrcode.png" --site "$LIBRA/ipns/${VOEUNS}" #CESIUM+
|
#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey set --name "G1Voeu ${VoeuName}" --avatar "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/result_qrcode.png" --site "$LIBRA/ipns/${VOEUNS}" #CESIUM+
|
||||||
#~ [[ ! $? == 0 ]] && echo "G1VOEU CESIUM WALLET PROFILE CREATION FAILED !!!!"
|
#~ [[ ! $? == 0 ]] && echo "G1VOEU CESIUM WALLET PROFILE CREATION FAILED !!!!"
|
||||||
|
|
||||||
echo "************************************************************"
|
echo "************************************************************"
|
||||||
#~ echo "COULD LIMIT ON JUNE pour le Voeu ${VoeuName}"
|
#~ echo "COULD LIMIT ON JUNE pour le Voeu ${VoeuName}"
|
||||||
#~ echo ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c \'"${VOEUNS} G1Voeu ${VoeuName}"\' -m
|
#~ echo ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c \'"${VOEUNS} G1Voeu ${VoeuName}"\' -m
|
||||||
#~ echo "************************************************************"
|
#~ echo "************************************************************"
|
||||||
#~ echo "************************************************************"
|
#~ echo "************************************************************"
|
||||||
|
|
||||||
#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c "$VOEUXNS G1Voeu ${VoeuName}" -m
|
#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c "$VOEUXNS G1Voeu ${VoeuName}" -m
|
||||||
#~ [[ ! $? == 0 ]] \
|
#~ [[ ! $? == 0 ]] \
|
||||||
#~ && echo "SOOOOOOOOOOOORRRRRRRY GUY. YOU CANNOT PAY A G1 A NEW WISH - THIS IS FREE TO CHANGE -"
|
#~ && echo "SOOOOOOOOOOOORRRRRRRY GUY. YOU CANNOT PAY A G1 A NEW WISH - THIS IS FREE TO CHANGE -"
|
||||||
#~ && rm -Rf ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB} \
|
#~ && rm -Rf ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB} \
|
||||||
#~ && rm -Rf ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ \
|
#~ && rm -Rf ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ \
|
||||||
#~ && ipfs key rm ${WISHG1PUB} \
|
#~ && ipfs key rm ${WISHG1PUB} \
|
||||||
#~ && tiddlywiki --load ${INDEX} \
|
#~ && tiddlywiki --load ${INDEX} \
|
||||||
#~ --deletetiddlers '${VoeuName}' \
|
#~ --deletetiddlers '${VoeuName}' \
|
||||||
#~ --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" \
|
#~ --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" \
|
||||||
#~ && cp -f ~/.zen/tmp/newindex.html $INDEX \
|
#~ && cp -f ~/.zen/tmp/newindex.html $INDEX \
|
||||||
#~ && echo "G1${VoeuName} FLUX REMOVED"
|
#~ && echo "G1${VoeuName} FLUX REMOVED"
|
||||||
|
|
||||||
echo "************************************************************"
|
echo "************************************************************"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -14,6 +14,11 @@ exec 2>&1 >> ~/.zen/tmp/_12345.log
|
||||||
|
|
||||||
echo "=========================="
|
echo "=========================="
|
||||||
echo "(◕‿◕ ) ${ME} (◕‿◕ ) "
|
echo "(◕‿◕ ) ${ME} (◕‿◕ ) "
|
||||||
|
#~ ## CHECK IF ALREADY MErunning
|
||||||
|
countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
|
||||||
|
[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
|
||||||
|
|
||||||
|
echo "(◕‿◕ ) ${ME} starting UPlanet Key Scan _______________________________"
|
||||||
|
|
||||||
## LOCAL
|
## LOCAL
|
||||||
LWKEYS=($(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf ))
|
LWKEYS=($(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf ))
|
||||||
|
@ -31,26 +36,19 @@ echo ${#SKEYS[@]} " swarm SECTORS"
|
||||||
RKEYS=($(cat ~/.zen/tmp/swarm/12D*/UPLANET/REGIONS/_*_*/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf ))
|
RKEYS=($(cat ~/.zen/tmp/swarm/12D*/UPLANET/REGIONS/_*_*/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf ))
|
||||||
echo ${#RKEYS[@]} " swarm REGIONS"
|
echo ${#RKEYS[@]} " swarm REGIONS"
|
||||||
|
|
||||||
## CHECK FOR ANY ALREADY MErunning
|
|
||||||
MErunning=$(ps axf --sort=+utime | grep -w ${ME} | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
|
||||||
[[ $MErunning ]] && echo "${ME} MErunning for too long..." && kill -9 $MErunning
|
|
||||||
|
|
||||||
echo "(◕‿◕ ) ${ME} starting UPlanet Terraformation _______________________________"
|
|
||||||
|
|
||||||
## COMBINE & SHUFFLE KEYS
|
## COMBINE & SHUFFLE KEYS
|
||||||
combined=("${LWKEYS[@]}" "${LSKEYS[@]}" "${LRKEYS[@]}" "${WKEYS[@]}" "${SKEYS[@]}" "${RKEYS[@]}")
|
combined=("${LWKEYS[@]}" "${LSKEYS[@]}" "${LRKEYS[@]}" "${WKEYS[@]}" "${SKEYS[@]}" "${RKEYS[@]}")
|
||||||
UKEYS=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u))
|
UKEYS=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u))
|
||||||
echo ${#UKEYS[@]} " JOBS..."
|
echo "SYNC ${#UKEYS[@]} GEOKEYS..."
|
||||||
|
|
||||||
## STORAGE FOR IPFS GET UplanetKeyS
|
## STORAGE FOR IPFS GET UplanetKeyS
|
||||||
mkdir -p ~/.zen/tmp/flashmem
|
mkdir -p ~/.zen/tmp/flashmem
|
||||||
|
|
||||||
## Remove flashmem/UplanetKey older than 3 hours
|
## Remove flashmem/UplanetKey older than 3 hours
|
||||||
find ~/.zen/tmp/flashmem -mmin +180 -exec rm -r {} +
|
find ~/.zen/tmp/flashmem -mmin +180 -exec rm -rf {} +
|
||||||
|
|
||||||
floop=0
|
floop=0
|
||||||
medo=0
|
medo=0
|
||||||
|
|
||||||
for key in ${UKEYS[@]}; do
|
for key in ${UKEYS[@]}; do
|
||||||
|
|
||||||
[[ -d ~/.zen/tmp/flashmem/$key ]] \
|
[[ -d ~/.zen/tmp/flashmem/$key ]] \
|
||||||
|
@ -69,7 +67,33 @@ for key in ${UKEYS[@]}; do
|
||||||
|
|
||||||
done
|
done
|
||||||
echo "=========================="
|
echo "=========================="
|
||||||
echo "(◕‿◕ ) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#UKEYS[@]} JOBS"
|
echo "(◕‿◕ ) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#UKEYS[@]} GEOKEYS"
|
||||||
|
echo "=========================="
|
||||||
|
|
||||||
|
## Search for TW /ipfs/ and refresh
|
||||||
|
TWS=($(cat ~/.zen/tmp/flashmem/*/TWz/*/_index.html | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf))
|
||||||
|
echo "SYNC ${#TWS[@]} TWs..."
|
||||||
|
floop=0
|
||||||
|
medo=0
|
||||||
|
for tw in ${TWS[@]}; do
|
||||||
|
|
||||||
|
[[ -d ~/.zen/tmp/flashmem/tw/$tw ]] \
|
||||||
|
&& echo "$key already copied" && medo=$((medo +1)) && continue
|
||||||
|
|
||||||
|
floop=$((floop +1))
|
||||||
|
mkdir -p ~/.zen/tmp/flashmem/tw/$tw
|
||||||
|
|
||||||
|
ipfs --timeout 180s get -o ~/.zen/tmp/flashmem/tw/$tw/index.html /ipns/$tw
|
||||||
|
[[ $? == 0 ]] \
|
||||||
|
&& medo=$((medo +1)) && floop=$((floop -1)) \
|
||||||
|
|| rm -Rf ~/.zen/tmp/flashmem/tw/$tw
|
||||||
|
|
||||||
|
[ $floop -gt 33 ] && break
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "=========================="
|
||||||
|
echo "(✜‿‿✜) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#TWS[@]} TWS"
|
||||||
echo "=========================="
|
echo "=========================="
|
||||||
|
|
||||||
exit 0
|
exit 0
|
|
@ -73,7 +73,7 @@ if [[ -d ~/.zen/tmp/${IPFSNODEID} ]]; then
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## CLEANING SWARM 3 DAYS OLD
|
echo "## CLEANING SWARM 3 DAYS OLD"
|
||||||
find ~/.zen/tmp/swarm/ -mtime +3 -type d -exec rm -Rf '{}' \;
|
find ~/.zen/tmp/swarm/ -mtime +3 -type d -exec rm -Rf '{}' \;
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -18,12 +18,13 @@ PLAYERONE="$1"
|
||||||
[[ ! ${PLAYERONE} ]] && PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
[[ ! ${PLAYERONE} ]] && PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
||||||
|
|
||||||
echo "FOUND : ${PLAYERONE[@]}"
|
echo "FOUND : ${PLAYERONE[@]}"
|
||||||
|
CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev)
|
||||||
|
|
||||||
echo "RENEWING UPLANET NODE CACHE
|
echo "RENEWING LOCAL UPLANET REPOSITORY (ADMIN=${CURRENT})
|
||||||
~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??"
|
~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??"
|
||||||
rm -Rf ~/.zen/tmp/${IPFSNODEID}/UPLANET
|
rm -Rf ~/.zen/tmp/${IPFSNODEID}/UPLANET
|
||||||
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET
|
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET
|
||||||
echo "CLEANING TW NODE CACHE ~/.zen/tmp/${IPFSNODEID}/TW/"
|
echo "CLEANING IPFSNODEID TW CACHE ~/.zen/tmp/${IPFSNODEID}/TW/"
|
||||||
rm -Rf ~/.zen/tmp/${IPFSNODEID}/TW/
|
rm -Rf ~/.zen/tmp/${IPFSNODEID}/TW/
|
||||||
|
|
||||||
## RUNING FOR ALL LOCAL PLAYERS
|
## RUNING FOR ALL LOCAL PLAYERS
|
||||||
|
@ -31,12 +32,15 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
[[ ! -d ~/.zen/game/players/${PLAYER:-undefined} ]] && echo "BAD ${PLAYERONE}" && continue
|
[[ ! -d ~/.zen/game/players/${PLAYER:-undefined} ]] && echo "BAD ${PLAYERONE}" && continue
|
||||||
[[ ! $(echo "${PLAYER}" | grep '@') ]] && continue
|
[[ ! $(echo "${PLAYER}" | grep '@') ]] && continue
|
||||||
|
|
||||||
|
start=`date +%s`
|
||||||
# CLEAN LOST ACCOUNT
|
# CLEAN LOST ACCOUNT
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] \
|
[[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] \
|
||||||
&& rm -Rf ~/.zen/game/players/${PLAYER} \
|
&& rm -Rf ~/.zen/game/players/${PLAYER} \
|
||||||
&& echo "${PLAYER} WAS BADLY PLUGGED" \
|
&& echo "WARNING - ERASE ${PLAYER} - BADLY PLUGGED" \
|
||||||
&& continue
|
&& continue
|
||||||
|
|
||||||
|
YOUSER=$($MY_PATH/../tools/clyuseryomail.sh "${PLAYER}")
|
||||||
|
|
||||||
### UPGRADE PLAYER for myos IPFS API ### DOUBLON WITH VISA.new (TO REMOVE)
|
### UPGRADE PLAYER for myos IPFS API ### DOUBLON WITH VISA.new (TO REMOVE)
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure
|
mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure
|
||||||
echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api
|
echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api
|
||||||
|
@ -44,30 +48,30 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
|
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}
|
mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
|
echo "############################################ ~/.zen/tmp/${MOATS}"
|
||||||
echo "##################################################################"
|
echo "##################################################################"
|
||||||
echo "##################################################################"
|
echo ">>>>> PLAYER : ${PLAYER} >>>>>>>>>>>>> REFRESHING TW "
|
||||||
echo ">>>>> PLAYER : ${PLAYER} >>>>>>>>>>>>> REFRESHING TW STATION"
|
echo "################################################ $(date)"
|
||||||
echo "##################################################################"
|
|
||||||
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
|
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
|
||||||
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
|
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
|
||||||
ASTRONS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null)
|
ASTRONS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null)
|
||||||
# Get PLAYER wallet amount
|
# Get PLAYER wallet amount
|
||||||
$MY_PATH/../tools/COINScheck.sh $G1PUB > ~/.zen/tmp/g1reveal
|
$MY_PATH/../tools/COINScheck.sh ${G1PUB} > ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck
|
||||||
cat ~/.zen/tmp/g1reveal ###DEBUG MODE
|
cat ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck ###DEBUG MODE
|
||||||
COINS=$(cat ~/.zen/tmp/g1reveal | tail -n 1)
|
COINS=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck | tail -n 1)
|
||||||
ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1)
|
ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1)
|
||||||
echo "+++ WALLET BALANCE _ $COINS (G1) _ / $ZEN ZEN /"
|
echo "+++ WALLET BALANCE _ $COINS (G1) _ / $ZEN ZEN /"
|
||||||
|
|
||||||
#~ ## ZENCARD ARE ACTIVATED WITH 1 G1 + 10 ZEN (= 1 €OC) ?
|
#~ ## ZENCARD ARE ACTIVATED WITH 1 G1 + 10 ZEN (= 10 €/OC) ?
|
||||||
echo "##>>>>>>>>>>>>>>>> REFRESH ASTRONAUTE TW"
|
echo "## >>>>>>>>>>>>>>>> REFRESH ASTRONAUTE TW"
|
||||||
|
|
||||||
## REFRESH ASTRONAUTE TW
|
## REFRESH ASTRONAUTE TW
|
||||||
ASTRONAUTENS=$(ipfs key list -l | grep -w ${G1PUB} | cut -d ' ' -f1)
|
ASTRONAUTENS=$(ipfs key list -l | grep -w ${G1PUB} | cut -d ' ' -f1)
|
||||||
|
|
||||||
|
############### CANNOT FIND PLAYER KEY ###########
|
||||||
if [[ ! ${ASTRONAUTENS} ]]; then
|
if [[ ! ${ASTRONAUTENS} ]]; then
|
||||||
|
|
||||||
echo "${PLAYER} TW IS DISCONNECTED... RECREATING IPNS KEYS"
|
echo "${PLAYER} TW IS DISCONNECTED... RECREATING IPNS KEYS"
|
||||||
|
## TODO : EXTRACT & DECRYPT secret.june FROM TW
|
||||||
ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player
|
ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player
|
||||||
ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player
|
ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player
|
||||||
|
|
||||||
|
@ -89,234 +93,423 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
|
|
||||||
################### GET LATEST TW
|
################### GET LATEST TW
|
||||||
echo "GETTING TW..."
|
echo "GETTING TW..."
|
||||||
|
####################################################################################################
|
||||||
ipfs --timeout 480s get -o ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html /ipns/${ASTRONAUTENS}
|
ipfs --timeout 480s get -o ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html /ipns/${ASTRONAUTENS}
|
||||||
|
####################################################################################################
|
||||||
## PLAYER TW IS ONLINE ?
|
## PLAYER TW IS ONLINE ?
|
||||||
if [ ! -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ]; then
|
if [ ! -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ]; then
|
||||||
|
|
||||||
NOWCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain)
|
NOWCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain)
|
||||||
LASTCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.* | tail -n 1)
|
LASTCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.* | tail -n 1)
|
||||||
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<br>"
|
try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3
|
||||||
echo "<a href='$myIPFS/ipns/${ASTRONAUTENS}'>TW REFRESH FAILED</a>"
|
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
echo ">> %%% WARNING %%%"
|
echo "$myIPFS/ipns/${ASTRONAUTENS}'>TW REFRESH FAILED"
|
||||||
|
echo ">> %%% WARNING TRY LEFT : $try %%%"
|
||||||
echo "------------------------------------------------"
|
echo "------------------------------------------------"
|
||||||
echo " * <a href='${myIPFS}/ipfs/${LASTCHAIN}'>LAST</a>"
|
echo " * <a href='${myIPFS}/ipfs/${LASTCHAIN}'>LAST</a>"
|
||||||
echo " *<a href='${myIPFS}/ipfs/${NOWCHAIN}'>NOW</a>"
|
echo " * <a href='${myIPFS}/ipfs/${NOWCHAIN}'>NOW</a>"
|
||||||
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
## SEND AN EMAIL ALERT TO PLAYER
|
|
||||||
echo "<html><body><a href='$myIPFS/ipns/${ASTRONAUTENS}'>TW REFRESH FAILED</a>" > ~/.zen/tmp/result
|
|
||||||
echo "<br>------------------------------------------------" >> ~/.zen/tmp/result
|
|
||||||
echo "" >> ~/.zen/tmp/result
|
|
||||||
echo "<br><a href='${myIPFS}/ipfs/${LASTCHAIN}'>ANCIENT</a>" >> ~/.zen/tmp/result
|
|
||||||
echo "<br><a href='${myIPFS}/ipfs/${NOWCHAIN}'>NEW</a>" >> ~/.zen/tmp/result
|
|
||||||
echo "" >> ~/.zen/tmp/result
|
|
||||||
echo "<br> %%% WARNING %%%" >> ~/.zen/tmp/result
|
|
||||||
echo "<br>------------------------------------------------" >> ~/.zen/tmp/result
|
|
||||||
echo "<br>PLEASE REPAIR BY SAVING ONLINE</body></html>" >> ~/.zen/tmp/result
|
|
||||||
echo "OR RUNNING CLI COMMAND : ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result
|
|
||||||
|
|
||||||
try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3
|
## SEND AN EMAIL ALERT TO PLAYER
|
||||||
|
echo "<html><head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Courier New', monospace;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
</style></head><body><a href='$myIPFS/ipns/${ASTRONAUTENS}'>TW LOADING TIMEOUT</a>" > ~/.zen/tmp/result
|
||||||
|
echo "<br>------------------------------------------------" >> ~/.zen/tmp/result
|
||||||
|
echo "<br>" >> ~/.zen/tmp/result
|
||||||
|
echo "<br><a href='${myIPFS}/ipfs/${LASTCHAIN}'>TW[-1]</a>: /ipfs/${LASTCHAIN}" >> ~/.zen/tmp/result
|
||||||
|
echo "<br><a href='${myIPFS}/ipfs/${NOWCHAIN}'>TW[0]</a>: /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result
|
||||||
|
echo "<br>" >> ~/.zen/tmp/result
|
||||||
|
echo "<br> %%% WARNING %%% $try TRY LEFT %%%" >> ~/.zen/tmp/result
|
||||||
|
echo "<br>------------------------------------------------" >> ~/.zen/tmp/result
|
||||||
|
echo "<br>ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result
|
||||||
|
echo "</body></html>" >> ~/.zen/tmp/result
|
||||||
|
|
||||||
|
|
||||||
[[ $try == 0 ]] \
|
[[ $try == 0 ]] \
|
||||||
&& echo "PLAYER ${PLAYER} UNPLUG" \
|
&& echo "PLAYER ${PLAYER} UNPLUG" \
|
||||||
&& ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \
|
&& ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} "ALL" \
|
||||||
&& continue
|
&& continue
|
||||||
|
|
||||||
try=$((try-1))
|
try=$((try-1))
|
||||||
echo "$try" > ~/.zen/game/players/${PLAYER}/ipfs/moa/.try
|
echo "$try" > ~/.zen/game/players/${PLAYER}/ipfs/moa/.try
|
||||||
echo " %%% WARNING %%% ${PLAYER} STATION UNPLUG IN $try DAY(S)." >> ~/.zen/tmp/result
|
|
||||||
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "UNPLUG WARNING"
|
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "TW LOADING TIMEOUT"
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
else
|
|
||||||
## FOUND TW
|
|
||||||
#############################################################
|
|
||||||
## CHECK WHO IS ACTUAL OFFICIAL GATEWAY
|
|
||||||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
|
||||||
--output ~/.zen/tmp/${MOATS} \
|
|
||||||
--render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' ## MadeInZion Tiddler
|
|
||||||
|
|
||||||
[[ ! -s ~/.zen/tmp/${MOATS}/MadeInZion.json ]] && echo "${PLAYER} MadeInZion : BAD TW (☓‿‿☓) " && continue
|
|
||||||
|
|
||||||
player=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].player)
|
|
||||||
|
|
||||||
[[ ${player} != ${PLAYER} ]] \
|
|
||||||
&& echo "> BAD PLAYER=$player in TW" \
|
|
||||||
&& continue \
|
|
||||||
|| echo "${PLAYER} OFFICIAL TW - (⌐■_■) -"
|
|
||||||
|
|
||||||
## GET "Astroport" TIDDLER
|
|
||||||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
|
||||||
--output ~/.zen/tmp/${MOATS} \
|
|
||||||
--render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler
|
|
||||||
BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate)
|
|
||||||
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## Raccorded G1Station IPNS address
|
|
||||||
CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part
|
|
||||||
[[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \
|
|
||||||
&& CURCHAIN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # AVOID EMPTY
|
|
||||||
|
|
||||||
echo "CURCHAIN=${CURCHAIN}"
|
|
||||||
IPNSTAIL=$(echo ${ASTROPORT} | rev | cut -f 1 -d '/' | rev) # Remove "/ipns/" part
|
|
||||||
echo "TW ASTROPORT GATEWAY : ${ASTROPORT}"
|
|
||||||
|
|
||||||
######################################
|
|
||||||
#### UPLANET GEO COORD EXTRACTION
|
|
||||||
## GET "GPS" TIDDLER - 0.00 0.00 (if empty: null)
|
|
||||||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
|
||||||
--output ~/.zen/tmp/${MOATS} \
|
|
||||||
--render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler
|
|
||||||
UMAPNS=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap)
|
|
||||||
[[ $UMAPNS == "null" || $UMAPNS == "" ]] && UMAPNS="/ipns/k51qzi5uqu5djg1gqzujq5p60w25mi235gdg0lgkk5qztkfrpi5c22oolrriyu"
|
|
||||||
LAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
|
||||||
[[ $LAT == "null" || $LAT == "" ]] && LAT="0.00"
|
|
||||||
LON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
|
||||||
[[ $LON == "null" || $LON == "" ]] && LON="0.00"
|
|
||||||
|
|
||||||
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${UMAPNS}"
|
|
||||||
|
|
||||||
## UMAP TODATENS ################
|
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/todate.ipfskey "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
|
||||||
ipfs key rm "_todate" 2>/dev/null
|
|
||||||
TODATENS=$(ipfs key import "_todate" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/todate.ipfskey)
|
|
||||||
ipfs key rm "_todate" 2>/dev/null
|
|
||||||
|
|
||||||
echo "GPS UMAP LINK UPDATE
|
|
||||||
${YESTERDATE} : ${myIPFS}${UMAPNS}
|
|
||||||
${TODATE} : ${myIPFS}/ipns/${TODATENS}"
|
|
||||||
## UPDATE TW GPS Tiddler #############
|
|
||||||
sed -i "s~${UMAPNS}~/ipns/${TODATENS}~g" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html
|
|
||||||
|
|
||||||
## STORE IN PLAYER CACHE
|
|
||||||
echo "_${LAT}_${LON}" > ~/.zen/game/players/${PLAYER}/.umap
|
|
||||||
cp ~/.zen/tmp/${MOATS}/GPS.json ~/.zen/game/players/${PLAYER}/
|
|
||||||
|
|
||||||
########### ASTROPORT is not IPFSNODEID => EJECT TW
|
|
||||||
## MOVED PLAYER (KEY IS KEPT ON LAST CONNECTED ASTROPORT)
|
|
||||||
## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
## TODO UNPLUG PLAYER
|
|
||||||
## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then
|
|
||||||
echo "> I AM ${IPFSNODEID} : PLAYER MOVED TO ${IPNSTAIL} : EJECTION "
|
|
||||||
echo "UNPLUG PLAYER"
|
|
||||||
${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ONE"
|
|
||||||
echo ">>>> ASTRONAUT ${PLAYER} TW CAPSULE EJECTION TERMINATED"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
## GWIP == myIP or TUBE !!
|
## FOUND TW
|
||||||
#############################################################
|
#############################################################
|
||||||
# Connect_PLAYER_To_Gchange.sh : Sync FRIENDS TW
|
## CHECK "GPS" Tiddler
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler
|
||||||
|
[[ ! -s ~/.zen/tmp/${MOATS}/GPS.json || $(cat ~/.zen/tmp/${MOATS}/GPS.json) == "[]" ]] \
|
||||||
|
&& echo "${PLAYER} GPS : BAD TW (☓‿‿☓) " && continue
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
## CHECK MadeInZion
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' ## MadeInZion Tiddler
|
||||||
|
|
||||||
|
[[ ! -s ~/.zen/tmp/${MOATS}/MadeInZion.json || $(cat ~/.zen/tmp/${MOATS}/MadeInZion.json) == "[]" ]] \
|
||||||
|
&& echo "${PLAYER} MadeInZion : BAD TW (☓‿‿☓) " && continue
|
||||||
|
|
||||||
|
player=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].player)
|
||||||
|
#############################################################
|
||||||
|
## CHECK "AstroID" Tiddler
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'AstroID.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'AstroID' ## AstroID Tiddler
|
||||||
|
[[ $(cat ~/.zen/tmp/${MOATS}/AstroID.json 2>/dev/null) == "[]" ]] && rm ~/.zen/tmp/${MOATS}/AstroID.json
|
||||||
|
########################################## used by Astroport :: Lasertag :: TW plugin ##
|
||||||
|
## CHECK "$:/config/NewTiddler/Tags"
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'TWsign.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '$:/config/NewTiddler/Tags' ## $:/config/NewTiddler/Tags Tiddler
|
||||||
|
signature=$(cat ~/.zen/tmp/${MOATS}/TWsign.json | jq -r .[].text)
|
||||||
|
echo "${player} SIGNATURE = $signature"
|
||||||
|
############################################################ BAD TW SIGNATURE
|
||||||
|
[[ ${player} != ${PLAYER} || ${PLAYER} != ${signature} ]] \
|
||||||
|
&& echo "> (☓‿‿☓) BAD PLAYER=$player in TW (☓‿‿☓)" \
|
||||||
|
&& ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ALL" \
|
||||||
|
&& continue \
|
||||||
|
|| echo "${PLAYER} OFFICIAL TW - (⌐■_■) -"
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
## CHECK "Astroport" TIDDLER
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler
|
||||||
|
[[ ! -s ~/.zen/tmp/${MOATS}/Astroport.json || $(cat ~/.zen/tmp/${MOATS}/Astroport.json) == "[]" ]] \
|
||||||
|
&& echo "${PLAYER} Astroport : BAD TW (☓‿‿☓) " && continue
|
||||||
|
|
||||||
|
BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate)
|
||||||
|
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## ZenStation IPNS address
|
||||||
|
CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part
|
||||||
|
[[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \
|
||||||
|
&& CURCHAIN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # AVOID EMPTY
|
||||||
|
|
||||||
|
SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE})
|
||||||
|
SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS})
|
||||||
|
DIFF_SECONDS=$(( SNOW - SBIRTH ))
|
||||||
|
days=$((DIFF_SECONDS / 60 / 60 / 24))
|
||||||
|
|
||||||
|
################################################## +7 DAYS AstroID !!
|
||||||
|
## REMOVE TW OLDER THAN 7 DAYS WITH AstroID
|
||||||
|
[[ -s ~/.zen/tmp/${MOATS}/AstroID.json && $days -gt 7 ]] \
|
||||||
|
&& ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ALL" \
|
||||||
|
&& echo "(#__#) AstroID +7 DAYS = SECURITY ERROR (#__#)" && continue
|
||||||
|
|
||||||
|
################################################## ANOTHER ASTROPORT !!
|
||||||
|
IPNSTAIL=$(echo ${ASTROPORT} | rev | cut -f 1 -d '/' | rev) # Remove "/ipns/" part
|
||||||
|
########### ASTROPORT is not IPFSNODEID => EJECT TW
|
||||||
|
if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then
|
||||||
|
echo "> PLAYER MOVED TO ${IPNSTAIL} : UNPLUG "
|
||||||
|
${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ONE"
|
||||||
|
echo ">>>> CIAO ${PLAYER}"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
################ VERIFICATIONS DONE ######################
|
||||||
|
echo "ASTROPORT ZenStation : ${ASTROPORT}"
|
||||||
|
echo "CURCHAIN=${CURCHAIN}"
|
||||||
|
echo "================================== TW $days days old"
|
||||||
|
|
||||||
|
######################################
|
||||||
|
#### UPLANET GEO COORD EXTRACTION
|
||||||
|
## GET "GPS" TIDDLER - 0.00 0.00 (if empty: null)
|
||||||
|
ZLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
||||||
|
[[ $ZLAT == "null" || $ZLAT == "" ]] && ZLAT="0.00"
|
||||||
|
ZLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
||||||
|
[[ $ZLON == "null" || $ZLON == "" ]] && ZLON="0.00"
|
||||||
|
|
||||||
|
LAT=$(makecoord ${ZLAT})
|
||||||
|
LON=$(makecoord ${ZLON})
|
||||||
|
SLAT="${LAT::-1}"
|
||||||
|
SLON="${LON::-1}"
|
||||||
|
RLAT="$(echo ${LAT} | cut -d '.' -f 1)"
|
||||||
|
RLON="$(echo ${LON} | cut -d '.' -f 1)"
|
||||||
|
## SEARCH for TODATENS in SWARM then LOCAL
|
||||||
|
## ZEN STATION
|
||||||
|
MYNS=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS)
|
||||||
|
UMAPG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB)
|
||||||
|
## BOOSTRAP SCENARIO
|
||||||
|
[[ $MYNS == "" ]] \
|
||||||
|
&& MYNS=$(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS) \
|
||||||
|
&& UMAPG1PUB=$(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB)
|
||||||
|
# Search in flashmem
|
||||||
|
if [[ ${MYNS} != "" ]]; then
|
||||||
|
echo "UMAP NEXTNS"
|
||||||
|
UMAPNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.umapns | cut -d ':' -f 3)
|
||||||
|
cat ~/.zen/tmp/flashmem/${MYNS}/_next.umapns
|
||||||
|
echo "SECTOR NEXTNS"
|
||||||
|
SECTORNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.sectorns | cut -d ':' -f 3)
|
||||||
|
cat ~/.zen/tmp/flashmem/${MYNS}/_next.sector
|
||||||
|
echo "REGION NEXTNS"
|
||||||
|
REGIONNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.regionns | cut -d ':' -f 3)
|
||||||
|
cat ~/.zen/tmp/flashmem/${MYNS}/_next.region
|
||||||
|
fi
|
||||||
|
|
||||||
|
UMAPG1PUB=$(${MY_PATH}/../tools/keygen "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}")
|
||||||
|
|
||||||
|
## CALCULATE UMAP TODATENS ################
|
||||||
|
######################################
|
||||||
|
ipfs key rm "temp" >/dev/null 2>&1
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/todate.ipfskey "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
||||||
|
UMAPNS=$(ipfs key import "temp" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/todate.ipfskey)
|
||||||
|
|
||||||
|
echo "UMAP _${LAT}_${LON} UMAPNS=/ipns/${UMAPNS}"
|
||||||
|
|
||||||
|
SECTOR="_${LAT::-1}_${LON::-1}"
|
||||||
|
## CALCULATE SECTOR TODATENS ################
|
||||||
|
ipfs key rm "temp" >/dev/null 2>&1
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/sectodate.ipfskey "${TODATE}${UPLANETNAME}${SECTOR}" "${TODATE}${UPLANETNAME}${SECTOR}"
|
||||||
|
TODATESECTORNS=$(ipfs key import "temp" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/sectodate.ipfskey)
|
||||||
|
ipfs key rm "temp" >/dev/null 2>&1
|
||||||
|
#############################################
|
||||||
|
# MAKE TODATE "GPS" TIDDLER
|
||||||
|
cat ${MY_PATH}/../templates/data/GPS.json \
|
||||||
|
| sed -e "s~_MOATS_~${MOATS}~g" \
|
||||||
|
-e "s~_PLAYER_~${PLAYER}~g" \
|
||||||
|
-e "s~_LAT_~${LAT}~g" \
|
||||||
|
-e "s~_LON_~${LON}~g" \
|
||||||
|
-e "s~_UMAPNS_~${UMAPNS}~g" \
|
||||||
|
-e "s~_SECTORTW_~/ipns/${TODATESECTORNS}/TW~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
|
|
||||||
|
################# PERSONAL VDO.NINJA ADDRESS)
|
||||||
|
PHONEBOOTH=${PLAYER/@/_}
|
||||||
|
PHONEBOOTH=${PHONEBOOTH/\./_}
|
||||||
|
PHONEBOOTH=${PHONEBOOTH/-/_}
|
||||||
|
|
||||||
|
# MAKE "ALLO" TIDDLER
|
||||||
|
cat ${MY_PATH}/../templates/data/VISIO.json \
|
||||||
|
| sed -e "s~_IPFSNINJA_~${VDONINJA}~g" \
|
||||||
|
-e "s~_MOATS_~${MOATS}~g" \
|
||||||
|
-e "s~_PLAYER_~${PLAYER}~g" \
|
||||||
|
-e "s~_PHONEBOOTH_~${PHONEBOOTH}~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/VISIO.json
|
||||||
|
|
||||||
|
## UPDATE PLAYER CACHE
|
||||||
|
echo "_${LAT}_${LON}" > ~/.zen/game/players/${PLAYER}/.umap
|
||||||
|
cp ~/.zen/tmp/${MOATS}/GPS.json ~/.zen/game/players/${PLAYER}/
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# (RE)MAKE "CESIUM" TIDDLER
|
||||||
|
echo "Create CESIUM Tiddler"
|
||||||
|
cat ${MY_PATH}/../templates/data/CESIUM.json \
|
||||||
|
| sed -e "s~_G1PUB_~${G1PUB}~g" \
|
||||||
|
-e "s~_MOATS_~${MOATS}~g" \
|
||||||
|
-e "s~_CESIUMIPFS_~${CESIUMIPFS}~g" \
|
||||||
|
-e "s~_PLAYER_~${PLAYER}~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/CESIUM.json
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
########## $:/moa picture ## lightbeams replacement ###############
|
||||||
|
## GET $:/moa Tiddlers ####################################### START
|
||||||
|
echo "GET $:/moa Tiddlers"
|
||||||
|
###################################################### [tag[$:/moa]]
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'FRIENDS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[$:/moa]]' ## $:/moa EMAIL Tiddlers
|
||||||
|
#####################################################################
|
||||||
|
fplayers=($(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq -rc .[].title))
|
||||||
|
echo "${fplayers[@]}"
|
||||||
|
UPLAYERSTIDS=()
|
||||||
|
for fp in ${fplayers[@]}; do
|
||||||
|
|
||||||
|
[[ ! "${fp}" =~ ^[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]] && echo "BAD ${fp} FORMAT" && continue
|
||||||
|
[[ "${fp}" == "${PLAYER}" ]] && echo "IT'S ME - CONTINUE" && continue
|
||||||
|
|
||||||
|
FPLAYER=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .player')
|
||||||
|
[[ $FPLAYER == 'null' || $FPLAYER == '' ]] && echo "FPLAYER null - CONTINUE" && continue
|
||||||
|
|
||||||
|
FTW=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .tw')
|
||||||
|
[[ ${FTW} == "/ipns/" || ${FTW} == "null" || ${FTW} == "" ]] && echo "WEIRD FTW ${FTW} - CONTINUE" && continue
|
||||||
|
|
||||||
|
FG1PUB=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .g1pub')
|
||||||
|
[[ $FG1PUB == 'null' || $FG1PUB == '' ]] && echo "FG1PUB null - CONTINUE" && continue
|
||||||
|
|
||||||
|
IHASH=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .text' | sha256sum | cut -d ' ' -f 1)
|
||||||
|
|
||||||
|
echo ":: coucou :: $FPLAYER :: (ᵔ◡◡ᵔ) ::"
|
||||||
|
echo "TW: $FTW"
|
||||||
|
echo "G1: $FG1PUB"
|
||||||
|
echo "IHASH: $IHASH"
|
||||||
|
UPLAYERSTIDS=("${UPLAYERSTIDS[@]}" "[[${FPLAYER^^}|${FPLAYER^^}]]")
|
||||||
|
|
||||||
|
## GET ORIGINH FROM LAST KNOWN TW STATE
|
||||||
|
mkdir -p ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}
|
||||||
|
if [[ -s ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html ]]; then
|
||||||
|
tiddlywiki --load ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' "${FPLAYER}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${FPLAYER}" ## GET ORIGIN
|
||||||
|
|
||||||
|
ORIGINH=$(cat ~/.zen/tmp/${MOATS}/${FPLAYER}.json | jq -r '.[].text' | sha256sum | cut -d ' ' -f 1)
|
||||||
|
echo "ORIGINH: $ORIGINH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
( ## REFRESH LOCAL PLAYER CACHE with FRIEND ACTUAL TW (&) will be used TOMORROW
|
||||||
|
ipfs --timeout 480s cat ${FTW} > ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html
|
||||||
|
) &
|
||||||
|
|
||||||
|
## CHECK ALREADY IN ${FPLAYER^^} IHASH
|
||||||
|
rm -f ~/.zen/tmp/${MOATS}/finside.json
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'finside.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${FPLAYER^^}" ## ${FPLAYER^^} autoload Tiddlers
|
||||||
|
|
||||||
|
INSIDEH=$(cat ~/.zen/tmp/${MOATS}/finside.json | jq -rc '.[].ihash')
|
||||||
|
echo "INSIDEH: $INSIDEH"
|
||||||
|
|
||||||
|
## UPDATE IF IHASH CHANGED -> New drawing => Friend get informed
|
||||||
|
if [[ -z $INSIDEH || $INSIDEH != $IHASH || $ORIGINH != $INSIDEH ]]; then
|
||||||
|
cat ${MY_PATH}/../templates/data/_UPPERFPLAYER_.json \
|
||||||
|
| sed -e "s~_UPPERFPLAYER_~${FPLAYER^^}~g" \
|
||||||
|
-e "s~_FPLAYER_~${FPLAYER}~g" \
|
||||||
|
-e "s~_MOATS_~${MOATS}~g" \
|
||||||
|
-e "s~_IHASH_~${IHASH}~g" \
|
||||||
|
-e "s~_FRIENDTW_~${FTW}~g" \
|
||||||
|
-e "s~_PLAYER_~${PLAYER}~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json
|
||||||
|
|
||||||
|
echo "Insert New ${FPLAYER^^}.json"
|
||||||
|
#~ cat ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json | jq
|
||||||
|
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER^^}.json 'application/json' \
|
||||||
|
--output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \
|
||||||
|
--render "$:/core/save/all" "newindex.html" "text/plain"
|
||||||
|
[[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \
|
||||||
|
&& cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
&& rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \
|
||||||
|
|| echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR"
|
||||||
|
|
||||||
|
if [[ $ORIGINH != $INSIDEH ]]; then
|
||||||
|
echo "ORIGINH Update"
|
||||||
|
rm -f ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html
|
||||||
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
--import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER}.json 'application/json' \
|
||||||
|
--output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \
|
||||||
|
--render "$:/core/save/all" "newindex.html" "text/plain"
|
||||||
|
[[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \
|
||||||
|
&& cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
|
&& rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \
|
||||||
|
|| echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
## GET $:/moa Tiddlers ####################################### END
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
echo "${UPLAYERSTIDS[@]}"
|
||||||
|
UPLAYERSTIDS_STR=""
|
||||||
|
for item in "${UPLAYERSTIDS[@]}"; do
|
||||||
|
UPLAYERSTIDS_STR+=" $item"
|
||||||
|
done
|
||||||
|
# Trim leading space
|
||||||
|
UPLAYERSTIDS_STR="${UPLAYERSTIDS_STR# }"
|
||||||
|
######################################
|
||||||
|
# (RE)MAKE "SECTORTW_NEWS" TIDDLER
|
||||||
|
cat ${MY_PATH}/../templates/data/SECTORTW_NEWS.json \
|
||||||
|
| sed -e "s~_SECTOR_~${SECTOR}~g" \
|
||||||
|
-e "s~_MOATS_~${MOATS}~g" \
|
||||||
|
-e "s~_UPLANET_~${myUPLANET}~g" \
|
||||||
|
-e "s~_UPLAYERSTIDS_~${UPLAYERSTIDS_STR}~g" \
|
||||||
|
-e "s~_SECTORTW_~/ipns/${TODATESECTORNS}/TW~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/SECTORTW_NEWS.json
|
||||||
|
|
||||||
|
echo "SECTOR $SECTOR SECTORTW=/ipns/${TODATESECTORNS}/TW"
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Connect_PLAYER_To_Gchange.sh : Sync FRIENDS TW - TODO : REWRITE
|
||||||
##############################################################
|
##############################################################
|
||||||
echo "##################################################################"
|
#~ echo "##################################################################"
|
||||||
|
|
||||||
[[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]] \
|
#~ [[ $(echo "$COINS >= 500" | bc -l) -eq 1 ]] \
|
||||||
&& echo "## Connect_PLAYER_To_Gchange.sh" \
|
#~ && echo "## Connect_PLAYER_To_Gchange.sh" \
|
||||||
&& ${MY_PATH}/../tools/Connect_PLAYER_To_Gchange.sh "${PLAYER}" \
|
#~ && ${MY_PATH}/../tools/Connect_PLAYER_To_Gchange.sh "${PLAYER}" \
|
||||||
|| echo "$COINS <= 1 G1 + 10 ẑen : stars exchange (★★★★★) level"
|
#~ || echo "$COINS <= 1 G1 + 10 ẑen : bypass Gchange stars exchange (★★★★★)"
|
||||||
|
|
||||||
# G1PalPay - 1 G1 mini -> Check for G1 TX incoming comments #
|
##############################################################
|
||||||
if [[ $(echo "$COINS >= 1" | bc -l) -eq 1 ]]; then
|
# G1PalPay - 2 G1 mini -> Check for G1 TX incoming comments #
|
||||||
###########
|
##############################################################
|
||||||
|
if [[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]]; then
|
||||||
|
##############################################################
|
||||||
# G1PalPay.sh #
|
# G1PalPay.sh #
|
||||||
##############################################################
|
##############################################################
|
||||||
echo "## RUNNING G1PalPay Wallet Monitoring "
|
echo "## RUNNING G1PalPay Wallet Monitoring "
|
||||||
${MY_PATH}/G1PalPay.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}"
|
${MY_PATH}/G1PalPay.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}"
|
||||||
|
|
||||||
###############
|
##############################################################
|
||||||
# VOEUX.create.sh #
|
# VOEUX.create.sh #
|
||||||
##############################################################
|
##############################################################
|
||||||
${MY_PATH}/VOEUX.create.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}" "${G1PUB}"
|
${MY_PATH}/VOEUX.create.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}" "${G1PUB}"
|
||||||
|
|
||||||
###############
|
##############################################################
|
||||||
# VOEUX.refresh.sh #
|
# VOEUX.refresh.sh #
|
||||||
##############################################################
|
##############################################################
|
||||||
${MY_PATH}/VOEUX.refresh.sh "${PLAYER}" "${MOATS}" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html
|
${MY_PATH}/VOEUX.refresh.sh "${PLAYER}" "${MOATS}" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "> ZenCard is not activated ($ZEN)"
|
echo "> ZenCard not activated ($ZEN ZEN)"
|
||||||
fi
|
fi
|
||||||
### CHECK FOR pending (TODO! In case PAY4SURE have abandonned pendings)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###################
|
|
||||||
# REFRESH PLAYER_feed #
|
|
||||||
##################################
|
##################################
|
||||||
echo "# TW : GW API + LightBeam Feed + Friends"
|
## PATCH : RESTORE PLAYER GPS.json (protect cache erased by WISH treatment)
|
||||||
TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3)
|
cp -f ~/.zen/game/players/${PLAYER}/GPS.json ~/.zen/tmp/${MOATS}/
|
||||||
|
## WRITE TIDDLERS IN TW SECTORTW_NEWS.json
|
||||||
FEEDNS=$(ipfs key list -l | grep -w "${PLAYER}_feed" | cut -d ' ' -f 1)
|
|
||||||
[[ ! ${FEEDNS} ]] && echo ">>>>> ERROR ${PLAYER}_feed IPNS KEY NOT FOUND - ERROR" && continue
|
|
||||||
|
|
||||||
# WRITE lightbeam params
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# Tiddlers controling GW & API
|
|
||||||
#~ echo '[{"title":"$:/ipfs/saver/api/http/localhost/5001","tags":"$:/ipfs/core $:/ipfs/saver/api","text":"'$(myPlayerApiGw)'"}]' > ~/.zen/tmp/${MOATS}/5001.json
|
|
||||||
#~ echo '[{"title":"$:/ipfs/saver/gateway/http/localhost","tags":"$:/ipfs/core $:/ipfs/saver/gateway","text":"'$myIPFS'"}]' > ~/.zen/tmp/${MOATS}/8080.json
|
|
||||||
|
|
||||||
## COPY DATA PRODUCED BY GCHANGE STAR EXTRACTION
|
|
||||||
FRIENDSFEEDS=$(cat ~/.zen/tmp/${IPFSNODEID}/RSS/${PLAYER}/FRIENDSFEEDS 2>/dev/null)
|
|
||||||
echo "★★★★★ FRIENDS FEEDS : "${FRIENDSFEEDS}
|
|
||||||
ASTRONAUTES=$(cat ~/.zen/tmp/${IPFSNODEID}/RSS/${PLAYER}/ASTRONAUTES 2>/dev/null)
|
|
||||||
echo "★★★★★ FRIENDS TW : "${ASTRONAUTES}
|
|
||||||
|
|
||||||
## Change TW FRIENDFEED ie PLAYER RSS IPNS (must fix TW plugin to work)
|
|
||||||
#~ echo '[{"title":"$:/plugins/astroport/lightbeams/state/subscriptions","text":"'${FRIENDSFEEDS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/friends.json
|
|
||||||
#~ ## ADD --import "$HOME/.zen/tmp/${MOATS}/friends.json" "application/json" \ ## MANUAL TW RSS REGISTRATION
|
|
||||||
|
|
||||||
## WRITE TIDDLERS IN TW
|
|
||||||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/VISIO.json "application/json" \
|
||||||
|
--import ~/.zen/tmp/${MOATS}/CESIUM.json "application/json" \
|
||||||
|
--import ~/.zen/tmp/${MOATS}/SECTORTW_NEWS.json "application/json" \
|
||||||
--output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} --render "$:/core/save/all" "newindex.html" "text/plain"
|
--output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} --render "$:/core/save/all" "newindex.html" "text/plain"
|
||||||
|
|
||||||
## CHECK IT IS OK
|
## CHECK IT IS OK
|
||||||
[[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \
|
[[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \
|
||||||
&& cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
&& cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
&& rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html
|
&& rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \
|
||||||
|
|| echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR"
|
||||||
###########################
|
###########################
|
||||||
|
|
||||||
####################
|
####################
|
||||||
|
## TW NEWINDEX .... #####
|
||||||
## ANY CHANGES ?
|
|
||||||
##############################################################
|
##############################################################
|
||||||
DIFF=$(diff ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html)
|
echo "LOCAL BACKUP + MICROLEDGER TW"
|
||||||
if [[ $DIFF ]]; then
|
cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
echo "DIFFERENCE DETECTED !! "
|
|
||||||
echo "Backup & Upgrade TW local copy..."
|
|
||||||
cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
[[ -s ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain ]] \
|
[[ -s ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain ]] \
|
||||||
&& ZCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) \
|
&& ZCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) \
|
||||||
&& echo "# CHAIN : ${CURCHAIN} -> ${ZCHAIN}" \
|
&& echo "# CHAIN : ${CURCHAIN} -> ${ZCHAIN}" \
|
||||||
&& [[ ${CURCHAIN} != "" && ${ZCHAIN} != "" ]] \
|
&& [[ ${CURCHAIN} != "" && ${ZCHAIN} != "" ]] \
|
||||||
&& sed -i "s~${CURCHAIN}~${ZCHAIN}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
&& sed -i "s~${CURCHAIN}~${ZCHAIN}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
else
|
|
||||||
## COUNT NO CHANGE
|
|
||||||
try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/_nochange 2>/dev/null) || try=0
|
|
||||||
((try++)) && echo $try > ~/.zen/game/players/${PLAYER}/ipfs/_nochange
|
|
||||||
echo "NO CHANGE $try TIMES"
|
|
||||||
fi
|
|
||||||
##############################################################
|
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
############################### LOCAL "MICRO LEDGER"
|
######## UPDATING ${PLAYER}/ipfs/moa/.chain
|
||||||
################## UPDATING ${PLAYER}/ipfs/moa
|
cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \
|
||||||
[[ $DIFF ]] && cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \
|
~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats)
|
||||||
~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats)
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
## TW IPFS ADD & PUBLISH
|
||||||
|
##########################################
|
||||||
TW=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1)
|
TW=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1)
|
||||||
ipfs name publish --key=${PLAYER} /ipfs/${TW}
|
ipfs --timeout 720s name publish --key=${PLAYER} /ipfs/${TW}
|
||||||
|
|
||||||
[[ $DIFF ]] && echo ${TW} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain
|
|
||||||
|
|
||||||
|
## LOCAL PLAYER CACHING
|
||||||
|
echo ${TW} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain
|
||||||
echo ${MOATS} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats
|
echo ${MOATS} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats
|
||||||
|
|
||||||
echo "================================================"
|
echo "================================================"
|
||||||
|
@ -324,51 +517,62 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
echo " $myIPFSGW/ipns/${ASTRONAUTENS}"
|
echo " $myIPFSGW/ipns/${ASTRONAUTENS}"
|
||||||
echo "================================================"
|
echo "================================================"
|
||||||
|
|
||||||
|
###################
|
||||||
|
# REFRESH PLAYER_feed KEY
|
||||||
echo "(☉_☉ ) (☉_☉ ) (☉_☉ ) RSS"
|
echo "(☉_☉ ) (☉_☉ ) (☉_☉ ) RSS"
|
||||||
|
|
||||||
## CREATING 30 DAYS JSON RSS STREAM
|
## CREATING 30 DAYS JSON RSS STREAM
|
||||||
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
--output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]'
|
--output ~/.zen/game/players/${PLAYER}/ipfs \
|
||||||
|
--render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]!externalTiddler[yes]!tag[load-external]]'
|
||||||
|
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json ]] \
|
[[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json ]] \
|
||||||
&& echo "NO ${PLAYER} RSS - BAD "
|
&& echo "NO ${PLAYER} RSS - BAD "
|
||||||
|
|
||||||
echo "~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json"
|
echo "~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json"
|
||||||
|
|
||||||
## TODO CREATING 30 DAYS XML RSS STREAM
|
########################################################
|
||||||
|
#### PLAYER ACCOUNT HAVE NEW TIDDLER or NOT #########
|
||||||
|
if [[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]]; then
|
||||||
|
echo "ALERT -- RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --"
|
||||||
|
## DEAD PLAYER ??
|
||||||
|
if [[ ${DIFF_SECONDS} -eq $(( 27 * 24 * 60 * 60 )) ]]; then
|
||||||
|
echo "<html><body><h1>WARNING.</h1> Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert
|
||||||
|
echo "<br><h3>TW : <a href=$(myIpfsGw)/ipfs/${CURCHAIN}> ${PLAYER}</a></h3> ADD MORE ZEN ($ZEN) </body></html>" >> ~/.zen/tmp/alert
|
||||||
|
|
||||||
|
${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT"
|
||||||
|
echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days"
|
||||||
|
fi
|
||||||
|
if [[ ${DIFF_SECONDS} -gt $(( 29 * 24 * 60 * 60 )) ]]; then
|
||||||
|
#################################### UNPLUG ACCOUNT
|
||||||
|
echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN"
|
||||||
|
${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} "ALL"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
## PAY 1 ZEN TO UMAPG1PUB
|
||||||
|
${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "0.1" "${UMAPG1PUB}" "UPLANET:TW:${YOUSER}:/ipfs/${TW}"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
### PLAYER ALIVE PUBLISH RSS &
|
||||||
|
FEEDNS=$(ipfs key list -l | grep -w "${PLAYER}_feed" | cut -d ' ' -f 1)
|
||||||
|
[[ ${FEEDNS} ]] \
|
||||||
|
&& IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \
|
||||||
|
&& echo "Publishing ${PLAYER}_feed: /ipns/${FEEDNS} => /ipfs/${IRSS}" \
|
||||||
|
&& ipfs --timeout 300s name publish --key="${PLAYER}_feed" /ipfs/${IRSS} \
|
||||||
|
|| echo ">>>>> ERROR ${PLAYER}_feed IPNS KEY NOT FOUND - ERROR"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
## TODO CREATING 30 DAYS XML RSS STREAM ???
|
||||||
## https://talk.tiddlywiki.org/t/has-anyone-generated-an-rss-feed-from-tiddlywiki/966/26
|
## https://talk.tiddlywiki.org/t/has-anyone-generated-an-rss-feed-from-tiddlywiki/966/26
|
||||||
# tiddlywiki.js --load my-wiki.html --render "[[$:/plugins/sq/feeds/templates/rss]]" "feed.xml" "text/plain" "$:/core/templates/wikified-tiddler"
|
# tiddlywiki.js --load my-wiki.html --render "[[$:/plugins/sq/feeds/templates/rss]]" "feed.xml" "text/plain" "$:/core/templates/wikified-tiddler"
|
||||||
### $:/plugins/sycom/atom-feed/atom.xml
|
### $:/plugins/sycom/atom-feed/atom.xml
|
||||||
#~ tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
#~ tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \
|
||||||
#~ --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.xml" 'text/plain' "$:/core/templates/wikified-tiddler" 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]'
|
#~ --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.xml" 'text/plain' "$:/core/templates/wikified-tiddler" 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]'
|
||||||
|
|
||||||
SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE})
|
|
||||||
SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS})
|
|
||||||
DIFF_SECONDS=$(( SNOW - SBIRTH ))
|
|
||||||
days=$((DIFF_SECONDS / 60 / 60 / 24))
|
|
||||||
echo "PLAYER TW was created $days days ago"
|
|
||||||
|
|
||||||
##################################
|
|
||||||
#### PLAYER ACCOUNT CLEANING #########
|
|
||||||
## IF ZEN < 11
|
|
||||||
## && EMPTY RSS + 30 DAYS BIRTHDATE
|
|
||||||
## only for less 90 days TW ? && ${DIFF_SECONDS} -lt $(( 90 * 24 * 60 * 60 )) ????
|
|
||||||
## ==> UNPLUG
|
|
||||||
[[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]] \
|
|
||||||
&& echo "RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --" \
|
|
||||||
&& [[ $(echo "$COINS < 2.1" | bc -l) -eq 1 ]] \
|
|
||||||
&& [[ ${DIFF_SECONDS} -gt $(( 27 * 24 * 60 * 60 )) ]] \
|
|
||||||
&& echo "<html><body><h1>WARNING.</h1> Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert \
|
|
||||||
&& echo "<br><h3>TW : <a href=$(myIpfsGw)/ipfs/${CURCHAIN}> ${PLAYER}</a></h3>ZEN=$ZEN </body></html>" >> ~/.zen/tmp/alert \
|
|
||||||
&& ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT" \
|
|
||||||
&& echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days" \
|
|
||||||
&& [[ ${DIFF_SECONDS} -gt $(( 30 * 24 * 60 * 60 )) ]] \
|
|
||||||
&& echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN" \
|
|
||||||
&& ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \
|
|
||||||
&& continue
|
|
||||||
#################################### UNPLUG ACCOUNT
|
|
||||||
|
|
||||||
IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \
|
|
||||||
&& ipfs name publish --key="${PLAYER}_feed" /ipfs/${IRSS}
|
|
||||||
|
|
||||||
######################### REPLACE TW with REDIRECT to latest IPFS or IPNS (reduce 12345 cache size)
|
######################### REPLACE TW with REDIRECT to latest IPFS or IPNS (reduce 12345 cache size)
|
||||||
[[ ! -z ${TW} ]] && TWLNK="/ipfs/${TW}" || TWLNK="/ipns/${ASTRONAUTENS}"
|
[[ ! -z ${TW} ]] && TWLNK="/ipfs/${TW}" || TWLNK="/ipns/${ASTRONAUTENS}"
|
||||||
|
@ -381,32 +585,46 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
#################################################
|
#################################################
|
||||||
################### COPY DATA TO UP LEVEL GRIDS
|
################### COPY DATA TO UP LEVEL GRIDS
|
||||||
#################################################
|
#################################################
|
||||||
if [[ ${LAT} && ${LON} ]]; then
|
## SECTOR BANK COORD
|
||||||
## SECTOR BANK COORD
|
SECLAT="${LAT::-1}"
|
||||||
SECLAT="${LAT::-1}"
|
SECLON="${LON::-1}"
|
||||||
SECLON="${LON::-1}"
|
## REGION
|
||||||
## REGION
|
REGLAT=$(echo ${LAT} | cut -d '.' -f 1)
|
||||||
REGLAT=$(echo ${LAT} | cut -d '.' -f 1)
|
REGLON=$(echo ${LON} | cut -d '.' -f 1)
|
||||||
REGLON=$(echo ${LON} | cut -d '.' -f 1)
|
|
||||||
|
|
||||||
echo "/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}"
|
echo "/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}"
|
||||||
## IPFSNODEID 12345 CACHE UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??
|
## IPFSNODEID 12345 CACHE UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??
|
||||||
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
||||||
|
|
||||||
cp ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json \
|
cp ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json \
|
||||||
~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
||||||
|
#### CREATE ALL JSON COMPILATION
|
||||||
|
${MY_PATH}/../tools/json_dir.all.sh \
|
||||||
|
~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
||||||
|
|
||||||
${MY_PATH}/../tools/json_dir.all.sh ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/
|
## IPFS PLAYER TW #
|
||||||
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}
|
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}
|
||||||
cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/
|
# /ipfs/${TW} = /TW/${PLAYER}/index.html
|
||||||
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipfs/${TW}'\" />${TODATE}:${PLAYER}" \
|
||||||
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATENS}'\" />" > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/_index.html
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/index.html
|
||||||
|
# /ipns/${ASTRONAUTENS} = /TW/${PLAYER}/_index.html
|
||||||
fi
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${ASTRONAUTENS}'\" />${PLAYER}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/_index.html
|
||||||
|
## IPNS UMAP _index.html ##
|
||||||
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${UMAPNS}'\" />${TODATE}:_${LAT}_${LON}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/_index.html
|
||||||
|
|
||||||
ls -al ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON} 2>/dev/null
|
ls -al ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON} 2>/dev/null
|
||||||
echo "(☉_☉ ) (☉_☉ ) (☉_☉ )"
|
echo "(☉_☉ ) (☉_☉ ) (☉_☉ )"
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
## DAY=7 : SEND 3.1 G1 to PLAYER + 3.1 G1 to UMAP
|
||||||
|
[[ ${days} -eq 7 && "${CURRENT}" != "${PLAYER}" && "${CURRENT}" != "" ]] \
|
||||||
|
&& echo "7 DAY. PLAYER STEP ONE SUCCEED." \
|
||||||
|
&& MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \
|
||||||
|
&& ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "3.1" "${G1PUB}" "UPLANET:WELCOME:${MIUSER}:${YOUSER}" \
|
||||||
|
&& echo "UPLANET:WELCOME:${MIUSER}:${YOUSER}" && echo "(⌐■_■) ~~~ OFFICIAL ~~ _${LAT}_${LON} ~~~ $ASTRONAUTENS"
|
||||||
|
|
||||||
## MAINTAIN R/RW TW STATE
|
## MAINTAIN R/RW TW STATE
|
||||||
[[ ${ASTRONS} == "" ]] \
|
[[ ${ASTRONS} == "" ]] \
|
||||||
&& echo "${PLAYER} DISCONNECT" \
|
&& echo "${PLAYER} DISCONNECT" \
|
||||||
|
@ -418,6 +636,10 @@ for PLAYER in ${PLAYERONE[@]}; do
|
||||||
rm -Rf ~/.zen/tmp/${MOATS}
|
rm -Rf ~/.zen/tmp/${MOATS}
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
end=`date +%s`
|
||||||
|
dur=`expr $end - $start`
|
||||||
|
echo "${PLAYER} refreshing took $dur seconds (${MOATS})"
|
||||||
|
|
||||||
done
|
done
|
||||||
echo "============================================ PLAYER.refresh DONE."
|
echo "============================================ PLAYER.refresh DONE."
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,9 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
--render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler
|
--render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler
|
||||||
TWMAPNS=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap)
|
TWMAPNS=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap)
|
||||||
LAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
LAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
||||||
|
[[ $LAT == "null" || $LAT == "" ]] && LAT="0.00"
|
||||||
LON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
LON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
||||||
|
[[ $LON == "null" || $LON == "" ]] && LON="0.00"
|
||||||
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}"
|
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}"
|
||||||
rm ~/.zen/tmp/${MOATS}/GPS.json
|
rm ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
|
|
||||||
|
@ -57,22 +59,23 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
|
|
||||||
ALL="ALL"
|
ALL="ALL"
|
||||||
[[ $ONE == "ONE" ]] && ALL=1
|
[[ $ONE == "ONE" ]] && ALL=1
|
||||||
[[ $ALL == "ALL" ]] && SECTORG1PUB=${WORLDG1PUB} && echo "DEST = WORLDG1PUB"
|
[[ $ALL == "ALL" ]] && SECTORG1PUB=${WORLDG1PUB} && echo "DEST = WORLDG1PUB: ${WORLDG1PUB}"
|
||||||
|
|
||||||
[[ ! -z ${SECTORG1PUB} ]] \
|
[[ ! -z ${SECTORG1PUB} ]] \
|
||||||
&& echo "> PAY4SURE ZEN:${ALL} WALLET MOVE" \
|
&& echo "> PAY4SURE ZEN:${ALL} WALLET MOVE" \
|
||||||
&& ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${ALL}" "${SECTORG1PUB}" "UNPLUG:${ALL}"
|
&& ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${ALL}" "${SECTORG1PUB}" "UNPLUG:${ALL}"
|
||||||
|
|
||||||
## REMOVING PLAYER from ASTROPORT
|
## REMOVING PLAYER from ASTROPORT
|
||||||
|
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
|
||||||
ipfs key rm ${PLAYER}; ipfs key rm ${PLAYER}_feed; ipfs key rm ${G1PUB};
|
ipfs key rm ${PLAYER}; ipfs key rm ${PLAYER}_feed; ipfs key rm ${G1PUB};
|
||||||
for vk in $(ls -d ~/.zen/game/players/${PLAYER}/voeux/*/* 2>/dev/null | rev | cut -d / -f 1 | rev); do
|
for vk in $(ls -d ~/.zen/game/players/${PLAYER}/voeux/*/* 2>/dev/null | rev | cut -d / -f 1 | rev); do
|
||||||
echo "removing wish ${vk}"
|
echo "removing wish ${vk}"
|
||||||
ipfs key rm ${vk}
|
[[ ${vk} != "" ]] && ipfs key rm ${vk}
|
||||||
done
|
done
|
||||||
|
|
||||||
## SEND PLAYER LAST KNOW TW
|
## SEND PLAYER LAST KNOW TW
|
||||||
TW=$(ipfs add -Hq ${INDEX} | tail -n 1)
|
TW=$(ipfs add -Hq ${INDEX} | tail -n 1)
|
||||||
${MY_PATH}/../tools/mailjet.sh "${PLAYER}" "<html><body><h1>Ciao ${PLAYER},</h1> Your TW is unplugged from Astroport : <a href='${myIPFSGW}/ipfs/${TW}'>TW ARCHIVE</a>.<br>$(cat ~/.zen/game/players/${PLAYER}/secret.june)<br><h3>May the force be with you.</h3></body></html>" "BYE BYE MESSAGE"
|
${MY_PATH}/../tools/mailjet.sh "${PLAYER}" "<html><body><h1>Ciao ${PLAYER},</h1> Your TW is unplugged from Astroport : <a href='/ipfs/${TW}'>TW (${TW})</a>.<br>$(cat ~/.zen/game/players/${PLAYER}/secret.june)<br><h3>May the force be with you.</h3></body></html>" "BYE BYE MESSAGE"
|
||||||
|
|
||||||
echo "PLAYER IPNS KEYS UNPLUGED"
|
echo "PLAYER IPNS KEYS UNPLUGED"
|
||||||
echo "#######################"
|
echo "#######################"
|
||||||
|
|
|
@ -31,9 +31,15 @@ for i in $*; do
|
||||||
UMAPS=("$i" ${UMAPS[@]})
|
UMAPS=("$i" ${UMAPS[@]})
|
||||||
done
|
done
|
||||||
|
|
||||||
[[ ${#UMAPS[@]} == 0 ]] && UMAPS="_0.00_0.00"
|
## NO $i PARAMETERS - GET ALL UMAPS
|
||||||
|
if [[ ${#UMAPS[@]} == 0 ]]; then
|
||||||
|
MEMAPS=($(ls -td ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/* 2>/dev/null | rev | cut -d '/' -f 1 | rev | sort | uniq))
|
||||||
|
SWARMMAPS=($(ls -Gd ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/* 2>/dev/null | rev | cut -d '/' -f 1 | rev | sort | uniq))
|
||||||
|
combined=("${MEMAPS[@]}" "${SWARMMAPS[@]}")
|
||||||
|
UMAPS=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u))
|
||||||
|
fi
|
||||||
|
|
||||||
######## INIT REGIONS ########################
|
######## DETERMINE REGIONS FOR ALL UMAPS ################
|
||||||
for UMAP in ${UMAPS[@]}; do
|
for UMAP in ${UMAPS[@]}; do
|
||||||
|
|
||||||
LAT=$(echo ${UMAP} | cut -d '_' -f 2)
|
LAT=$(echo ${UMAP} | cut -d '_' -f 2)
|
||||||
|
@ -57,8 +63,8 @@ REGIONS=($(echo "${MYREGIONS[@]}" | tr ' ' '\n' | sort -u))
|
||||||
echo "ACTIVATED REGIONS : ${REGIONS[@]}"
|
echo "ACTIVATED REGIONS : ${REGIONS[@]}"
|
||||||
|
|
||||||
for REGION in ${REGIONS[@]}; do
|
for REGION in ${REGIONS[@]}; do
|
||||||
|
echo "-------------------------------------------------------------------"
|
||||||
echo "_____REGION ${REGION}"
|
echo "_____REGION ${REGION} $(date)"
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/${REGION}
|
mkdir -p ~/.zen/tmp/${MOATS}/${REGION}
|
||||||
REGLAT=$(echo ${REGION} | cut -d '_' -f 2)
|
REGLAT=$(echo ${REGION} | cut -d '_' -f 2)
|
||||||
REGLON=$(echo ${REGION} | cut -d '_' -f 3)
|
REGLON=$(echo ${REGION} | cut -d '_' -f 3)
|
||||||
|
@ -94,7 +100,8 @@ for REGION in ${REGIONS[@]}; do
|
||||||
## GET from IPNS
|
## GET from IPNS
|
||||||
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${REGION}/ /ipns/${YESTERDATEREGIONNS}/
|
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${REGION}/ /ipns/${YESTERDATEREGIONNS}/
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
## SHOULD NEED 12 SIGNATURES
|
||||||
|
## FULL REFRESH DEMO... ZEN CHAINING COMING LATER
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/${REGION}/RSS
|
mkdir -p ~/.zen/tmp/${MOATS}/${REGION}/RSS
|
||||||
rm -f ~/.zen/tmp/${MOATS}/${REGION}/RSS/_${REGLAT}_${REGLON}.week.rss.json
|
rm -f ~/.zen/tmp/${MOATS}/${REGION}/RSS/_${REGLAT}_${REGLON}.week.rss.json
|
||||||
|
@ -137,7 +144,7 @@ for REGION in ${REGIONS[@]}; do
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
## NODE PUBLISH REGION TODATENS LINK
|
## NODE PUBLISH REGION TODATENS LINK
|
||||||
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATEREGIONNS}'\" />" \
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATEREGIONNS}'\" />/_${REGLAT}_${REGLON}" \
|
||||||
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/REGIONS/_${REGLAT}_${REGLON}/_index.html
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/REGIONS/_${REGLAT}_${REGLON}/_index.html
|
||||||
|
|
||||||
#~ ## DEMO : PREPARE Ask.IA link - PROD will be launched during RUNTIME.
|
#~ ## DEMO : PREPARE Ask.IA link - PROD will be launched during RUNTIME.
|
||||||
|
@ -148,7 +155,7 @@ for REGION in ${REGIONS[@]}; do
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
echo "Numbers of REGION WEEK RSS : ${NL} + ${NS} : "${TOTL}
|
echo "Numbers of REGION WEEK RSS : ${NL} + ${NS} : "${TOTL}
|
||||||
|
|
||||||
rm ~/.zen/tmp/${MOATS}/${REGION}/N_*
|
rm ~/.zen/tmp/${MOATS}/${REGION}/N_* 2>/dev/null
|
||||||
|
|
||||||
echo ${TOTL} > ~/.zen/tmp/${MOATS}/${REGION}/N_${TOTL}
|
echo ${TOTL} > ~/.zen/tmp/${MOATS}/${REGION}/N_${TOTL}
|
||||||
|
|
||||||
|
@ -162,7 +169,7 @@ for REGION in ${REGIONS[@]}; do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IPFSPOP=$(ipfs add -rwq ~/.zen/tmp/${MOATS}/${REGION}/* | tail -n 1)
|
IPFSPOP=$(ipfs add -rwq ~/.zen/tmp/${MOATS}/${REGION}/* | tail -n 1)
|
||||||
ipfs name publish -k ${TODATE}${REGIONG1PUB} /ipfs/${IPFSPOP}
|
ipfs --timeout 180s name publish -k ${TODATE}${REGIONG1PUB} /ipfs/${IPFSPOP}
|
||||||
|
|
||||||
|
|
||||||
ipfs key rm ${REGIONG1PUB} ${YESTERDATE}${REGIONG1PUB} > /dev/null 2>&1
|
ipfs key rm ${REGIONG1PUB} ${YESTERDATE}${REGIONG1PUB} > /dev/null 2>&1
|
||||||
|
|
|
@ -18,14 +18,16 @@ SECTOR=$2 ## Sector identifier _0.0_0.0
|
||||||
MOATS=$3 ## temp cache access
|
MOATS=$3 ## temp cache access
|
||||||
INDEX=$4 ## SECTOR TW index file
|
INDEX=$4 ## SECTOR TW index file
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
[[ ! -s ${RSS} ]] && echo "BAD RSS INPUT" && exit 1
|
[[ ! -s ${RSS} ]] && echo "BAD RSS INPUT" && exit 1
|
||||||
|
[[ "$(cat ${RSS})" == "[]" ]] && echo "EMPTY RSS " && exit 0
|
||||||
|
|
||||||
[[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "BAD UPLANET CONTEXT" && exit 1
|
[[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "BAD UPLANET CONTEXT" && exit 1
|
||||||
[[ ! -s ${INDEX} ]] \
|
[[ ! -s ${INDEX} ]] \
|
||||||
&& sed "s~_SECTOR_~${SECTOR}~g" ${MY_PATH}/../templates/twsector.html > ${INDEX} \
|
&& sed "s~_SECTOR_~${SECTOR}~g" ${MY_PATH}/../templates/twsector.html > ${INDEX} \
|
||||||
&& echo "REFRESHING SECTOR FROM empty TEMPLATE *****"
|
&& echo "REFRESHING SECTOR FROM empty TEMPLATE *****"
|
||||||
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
## EXTRACT PLAYER FROM RSS FILE NAME
|
## EXTRACT PLAYER FROM RSS FILE NAME
|
||||||
PLAYER=$(echo ${RSS} | rev | cut -d '/' -f 1 | rev | sed "s~.rss.json~~g")
|
PLAYER=$(echo ${RSS} | rev | cut -d '/' -f 1 | rev | sed "s~.rss.json~~g")
|
||||||
## GET PLAYER INFORMATION
|
## GET PLAYER INFORMATION
|
||||||
|
@ -43,10 +45,10 @@ signatures=0
|
||||||
|
|
||||||
while read title; do
|
while read title; do
|
||||||
|
|
||||||
[[ ${floop} -gt 2 ]] && echo "0lder Tiddlers are similaR... BREAK" && break
|
[[ ${floop} -gt 1 ]] && echo "0lder Tiddlers are similaR... BREAK LOOP" && break
|
||||||
|
|
||||||
# FILTER Astroport and les than 4 characters title Tiddlers (ex: GPS, ...). extend to allow personnal Tiddlers
|
# FILTER "UPPERCASE" + Astroport Tid, less than 4 characters title Tiddlers (ex: GPS, ...).
|
||||||
[[ ${title} == "GettingStarted" || ${title::4} == ${title} || ${title} == "AstroID" || ${title} == "Voeu1.png" || ${title} == "Astroport" || ${title} == "MadeInZion" || ${title} == "G1Visa" || ${title} == "ZenCard" || ${title::5} == "Draft" ]] \
|
[[ ${title} == "GettingStarted" || "${title^^}" == "${title}" || "${title::3}" == '$:/' || ${title::4} == ${title} || ${title} == "AstroID" || ${title} == "Voeu1.png" || ${title} == "Astroport" || ${title} == "MadeInZion" || ${title} == "G1Visa" || ${title} == "ZenCard" || ${title::5} == "Draft" ]] \
|
||||||
&& echo "FILTERED TITLE ${title}" && continue
|
&& echo "FILTERED TITLE ${title}" && continue
|
||||||
|
|
||||||
## CHECK FOR TIDDLER WITH SAME TITTLE IN SECTOR TW
|
## CHECK FOR TIDDLER WITH SAME TITTLE IN SECTOR TW
|
||||||
|
@ -59,7 +61,7 @@ while read title; do
|
||||||
TMPTAGS=$(cat ~/.zen/tmp/${MOATS}/TMP.json | jq -r .[].tags)
|
TMPTAGS=$(cat ~/.zen/tmp/${MOATS}/TMP.json | jq -r .[].tags)
|
||||||
TMPEMAILS=($(echo "$TMPTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
|
TMPEMAILS=($(echo "$TMPTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
|
||||||
TMPSIGN=${#TMPEMAILS[@]}
|
TMPSIGN=${#TMPEMAILS[@]}
|
||||||
echo "INSIDE TIDDLER HAVE ${TMPSIGN} SIGNATURE(S)"
|
#~ echo "INSIDE TIDDLER HAVE ${TMPSIGN} SIGNATURE(S)"
|
||||||
|
|
||||||
if [[ "${ISHERE}" != "${title}" || ${TMPSIGN} == 0 ]]; then
|
if [[ "${ISHERE}" != "${title}" || ${TMPSIGN} == 0 ]]; then
|
||||||
|
|
||||||
|
@ -79,32 +81,34 @@ while read title; do
|
||||||
&& rm ${INDEX} \
|
&& rm ${INDEX} \
|
||||||
&& mv ~/.zen/tmp/${MOATS}/${SECTOR}/${SECTOR}.html ${INDEX} \
|
&& mv ~/.zen/tmp/${MOATS}/${SECTOR}/${SECTOR}.html ${INDEX} \
|
||||||
&& ((gloops++)) \
|
&& ((gloops++)) \
|
||||||
&& echo "SECTOR (${gloops}) : ${title}" \
|
&& echo "GLOOPS (${gloops}) : ${title}" \
|
||||||
&& signatures=$((signatures + TMPSIGN))
|
&& signatures=$((signatures + TMPSIGN))
|
||||||
|
|
||||||
[[ ! -s ${INDEX} ]] && echo "ERROR. TW did not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1
|
[[ ! -s ${INDEX} ]] && echo "ERROR. TW could not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
## SAME TIDDLER
|
## SAME TIDDLER
|
||||||
echo "TIDDLER WITH TITLE $title and more than 1 signature ALREADY EXISTS..."
|
echo "TIDDLER : $title (${TMPSIGN} signature(s)) ... ALREADY EXISTS..."
|
||||||
|
|
||||||
cat ~/.zen/tmp/${MOATS}/TMP.json | jq .[] > ~/.zen/tmp/${MOATS}/INSIDE.json
|
## Remove [] and put inline to compare
|
||||||
|
cat ~/.zen/tmp/${MOATS}/TMP.json | jq -rc .[] > ~/.zen/tmp/${MOATS}/INSIDE.json
|
||||||
cat "${RSS}" | jq -rc ".[] | select(.title == \"$title\")" > ~/.zen/tmp/${MOATS}/NEW.json
|
cat "${RSS}" | jq -rc ".[] | select(.title == \"$title\")" > ~/.zen/tmp/${MOATS}/NEW.json
|
||||||
|
|
||||||
if [[ ! $(diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json) ]]; then
|
if [[ $(diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json) == "" ]]; then
|
||||||
echo "... Tiddlers are similar ..."
|
echo "... Tiddlers are similar ..."
|
||||||
((floop++))
|
((floop++))
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
floop=1
|
floop=1
|
||||||
echo
|
## LOG TIDDLERS
|
||||||
echo "=========== INSIDE.json"
|
#~ echo
|
||||||
cat ~/.zen/tmp/${MOATS}/INSIDE.json | jq -c
|
#~ echo "=========== INSIDE.json"
|
||||||
echo
|
#~ cat ~/.zen/tmp/${MOATS}/INSIDE.json | jq -c
|
||||||
echo "=========== NEW.json"
|
#~ echo
|
||||||
cat ~/.zen/tmp/${MOATS}/NEW.json | jq -c
|
#~ echo "=========== NEW.json"
|
||||||
echo
|
#~ cat ~/.zen/tmp/${MOATS}/NEW.json | jq -c
|
||||||
|
#~ echo
|
||||||
## TODO EXTEND CONTROL TO text & ipfs & _canonical_url
|
## TODO EXTEND CONTROL TO text & ipfs & _canonical_url
|
||||||
## NEED SIGNATURES & TIDDLER SIMILARITY TO COME UP
|
## NEED SIGNATURES & TIDDLER SIMILARITY TO COME UP
|
||||||
|
|
||||||
|
@ -119,6 +123,12 @@ while read title; do
|
||||||
ISIGN=${#IEMAILS[@]}
|
ISIGN=${#IEMAILS[@]}
|
||||||
echo "Inside Tiddler $ISIGN signatures : ${IEMAILS[*]}"
|
echo "Inside Tiddler $ISIGN signatures : ${IEMAILS[*]}"
|
||||||
|
|
||||||
|
## New should have more signatures than Inside
|
||||||
|
[[ ${NSIGN} -le ${ISIGN} ]] && echo "Most signed already in..." && continue
|
||||||
|
## UPLANET GRID COLLISION PARAM ###
|
||||||
|
# [[ ${NSIGN} -le 3 ]] && update TW OR continue
|
||||||
|
# https://www.copylaradio.com/blog/blog-1/post/decentralized-information-ecosystem-51
|
||||||
|
|
||||||
if [[ "${NEMAILS[*]}" != "${IEMAILS[*]}" ]]; then
|
if [[ "${NEMAILS[*]}" != "${IEMAILS[*]}" ]]; then
|
||||||
|
|
||||||
## SEARCH FOR DIFFERENCE IN EMAIL SIGNATURES TAGS
|
## SEARCH FOR DIFFERENCE IN EMAIL SIGNATURES TAGS
|
||||||
|
@ -150,6 +160,9 @@ while read title; do
|
||||||
NEWTID=$(ipfs add -q ~/.zen/tmp/${MOATS}/NEW.json | tail -n 1)
|
NEWTID=$(ipfs add -q ~/.zen/tmp/${MOATS}/NEW.json | tail -n 1)
|
||||||
INSIDETID=$(ipfs add -q ~/.zen/tmp/${MOATS}/INSIDE.json | tail -n 1)
|
INSIDETID=$(ipfs add -q ~/.zen/tmp/${MOATS}/INSIDE.json | tail -n 1)
|
||||||
|
|
||||||
|
###############################
|
||||||
|
## TODO : check STAR level and activate auto merge
|
||||||
|
|
||||||
for email in "${unique_combined[@]}"; do
|
for email in "${unique_combined[@]}"; do
|
||||||
|
|
||||||
echo "<html>
|
echo "<html>
|
||||||
|
@ -163,35 +176,43 @@ echo "<html>
|
||||||
}
|
}
|
||||||
</style></head>
|
</style></head>
|
||||||
<body>
|
<body>
|
||||||
<h1>(ᵔ◡◡ᵔ)</h1>
|
<h1>$(date)</h1>
|
||||||
|
|
||||||
Tiddler with same title is existing in ${unique_combined[*]} TW(s)
|
<h2>$title</h2>
|
||||||
|
Tiddler appears in <b>${unique_combined[*]}</b> TW(s)
|
||||||
<br>
|
<br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>$title</li>
|
|
||||||
<li><a href='$(myIpfsGw)/ipfs/${INSIDETID}'>Actual Tiddler</a></li>
|
<li><a href='$(myIpfsGw)/ipfs/${INSIDETID}'>Actual Tiddler</a></li>
|
||||||
<li><a href='$(myIpfsGw)/ipfs/${NEWTID}'>NEW Tiddler</a> being introduced by : ${NUNIQUE[*]}</li>
|
<li><a href='$(myIpfsGw)/ipfs/${NEWTID}'>NEW Tiddler</a> being introduced by : ${NUNIQUE[*]}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
To Accept<br>
|
MERGE : <br>
|
||||||
${COMMON[*]} have to copy <a href='$(myIpfsGw)/ipfs/${NEWTID}'>NEW Tiddler</a> in their TW
|
${COMMON[*]} import <a href='$(myIpfsGw)/ipfs/${NEWTID}'>NEW Tiddler</a> in your TW
|
||||||
<br><br>
|
<br><br>
|
||||||
To Refuse<br>
|
or FORK : <br>
|
||||||
${NUNIQUE[*]} must fork by deleting or modifying New Tiddler title.
|
${NUNIQUE[*]} by deleting or modifying New Tiddler title.
|
||||||
<br>
|
<br>
|
||||||
<h2><a href='$(myIpfsGw)${VDONINJA}/?room=${MOATS}'>Actual Tiddler</a>Engage discussion about it...</a></h2>
|
<h2><a href='$(myIpfsGw)${VDONINJA}/?room=${MOATS}'>Arrange a Video Meeting...</a></h2>
|
||||||
</body></html>" > ~/.zen/tmp/${MOATS}/g1message
|
</body></html>" > ~/.zen/tmp/${MOATS}/g1message
|
||||||
|
|
||||||
${MY_PATH}/../tools/mailjet.sh "$email" ~/.zen/tmp/${MOATS}/g1message "TIDDLER COLLISION"
|
${MY_PATH}/../tools/mailjet.sh "$email" ~/.zen/tmp/${MOATS}/g1message "COLLISION ${title} : ${unique_combined[*]}"
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
## TITLE FORK TO BE SOLVED. NEED "SAME EMAILS SIGNATURES"
|
## TITLE FORK TO BE SOLVED. NEED "SAME EMAILS SIGNATURES"
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "SIGNATURES ARE THE SAME : ${NEMAILS[*]}"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## CHECK DIFFERENCE
|
echo "______________________"
|
||||||
|
echo "CHECKING DIFFERENCES"
|
||||||
|
diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json
|
||||||
|
|
||||||
|
## TODO CHECK MORE DIFFERENCE
|
||||||
DATENEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .modified)
|
DATENEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .modified)
|
||||||
TEXTNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .text)
|
TEXTNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .text)
|
||||||
TAGSNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .tags)
|
TAGSNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .tags)
|
||||||
|
@ -205,7 +226,7 @@ To Refuse<br>
|
||||||
|
|
||||||
if [ ${DATENEW} -gt ${DATEINSIDE} ]; then
|
if [ ${DATENEW} -gt ${DATEINSIDE} ]; then
|
||||||
|
|
||||||
echo "Newer Tiddler version... Updating TW"
|
echo "Newer Tiddler version... Updating SECTOR TW"
|
||||||
|
|
||||||
tiddlywiki --load ${INDEX} \
|
tiddlywiki --load ${INDEX} \
|
||||||
--import ~/.zen/tmp/${MOATS}/NEW.json "application/json" \
|
--import ~/.zen/tmp/${MOATS}/NEW.json "application/json" \
|
||||||
|
|
|
@ -60,8 +60,9 @@ SECTORS=($(echo "${MYSECTORS[@]}" | tr ' ' '\n' | sort -u))
|
||||||
echo "ACTIVATED SECTORS : ${SECTORS[@]}"
|
echo "ACTIVATED SECTORS : ${SECTORS[@]}"
|
||||||
|
|
||||||
for SECTOR in ${SECTORS[@]}; do
|
for SECTOR in ${SECTORS[@]}; do
|
||||||
|
echo "############################################"
|
||||||
echo "_____SECTOR ${SECTOR}"
|
echo "_____SECTOR ${SECTOR}"
|
||||||
|
echo "################################ $(date)"
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/
|
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/
|
||||||
SLAT=$(echo ${SECTOR} | cut -d '_' -f 2)
|
SLAT=$(echo ${SECTOR} | cut -d '_' -f 2)
|
||||||
SLON=$(echo ${SECTOR} | cut -d '_' -f 3)
|
SLON=$(echo ${SECTOR} | cut -d '_' -f 3)
|
||||||
|
@ -74,6 +75,7 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
COINS=$($MY_PATH/../tools/COINScheck.sh ${G1PUB} | tail -n 1)
|
COINS=$($MY_PATH/../tools/COINScheck.sh ${G1PUB} | tail -n 1)
|
||||||
ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1)
|
ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1)
|
||||||
|
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${SECTOR}.priv "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}"
|
||||||
ipfs key rm ${G1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT
|
ipfs key rm ${G1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT
|
||||||
SECTORNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${SECTOR}.priv)
|
SECTORNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${SECTOR}.priv)
|
||||||
|
|
||||||
|
@ -97,22 +99,21 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
#~ ## IPFS GET ONLINE YESTERDATE SECTORNS
|
#~ ## IPFS GET ONLINE YESTERDATE SECTORNS
|
||||||
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/
|
ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
||||||
# Try retieve memory from UPlanet Zen Memory
|
# Try retieve memory from UPlanet Zen Memory
|
||||||
[[ ${ZEN} -gt 0 ]] \
|
[[ ${ZEN} -gt 0 ]] \
|
||||||
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
||||||
&& ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}"
|
&& ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}" "${G1PUB}"
|
||||||
fi
|
fi
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
echo "_____SECTOR${SECTOR} GET time was "`expr $end - $start` seconds.
|
echo "_____SECTOR${SECTOR} GET time was "`expr $end - $start` seconds.
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
|
||||||
### ZEN
|
### SHOW ${SECTOR}
|
||||||
|
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/${SECTOR}
|
||||||
|
|
||||||
## CONTROL CHAIN TIME
|
## CONTROL CHAIN TIME
|
||||||
ZCHAIN=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_chain | rev | cut -d ':' -f 1 | rev 2>/dev/null)
|
ZCHAIN=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_chain | rev | cut -d ':' -f 1 | rev 2>/dev/null)
|
||||||
ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_moats 2>/dev/null)
|
ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_moats 2>/dev/null)
|
||||||
|
@ -169,6 +170,15 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
mv ${UREFRESH}.shuf ${UREFRESH}
|
mv ${UREFRESH}.shuf ${UREFRESH}
|
||||||
echo "SETTING NEXT REFRESHER : $(cat ${UREFRESH} | head -n 1)"
|
echo "SETTING NEXT REFRESHER : $(cat ${UREFRESH} | head -n 1)"
|
||||||
|
|
||||||
|
|
||||||
|
############ 101 ZEN REFILL ?!
|
||||||
|
CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev)
|
||||||
|
[[ ${COINS} == "" || ${COINS} == "null" ]] \
|
||||||
|
&& [[ ${ZEN} -lt 100 && ${CURRENT} != "" ]] \
|
||||||
|
&& MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \
|
||||||
|
&& ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "11.1" "${G1PUB}" "UPLANET:101ZEN:${SECTOR}:${MIUSER}" \
|
||||||
|
&& echo "UPLANET:101:${SECTOR}:${MIUSER}" && echo " ~~~ (♥‿‿♥) ~~ ${SECTOR} ~~ (♥‿‿♥) ~~~ "
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
## FEED SECTOR TW WITH UMAPS RSS
|
## FEED SECTOR TW WITH UMAPS RSS
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/TW
|
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/TW
|
||||||
|
@ -183,6 +193,15 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
## SET SECTOR
|
## SET SECTOR
|
||||||
sed -i "s~_SECTOR_~${SECTOR}~g" ${INDEX}
|
sed -i "s~_SECTOR_~${SECTOR}~g" ${INDEX}
|
||||||
|
|
||||||
|
## REFRESH ALL TWs in that SECTOR
|
||||||
|
rm -Rf ~/.zen/tmp/${MOATS}/${SECTOR}/TWz
|
||||||
|
mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/TWz
|
||||||
|
|
||||||
|
cp -rf ~/.zen/tmp/swarm/12D*/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/* \
|
||||||
|
~/.zen/tmp/${MOATS}/${SECTOR}/TWz
|
||||||
|
cp -rf ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/* \
|
||||||
|
~/.zen/tmp/${MOATS}/${SECTOR}/TWz 2>/dev/null
|
||||||
|
|
||||||
## GET ALL RSS json's AND Feed SECTOR TW with it
|
## GET ALL RSS json's AND Feed SECTOR TW with it
|
||||||
RSSNODE=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/RSS/*.rss.json 2>/dev/null))
|
RSSNODE=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/RSS/*.rss.json 2>/dev/null))
|
||||||
NL=${#RSSNODE[@]}
|
NL=${#RSSNODE[@]}
|
||||||
|
@ -216,7 +235,6 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
echo ${ZEN} > ~/.zen/tmp/${MOATS}/${SECTOR}/ZEN
|
echo ${ZEN} > ~/.zen/tmp/${MOATS}/${SECTOR}/ZEN
|
||||||
|
|
||||||
echo "Number of RSS : "${TOTL}
|
echo "Number of RSS : "${TOTL}
|
||||||
rm ~/.zen/tmp/${MOATS}/${SECTOR}/N_RSS* ## TODO REMOVE
|
|
||||||
echo ${TOTL} > ~/.zen/tmp/${MOATS}/${SECTOR}/N
|
echo ${TOTL} > ~/.zen/tmp/${MOATS}/${SECTOR}/N
|
||||||
|
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
@ -230,8 +248,8 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
" > ~/.zen/tmp/world.js
|
" > ~/.zen/tmp/world.js
|
||||||
floop=1
|
floop=1
|
||||||
|
|
||||||
SWARMTW=($(ls ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_${SLAT}*_${SLON}*/TW/*/index.html 2>/dev/null))
|
SWARMTW=($(ls ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/*/index.html 2>/dev/null))
|
||||||
NODETW=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}*_${SLON}*/TW/*/index.html 2>/dev/null))
|
NODETW=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/*/index.html 2>/dev/null))
|
||||||
TWFILES=("${SWARMTW[@]}" "${NODETW[@]}")
|
TWFILES=("${SWARMTW[@]}" "${NODETW[@]}")
|
||||||
|
|
||||||
for TWRED in ${TWFILES[@]}; do
|
for TWRED in ${TWFILES[@]}; do
|
||||||
|
@ -272,7 +290,7 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
## ADD SECTOR ZENPUB.png & INFO.png
|
## ADD SECTOR ZENPUB.png & INFO.png
|
||||||
convert -font 'Liberation-Sans' \
|
convert -font 'Liberation-Sans' \
|
||||||
-pointsize 80 -fill purple -draw 'text 50,120 "'"${ZEN} Zen"'"' \
|
-pointsize 80 -fill purple -draw 'text 50,120 "'"${ZEN} Zen"'"' \
|
||||||
-pointsize 30 -fill purple -draw 'text 40, 180 "'"${SECTOR}"'"' \
|
-pointsize 30 -fill purple -draw 'text 40, 180 "'"${SECTOR}:${YESTERDATE}"'"' \
|
||||||
$MY_PATH/../images/G1WorldMap.png "${HOME}/.zen/tmp/${MOATS}/${SECTOR}.png"
|
$MY_PATH/../images/G1WorldMap.png "${HOME}/.zen/tmp/${MOATS}/${SECTOR}.png"
|
||||||
# CREATE G1PUB AMZQR
|
# CREATE G1PUB AMZQR
|
||||||
amzqr ${G1PUB} -l H -p "$MY_PATH/../images/zenticket.png" -c -n ZENPUB.png -d ~/.zen/tmp/${MOATS}/${SECTOR}/
|
amzqr ${G1PUB} -l H -p "$MY_PATH/../images/zenticket.png" -c -n ZENPUB.png -d ~/.zen/tmp/${MOATS}/${SECTOR}/
|
||||||
|
@ -338,7 +356,7 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
###############################
|
###############################
|
||||||
echo "% PUBLISHING ${SECTOR} ${myIPFS}/ipns/${TODATENS}"
|
echo "% PUBLISHING ${SECTOR} ${myIPFS}/ipns/${TODATENS}"
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
ipfs name publish -k ${TODATE}${G1PUB} /ipfs/${IPFSPOP}
|
ipfs --timeout 240s name publish -k ${TODATE}${G1PUB} /ipfs/${IPFSPOP}
|
||||||
ipfs key rm ${YESTERDATE}${G1PUB} ${G1PUB} > /dev/null 2>&1
|
ipfs key rm ${YESTERDATE}${G1PUB} ${G1PUB} > /dev/null 2>&1
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
|
@ -356,7 +374,7 @@ for SECTOR in ${SECTORS[@]}; do
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
## NODE CACHE SECTOR TODATENS
|
## NODE CACHE SECTOR TODATENS
|
||||||
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATENS}'\" />" \
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATENS}'\" />_${SLAT}_${SLON}" \
|
||||||
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/SECTORS/_${REGLAT}_${REGLON}/_${SLAT}_${SLON}/_index.html
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/SECTORS/_${REGLAT}_${REGLON}/_${SLAT}_${SLON}/_index.html
|
||||||
|
|
||||||
## TODO FILTER INFORMATION WITH MULTIPLE SIGNATURES (DONE in REGION.refresh.sh)
|
## TODO FILTER INFORMATION WITH MULTIPLE SIGNATURES (DONE in REGION.refresh.sh)
|
||||||
|
|
|
@ -18,7 +18,7 @@ echo "
|
||||||
-------------------------
|
-------------------------
|
||||||
\ ^__^
|
\ ^__^
|
||||||
\ (oo)\_______
|
\ (oo)\_______
|
||||||
(__)\ )\/\
|
(__)\ )\\/\\
|
||||||
||----w |
|
||----w |
|
||||||
|| ||
|
|| ||
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
|
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
echo
|
echo
|
||||||
echo "____________REFRESHING ${UMAP}__________"
|
echo "-------------------------------------------------------------------"
|
||||||
|
echo "____________REFRESHING ${UMAP}__________ $(date)"
|
||||||
LAT=$(echo ${UMAP} | cut -d '_' -f 2)
|
LAT=$(echo ${UMAP} | cut -d '_' -f 2)
|
||||||
LON=$(echo ${UMAP} | cut -d '_' -f 3)
|
LON=$(echo ${UMAP} | cut -d '_' -f 3)
|
||||||
|
|
||||||
|
@ -77,37 +78,40 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
|
|
||||||
## ORIGIN ##########################################################
|
## ORIGIN ##########################################################
|
||||||
## CALCULATE INITIAL UMAP GEOSPACIAL IPNS KEY
|
## CALCULATE INITIAL UMAP GEOSPACIAL IPNS KEY
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}"
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}"
|
||||||
ipfs key rm ${G1PUB} > /dev/null 2>&1
|
ipfs key rm ${G1PUB} > /dev/null 2>&1
|
||||||
UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${UMAP}.priv)
|
UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${UMAP}.priv)
|
||||||
echo "ORIGIN : ${myIPFS}/ipns/${UMAPNS}"
|
echo "ORIGIN : ${myIPFS}/ipns/${UMAPNS}"
|
||||||
|
|
||||||
###################### SPATIO TEMPORAL KEYS
|
###################### SPATIO TEMPORAL KEYS
|
||||||
## TODATE #########################################
|
## TODATE #########################################
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${TODATE}.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${TODATE}.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
||||||
ipfs key rm ${TODATE}${G1PUB} > /dev/null 2>&1
|
ipfs key rm ${TODATE}${G1PUB} > /dev/null 2>&1
|
||||||
TODATENS=$(ipfs key import ${TODATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${TODATE}.priv)
|
TODATENS=$(ipfs key import ${TODATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${TODATE}.priv)
|
||||||
echo "TODAY : ${myIPFS}/ipns/${TODATENS}"
|
echo "TODAY : ${myIPFS}/ipns/${TODATENS}"
|
||||||
|
|
||||||
## YESTERDATE ###############
|
## YESTERDATE ###############
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}"
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}"
|
||||||
ipfs key rm ${YESTERDATE}${G1PUB} > /dev/null 2>&1
|
ipfs key rm ${YESTERDATE}${G1PUB} > /dev/null 2>&1
|
||||||
YESTERDATENS=$(ipfs key import ${YESTERDATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv)
|
YESTERDATENS=$(ipfs key import ${YESTERDATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv)
|
||||||
echo "YESTERDAY : ${myIPFS}/ipns/${YESTERDATENS}"
|
echo "YESTERDAY : ${myIPFS}/ipns/${YESTERDATENS}"
|
||||||
|
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
start=`date +%s`
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
echo "## IPFS GET YESTERDATENS"
|
|
||||||
mkdir ~/.zen/tmp/${MOATS}/${UMAP}
|
mkdir ~/.zen/tmp/${MOATS}/${UMAP}
|
||||||
ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/
|
echo "## IPFS GET YESTERDATENS"
|
||||||
|
ipfs --timeout 300s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "(╥☁╥ ) swarm memory empty (╥☁╥ )"
|
echo "(╥☁╥ ) swarm online memory empty (╥☁╥ )"
|
||||||
# Try retieve memory from UPlanet Zen Memory
|
# Try retieve memory from UPlanet Zen Memory
|
||||||
[[ ${ZEN} -gt 0 ]] \
|
[[ ${ZEN} -gt 0 ]] \
|
||||||
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
&& echo "INTERCOM Refreshing from ZEN MEMORY" \
|
||||||
&& ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}"
|
&& ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}" "${G1PUB}"
|
||||||
fi
|
fi
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
end=`date +%s`
|
||||||
|
echo "_____UMAP${UMAP} GET time was "`expr $end - $start` seconds.
|
||||||
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
|
|
||||||
## FORMAT CONTROL WARNING
|
## FORMAT CONTROL WARNING
|
||||||
|
@ -147,15 +151,15 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
[[ ! $(echo ${STRAPS[@]} | grep ${ACTINGNODE}) ]] && ACTINGNODE=${STRAPS[0]}
|
[[ ! $(echo ${STRAPS[@]} | grep ${ACTINGNODE}) ]] && ACTINGNODE=${STRAPS[0]}
|
||||||
|
|
||||||
# ++++++++++++++++++++ - - - - FIND LAST TREATMENT TIME
|
# ++++++++++++++++++++ - - - - FIND LAST TREATMENT TIME
|
||||||
ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_moats 2>/dev/null) || ZMOATS=${MOATS}
|
ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_moats 2>/dev/null) || ZMOATS=${MOATS}
|
||||||
# ZMOATS SHOULD BE MORE THAT 5 HOURS.
|
# ZMOATS SHOULD BE MORE THAT 5 HOURS.
|
||||||
MOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS})
|
MOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS})
|
||||||
ZMOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${ZMOATS})
|
ZMOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${ZMOATS})
|
||||||
DIFF_SECONDS=$((MOATS_SECONDS - ZMOATS_SECONDS))
|
DIFF_SECONDS=$((MOATS_SECONDS - ZMOATS_SECONDS))
|
||||||
hours=$((DIFF_SECONDS / 3600))
|
hours=$((DIFF_SECONDS / 3600))
|
||||||
minutes=$(( (DIFF_SECONDS % 3600) / 60 ))
|
minutes=$(( (DIFF_SECONDS % 3600) / 60 ))
|
||||||
seconds=$((DIFF_SECONDS % 60))
|
seconds=$((DIFF_SECONDS % 60))
|
||||||
echo "UMAP DATA is ${hours} hours ${minutes} minutes ${seconds} seconds "
|
echo "UMAP DATA is ${hours} hours ${minutes} minutes ${seconds} seconds "
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
## IF NOT UPDATED FOR TOO LONG
|
## IF NOT UPDATED FOR TOO LONG
|
||||||
|
@ -171,12 +175,12 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
echo "------8<-------------8<------------------8<-----------------8<-----------------8<"
|
echo "------8<-------------8<------------------8<-----------------8<-----------------8<"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
########################################
|
################################################################################
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PASSING THERE MAKE IPFSNODEID UMAP REFRESHER
|
# ~~~~~~~~~~~~~ GOING FURTHER ~~~ MEANS IPFSNODEID IS UMAP REFRESHER ~~~~~~~~~~~
|
||||||
|
################################################################################
|
||||||
## NEXT REFRESHER
|
## NEXT REFRESHER
|
||||||
# TODO: INTRODUCE NODE BALANCE AND CHOOSE THE MOST CONFIDENT ONE
|
# TODO: INTRODUCE NODE BALANCE AND CHOOSE THE MOST CONFIDENT ONE
|
||||||
rm ${UREFRESH}
|
rm ${UREFRESH}
|
||||||
for STRAP in ${STRAPS[@]}; do
|
for STRAP in ${STRAPS[@]}; do
|
||||||
echo ${STRAP} >> ${UREFRESH} ## FILL UMAP.refresher file with all STRAPS
|
echo ${STRAP} >> ${UREFRESH} ## FILL UMAP.refresher file with all STRAPS
|
||||||
done
|
done
|
||||||
|
@ -187,6 +191,14 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
echo ">> NEXT REFRESHER WILL BE $(cat ${UREFRESH} | head -n 1)"
|
echo ">> NEXT REFRESHER WILL BE $(cat ${UREFRESH} | head -n 1)"
|
||||||
######################################################## # NODE SELECTION in UMAP.refresher
|
######################################################## # NODE SELECTION in UMAP.refresher
|
||||||
|
|
||||||
|
############ 101 ZEN REFILL ?!
|
||||||
|
CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev)
|
||||||
|
[[ ${COINS} == "" || ${COINS} == "null" ]] \
|
||||||
|
&& [[ ${ZEN} -lt 100 && ${CURRENT} != "" ]] \
|
||||||
|
&& MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \
|
||||||
|
&& ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "11.1" "${G1PUB}" "UPLANET:101ZEN:${UMAP}:${MIUSER}" \
|
||||||
|
&& echo "UPLANET:101:${UMAP}:${MIUSER}" && echo " ~~~ (♥‿‿♥) ~~ _${LAT}_${LON} ~~ (♥‿‿♥) ~~~ "
|
||||||
|
|
||||||
# %%%%%%%%%% ##################################################
|
# %%%%%%%%%% ##################################################
|
||||||
## SECTOR LINKING >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>${SLAT}_${SLON}
|
## SECTOR LINKING >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>${SLAT}_${SLON}
|
||||||
# %%%%%%%%%% ##################################################
|
# %%%%%%%%%% ##################################################
|
||||||
|
@ -229,6 +241,70 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON}
|
mkdir -p ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON}
|
||||||
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATEREGIONNS}'\" />" > ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON}/index.html
|
echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${TODATEREGIONNS}'\" />" > ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON}/index.html
|
||||||
|
|
||||||
|
####################################################################################
|
||||||
|
######################## NEXTNS : UMAP, SECTOR, REGION ## BOOSTRAP TO SWARM ##
|
||||||
|
mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/
|
||||||
|
####################################################################################
|
||||||
|
#################################################################################
|
||||||
|
## DEMAIN DATA
|
||||||
|
####################################################################################
|
||||||
|
## UMAP NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.umap
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${LAT}" "${DEMAINDATE}${UPLANETNAME}${LON}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv)
|
||||||
|
echo "UMAP NEXTNS : ${myIPFS}/ipns/${NEXTNS}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
rm ~/.zen/tmp/${MOATS}/next.priv
|
||||||
|
## BOOSTRAP SWARM PUBLICATION _next.umapns
|
||||||
|
echo "${G1PUB}:${DEMAINDATE}:${NEXTNS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.umapns
|
||||||
|
## IN UMAP KEY PUBLICATION
|
||||||
|
cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.umapns \
|
||||||
|
~/.zen/tmp/${MOATS}/${UMAP}/
|
||||||
|
## SECTOR NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.sector
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${SECTOR}" "${DEMAINDATE}${UPLANETNAME}${SECTOR}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv)
|
||||||
|
echo "SECTOR NEXTNS : ${myIPFS}/ipns/${NEXTNS}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
rm ~/.zen/tmp/${MOATS}/next.priv
|
||||||
|
## BOOSTRAP SWARM PUBLICATION _next.sectorns
|
||||||
|
echo "${SECTORG1PUB}:${DEMAINDATE}:${NEXTNS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.sectorns
|
||||||
|
## IN UMAP KEY PUBLICATION
|
||||||
|
cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.sectorns \
|
||||||
|
~/.zen/tmp/${MOATS}/${UMAP}/
|
||||||
|
## REGION NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.region
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${REGION}" "${DEMAINDATE}${UPLANETNAME}${REGION}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv)
|
||||||
|
echo "REGION NEXTNS : ${myIPFS}/ipns/${NEXTNS}"
|
||||||
|
ipfs key rm "next" > /dev/null 2>&1
|
||||||
|
rm ~/.zen/tmp/${MOATS}/next.priv
|
||||||
|
## BOOSTRAP SWARM PUBLICATION _next.regionns
|
||||||
|
echo "${REGIONG1PUB}:${DEMAINDATE}:${NEXTNS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.regionns
|
||||||
|
## IN UMAP KEY PUBLICATION
|
||||||
|
cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.regionns \
|
||||||
|
~/.zen/tmp/${MOATS}/${UMAP}/
|
||||||
|
####################################################################################
|
||||||
|
## TODATE DATA
|
||||||
|
####################################################################################
|
||||||
|
echo "${TODATENS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS
|
||||||
|
echo "${SECTORNS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORNS
|
||||||
|
echo "${TODATEREGIONNS}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/REGIONNS
|
||||||
|
echo "${G1PUB}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB
|
||||||
|
echo "${SECTORG1PUB}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORG1PUB
|
||||||
|
echo "${REGIONG1PUB}" \
|
||||||
|
> ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/REGIONG1PUB
|
||||||
|
|
||||||
|
####################################################################################
|
||||||
|
|
||||||
# %%%%%%%%%% ##################################################
|
# %%%%%%%%%% ##################################################
|
||||||
## COLLECT RSS FROM ALL PLAYERS WITH SAME UMAP IN SWARM MEMORY /UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??
|
## COLLECT RSS FROM ALL PLAYERS WITH SAME UMAP IN SWARM MEMORY /UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??
|
||||||
# %%%%%%%%%% ##################################################
|
# %%%%%%%%%% ##################################################
|
||||||
|
@ -400,6 +476,8 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
-e "s~_UPUPZONE_~REGION ${REGION}~g" \
|
-e "s~_UPUPZONE_~REGION ${REGION}~g" \
|
||||||
-e "s~_UPUPZONENS_~${TODATEREGIONNS}~g" \
|
-e "s~_UPUPZONENS_~${TODATEREGIONNS}~g" \
|
||||||
-e "s~_PHONEBOOTH_~${PHONEBOOTH}~g" \
|
-e "s~_PHONEBOOTH_~${PHONEBOOTH}~g" \
|
||||||
|
-e "s~_CESIUMIPFS_~${CESIUMIPFS}~g" \
|
||||||
|
-e "s~_G1PUB_~${G1PUB}~g" \
|
||||||
-e "s~_DATE_~$(date +%A-%d_%m_%Y)~g" \
|
-e "s~_DATE_~$(date +%A-%d_%m_%Y)~g" \
|
||||||
-e "s~_UPLANETLINK_~${EARTHCID}/map_render.html\?southWestLat=${LAT}\&southWestLon=${LON}\°=0.01~g" \
|
-e "s~_UPLANETLINK_~${EARTHCID}/map_render.html\?southWestLat=${LAT}\&southWestLon=${LON}\°=0.01~g" \
|
||||||
-e "s~http://127.0.0.1:8080~~g" \
|
-e "s~http://127.0.0.1:8080~~g" \
|
||||||
|
@ -430,7 +508,7 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
## ZEN CHAINING
|
## ZEN CHAINING
|
||||||
# Send 1 Zen to UPlanet SECTORG1PUB Wallet containing REGION TW HASH
|
# Send 1 Zen to UPlanet SECTORG1PUB Wallet containing REGION TW HASH
|
||||||
INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${UMAPROOT}"
|
INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${UMAPROOT}"
|
||||||
echo "> INTERCOM ${INTERCOM} (${ZEN} ZEN)"
|
echo "> INTERCOM ${INTERCOM} (${ZEN} ZEN > 11 ?)"
|
||||||
if [[ ${ZEN} -gt 11 ]]; then
|
if [[ ${ZEN} -gt 11 ]]; then
|
||||||
echo "---ZZZ-- UMAP 2 SECTOR ZEN CHAINING ---ZZZ------ZZZ----"
|
echo "---ZZZ-- UMAP 2 SECTOR ZEN CHAINING ---ZZZ------ZZZ----"
|
||||||
${MY_PATH}/../tools/PAY4SURE.sh ~/.zen/tmp/${MOATS}/${UMAP}.dunikey "0.1" "${SECTORG1PUB}" "${INTERCOM}"
|
${MY_PATH}/../tools/PAY4SURE.sh ~/.zen/tmp/${MOATS}/${UMAP}.dunikey "0.1" "${SECTORG1PUB}" "${INTERCOM}"
|
||||||
|
@ -444,7 +522,7 @@ for UMAP in ${unique_combined[@]}; do
|
||||||
|
|
||||||
echo "PUBLISHING ${TODATE} UMAPROOT : ${myIPFS}/ipfs/${UMAPROOT}"
|
echo "PUBLISHING ${TODATE} UMAPROOT : ${myIPFS}/ipfs/${UMAPROOT}"
|
||||||
|
|
||||||
ipfs name publish --key=${TODATE}${G1PUB} /ipfs/${UMAPROOT}
|
ipfs --timeout 300s name publish --key=${TODATE}${G1PUB} /ipfs/${UMAPROOT}
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
echo "(UMAP) ${UMAP} ${TODATE} PUBLISH time was "`expr $end - $start` seconds.
|
echo "(UMAP) ${UMAP} ${TODATE} PUBLISH time was "`expr $end - $start` seconds.
|
||||||
|
|
||||||
|
|
|
@ -19,29 +19,33 @@ SALT="$1"
|
||||||
PEPPER="$2"
|
PEPPER="$2"
|
||||||
PLAYER="$3"
|
PLAYER="$3"
|
||||||
PSEUDO="$4"
|
PSEUDO="$4"
|
||||||
|
[[ $PSEUDO == "" ]] && PSEUDO="Anonymous"
|
||||||
|
|
||||||
## Fill UP TW with VIDEO URL or UMAP NS
|
## Fill UP TW with VIDEO URL or UMAP NS
|
||||||
URL="$5"
|
URL="$5"
|
||||||
|
[[ $URL == "" ]] && URL="_URL_"
|
||||||
|
|
||||||
## UPLANET SECTOR
|
## UPLANET UMAP
|
||||||
LAT="$6"
|
LAT="$6"
|
||||||
|
[[ $LAT == "" ]] && LAT="0.00"
|
||||||
LON="$7"
|
LON="$7"
|
||||||
|
[[ $LON == "" ]] && LON="0.00"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
YOU=$(myIpfsApi);
|
YOU=$(myIpfsApi);
|
||||||
LIBRA=$(head -n 2 ${MY_PATH}/../A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2)
|
|
||||||
################################################################################
|
################################################################################
|
||||||
## LIST TW MODELS
|
## LIST TW MODELS
|
||||||
################################################################################
|
################################################################################
|
||||||
TWMODEL="/ipfs/bafybeiewwxkmiojbskcqhbj2gbkde3czkeqftn6fgvwoa7ez5n5whido3q"
|
#~ TWMODEL="/ipfs/bafybeid7xwuqkgyiffehs77x3wky3dghjncxepr5ln6dewapgvbwrqi7n4"
|
||||||
# ipfs cat $TWMODEL > templates/twdefault.html
|
#~ # ipfs cat $TWMODEL > templates/twdefault.html
|
||||||
MINIMAL="/ipfs/bafybeifnlpnvpxxnblgwefoflmdnt2vhckmnu22orsi43zilh2v4sbegjy"
|
TWUPLANET="/ipfs/bafybeigpwapdih24vnakummoyj6vodxiem4i6ezp5hxa35yt3paxpqz53y" ## WITH LIGHTBEAMS SAVER
|
||||||
# ipfs cat $MINIMAL > templates/twuplanet.html
|
TWUPLANET="/ipfs/bafybeicquhlstbogaxgx2bwqjra5zlmfg33ciengwwy62w5myucaxksuli" ## WITH IPFS SAVER
|
||||||
|
# ipfs cat $TWUPLANET > templates/twuplanet.html
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
mkdir -p ~/.zen/tmp/${MOATS}/TW
|
mkdir -p ~/.zen/tmp/${MOATS}/TW
|
||||||
|
|
||||||
## Chargement TW !!!
|
## TEST chargement ONLINE TW !!!
|
||||||
if [[ $SALT != "" && PEPPER != "" ]]; then
|
if [[ $SALT != "" && PEPPER != "" ]]; then
|
||||||
|
|
||||||
## Creating SALT/PEPPER IPNS KEY
|
## Creating SALT/PEPPER IPNS KEY
|
||||||
|
@ -57,22 +61,22 @@ if [[ $SALT != "" && PEPPER != "" ]]; then
|
||||||
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] \
|
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] \
|
||||||
&& [[ -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \
|
&& [[ -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \
|
||||||
&& echo "TW FOUND ENTER 'yes' TO RESET TW. HIT ENTER TO KEEP IT." \
|
&& echo "TW FOUND ENTER 'yes' TO RESET TW. HIT ENTER TO KEEP IT." \
|
||||||
&& read ENTER \
|
&& read ENTER
|
||||||
&& [[ $ENTER != "" ]] && rm ~/.zen/tmp/${MOATS}/TW/index.html
|
|
||||||
|
|
||||||
# EXTEND SEARCH IN WEB2.0
|
if [[ $ENTER != "" ]]; then
|
||||||
#~ [[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \
|
|
||||||
#~ && echo "Trying curl on $LIBRA" \
|
# BACKUP tiddlers
|
||||||
#~ && curl -m 30 -so ~/.zen/tmp/${MOATS}/TW/index.html "$LIBRA/ipns/${ASTRONAUTENS}"
|
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp \
|
||||||
|
--render '.' 'backup.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[!is[system]]'
|
||||||
|
rm ~/.zen/tmp/${MOATS}/TW/index.html
|
||||||
|
echo ">> Tiddlers Backup : ~/.zen/tmp/backup.json"
|
||||||
|
fi
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
## AUCUN RESULTAT
|
## AUCUN RESULTAT
|
||||||
if [ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]; then
|
if [ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]; then
|
||||||
|
|
||||||
# COPY TW TEMPLATE
|
cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html
|
||||||
[[ ${LON} && ${LAT} ]] \
|
|
||||||
&& cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html \
|
|
||||||
|| cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html
|
|
||||||
|
|
||||||
else
|
else
|
||||||
#############################################
|
#############################################
|
||||||
|
@ -80,10 +84,11 @@ if [[ $SALT != "" && PEPPER != "" ]]; then
|
||||||
rm -f ~/.zen/tmp/${MOATS}/Astroport.json
|
rm -f ~/.zen/tmp/${MOATS}/Astroport.json
|
||||||
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport'
|
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport'
|
||||||
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport)
|
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport)
|
||||||
|
HPass=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].HPASS)
|
||||||
echo "ASTROPORT=${ASTROPORT}"
|
echo "ASTROPORT=${ASTROPORT}"
|
||||||
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'AstroID.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'AstroID'
|
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'AstroID.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'AstroID'
|
||||||
AstroID=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[]._canonical_uri)
|
AstroID=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[]._canonical_uri) ## Can be deleted
|
||||||
HPass=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[].HPASS)
|
[[ -z $HPass ]] && HPass=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[].HPASS) ## Double HPASS
|
||||||
echo "AstroID=$AstroID ($HPass)"
|
echo "AstroID=$AstroID ($HPass)"
|
||||||
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'ZenCard.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'ZenCard'
|
tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'ZenCard.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'ZenCard'
|
||||||
ZenCard=$(cat ~/.zen/tmp/${MOATS}/ZenCard.json | jq -r .[]._canonical_uri)
|
ZenCard=$(cat ~/.zen/tmp/${MOATS}/ZenCard.json | jq -r .[]._canonical_uri)
|
||||||
|
@ -98,7 +103,7 @@ if [[ $SALT != "" && PEPPER != "" ]]; then
|
||||||
else
|
else
|
||||||
|
|
||||||
echo ">> NO ACTIVE TW - CREATING FRESH NEW ONE"
|
echo ">> NO ACTIVE TW - CREATING FRESH NEW ONE"
|
||||||
cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html
|
cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -124,7 +129,7 @@ fi
|
||||||
[[ $SALT == "" ]] && SALT=$(${MY_PATH}/../tools/diceware.sh 4 | xargs)
|
[[ $SALT == "" ]] && SALT=$(${MY_PATH}/../tools/diceware.sh 4 | xargs)
|
||||||
#~ echo "-> ID : $SALT"
|
#~ echo "-> ID : $SALT"
|
||||||
|
|
||||||
[[ $PEPPER == "" ]] && PEPPER=$(${MY_PATH}/../tools/diceware.sh 2 | xargs)
|
[[ $PEPPER == "" ]] && PEPPER=$(${MY_PATH}/../tools/diceware.sh 4 | xargs)
|
||||||
#~ echo "-> PASS : $PEPPER"
|
#~ echo "-> PASS : $PEPPER"
|
||||||
|
|
||||||
[[ ! $PSEUDO ]] && PSEUDO=${PLAYER%%[0-9]*}
|
[[ ! $PSEUDO ]] && PSEUDO=${PLAYER%%[0-9]*}
|
||||||
|
@ -132,8 +137,9 @@ fi
|
||||||
[[ $(ls ~/.zen/game/players/$PSEUDO 2>/dev/null) ]] && echo "$PSEUDO EST DEJA UN PLAYER. EXIT" && exit 1
|
[[ $(ls ~/.zen/game/players/$PSEUDO 2>/dev/null) ]] && echo "$PSEUDO EST DEJA UN PLAYER. EXIT" && exit 1
|
||||||
|
|
||||||
# PSEUDO=${PSEUDO,,} #lowercase
|
# PSEUDO=${PSEUDO,,} #lowercase
|
||||||
[[ ! ${PLAYER} ]] && PLAYER=${PSEUDO}${RANDOM:0:3}@$(${MY_PATH}/../tools/diceware.sh 1 | xargs).${RANDOM:0:3} \
|
[[ ! ${PLAYER} ]] \
|
||||||
&& echo "ADRESSE EMAIL ?" && read OPLAYER && [[ $OPLAYER ]] && PLAYER=$OPLAYER
|
&& PLAYER=${PSEUDO}${RANDOM:0:3}@$(${MY_PATH}/../tools/diceware.sh 1 | xargs).${RANDOM:0:3} \
|
||||||
|
&& echo "ADRESSE EMAIL ?" && read OPLAYER && [[ $OPLAYER ]] && PLAYER=$OPLAYER ## CLI MODE
|
||||||
|
|
||||||
PLAYER=${PLAYER,,}
|
PLAYER=${PLAYER,,}
|
||||||
|
|
||||||
|
@ -141,341 +147,324 @@ PLAYER=${PLAYER,,}
|
||||||
PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-5)
|
PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-5)
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
######### TODO Ajouter d'autres clefs IPNS, GPG ?
|
|
||||||
# MOANS=$(ipfs key gen moa_${PLAYER})
|
|
||||||
# MOAKEYFILE=$(${MY_PATH}/give_me_keystore_filename.py "moa_${PLAYER}")
|
|
||||||
# echo "Coffre personnel multimedia journalisé dans votre 'Astroport' (amis de niveau 3)"
|
|
||||||
# echo "Votre clef moa_${PLAYER} <=> $MOANS ($MOAKEYFILE)"; sleep 2
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/secret.dunikey "$SALT" "$PEPPER"
|
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/secret.dunikey "$SALT" "$PEPPER"
|
||||||
|
|
||||||
G1PUB=$(cat ~/.zen/tmp/${MOATS}/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
G1PUB=$(cat ~/.zen/tmp/${MOATS}/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
||||||
|
|
||||||
[[ ! $G1PUB ]] && echo "Désolé. clef Cesium absente. ERROR" && exit 1
|
[[ ! $G1PUB ]] && echo "Désolé. clef Cesium absente. ERROR" && exit 1
|
||||||
|
|
||||||
## CREATE Player personnal files storage and IPFS publish directory
|
## CREATE Player personnal files storage and IPFS publish directory
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure
|
mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure
|
||||||
echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api
|
echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api
|
||||||
|
|
||||||
# PLAYER=geg-la_debrouille@super.chez-moi.com
|
## secret.june = SALT PEPPER CREDENTIALS
|
||||||
YUSER=$(echo ${PLAYER} | cut -d '@' -f1) # YUSER=geg-la_debrouille
|
echo "SALT=\"$SALT\"" > ~/.zen/game/players/${PLAYER}/secret.june
|
||||||
LYUSER=($(echo "$YUSER" | sed 's/[^a-zA-Z0-9]/\ /g')) # LYUSER=(geg la debrouille)
|
echo "PEPPER=\"$PEPPER\"" >> ~/.zen/game/players/${PLAYER}/secret.june
|
||||||
CLYUSER=$(printf '%s\n' "${LYUSER[@]}" | tac | tr '\n' '.' ) # CLYUSER=debrouille.la.geg.
|
####
|
||||||
YOMAIN=$(echo ${PLAYER} | cut -d '@' -f 2) # YOMAIN=super.chez-moi.com
|
## MOVE ${MOATS} secret.dunikey IN PLAYER DIRECTORY
|
||||||
# echo "NEXT STYLE GW : https://ipfs.$CLYUSER$YOMAIN.$(myHostName)"
|
mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/${PLAYER}/
|
||||||
# echo "MY PLAYER API GW : $(myPlayerApiGw)"
|
|
||||||
|
|
||||||
NID="${myIPFS}"
|
NID="${myIPFS}"
|
||||||
WID="https://ipfs.$CLYUSER$YOMAIN.$(myHostName)/api" ## Next Generation API # TODO PLAYER IPFS Docker entrance
|
|
||||||
WID="https://ipfs.$(myHostName)/api"
|
|
||||||
WID="https://ipfs.$(myHostName)/api"
|
|
||||||
WID="${myAPI}" ## https://ipfs.libra.copylaradio.com
|
WID="${myAPI}" ## https://ipfs.libra.copylaradio.com
|
||||||
|
|
||||||
# WID="http://ipfs.$(myHostName):5001"
|
[[ $isLAN ]] && NID="http://ipfs.localhost:8080" \
|
||||||
|
&& WID="http://ipfs.localhost:5001"
|
||||||
|
|
||||||
|
# Create ${PLAYER} "IPNS Key"
|
||||||
|
ipfs key rm ${PLAYER} >/dev/null 2>&1
|
||||||
|
ipfs key rm ${G1PUB} >/dev/null 2>&1
|
||||||
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/secret.player "$SALT" "$PEPPER"
|
||||||
|
TWNS=$(ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player)
|
||||||
|
ASTRONAUTENS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player)
|
||||||
|
|
||||||
|
## TODO MAKE CLEANER
|
||||||
|
mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/G1SSB # Prepare astrXbian sub-datastructure "old scarf code"
|
||||||
|
qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.png "$G1PUB" ## Check by VISA.print.sh
|
||||||
|
cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/ipfs/QR.png
|
||||||
|
echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/_g1.pubkey # G1SSB NOTATION (astrXbian compatible)
|
||||||
|
qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png "$myLIBRA/ipns/${ASTRONAUTENS}"
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
## SEC PASS PROTECTED QRCODE : base58 secret.june / openssl(pass)
|
||||||
|
#~ secFromDunikey=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep "sec" | cut -d ' ' -f2)
|
||||||
|
#~ echo "$secFromDunikey" > ~/.zen/tmp/${MOATS}/${PSEUDO}.sec
|
||||||
|
|
||||||
USALT=$(echo "$SALT" | jq -Rr @uri)
|
USALT=$(echo "$SALT" | jq -Rr @uri)
|
||||||
UPEPPER=$(echo "$PEPPER" | jq -Rr @uri)
|
UPEPPER=$(echo "$PEPPER" | jq -Rr @uri)
|
||||||
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
||||||
|
|
||||||
[[ $isLAN ]] && NID="http://ipfs.localhost:8080" \
|
## PGP ENCODING SALT/PEPPER API ACCESS
|
||||||
&& WID="http://ipfs.localhost:5001"
|
echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp
|
||||||
|
cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$PASS" -o ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc
|
||||||
|
rm ~/.zen/tmp/${MOATS}/topgp
|
||||||
|
#~ openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in ~/.zen/game/players/${PLAYER}/secret.june -out "$HOME/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec" -k "$PASS"
|
||||||
|
#~ PASsec=$(cat ~/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec | base64 -w 0 | jq -sRr '@uri' )
|
||||||
|
#~ HPass=$(echo "$PASS" | sha512sum | cut -d ' ' -f 1)
|
||||||
|
#~ qrencode -s 12 -o $HOME/.zen/game/players/${PLAYER}/QRsec.png $PASsec
|
||||||
|
|
||||||
####
|
## Add logo to QRCode
|
||||||
|
cp ${MY_PATH}/../images/astrologo_nb.png ~/.zen/tmp/${MOATS}/fond.png
|
||||||
|
|
||||||
mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/${PLAYER}/
|
## ASTROID ~~~~~
|
||||||
|
ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '~' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )"
|
||||||
|
## MAKE amzqr ASTROID PGP QRCODE
|
||||||
|
amzqr "${ASTROIDQR}" \
|
||||||
|
-d ~/.zen/tmp/${MOATS} \
|
||||||
|
-l H \
|
||||||
|
-p ~/.zen/tmp/${MOATS}/fond.png 1>/dev/null
|
||||||
|
|
||||||
# Create Player "IPNS Key" (key import)
|
## ADD PLAYER EMAIL
|
||||||
ipfs key rm ${PLAYER}
|
convert -gravity northwest -pointsize 28 -fill black -draw "text 5,5 \"$PLAYER\"" ~/.zen/tmp/${MOATS}/fond_qrcode.png ~/.zen/game/players/${PLAYER}/result_qrcode.png
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/secret.player "$SALT" "$PEPPER"
|
convert ~/.zen/game/players/${PLAYER}/result_qrcode.png -resize 480 ~/.zen/game/players/${PLAYER}/AstroID.png
|
||||||
TWNS=$(ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player)
|
|
||||||
ASTRONAUTENS=$(ipfs key import $G1PUB -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player)
|
|
||||||
|
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/G1SSB # Prepare astrXbian sub-datastructure "old scarf code"
|
ASTROQR="/ipfs/$(ipfs add -q $HOME/.zen/game/players/${PLAYER}/AstroID.png | tail -n 1)"
|
||||||
|
|
||||||
qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.png "$G1PUB"
|
|
||||||
cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/ipfs/QR.png
|
|
||||||
echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/_g1.pubkey # G1SSB NOTATION (astrXbian compatible)
|
|
||||||
|
|
||||||
qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png "$myLIBRA/ipns/${ASTRONAUTENS}"
|
|
||||||
|
|
||||||
############################################################################
|
|
||||||
## SEC PASS PROTECTED QRCODE : base58 secret.june / openssl(pass)
|
|
||||||
#~ secFromDunikey=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep "sec" | cut -d ' ' -f2)
|
|
||||||
#~ echo "$secFromDunikey" > ~/.zen/tmp/${MOATS}/${PSEUDO}.sec
|
|
||||||
|
|
||||||
## PGP ENCODING SALT/PEPPER API ACCESS
|
|
||||||
echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp
|
|
||||||
cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$PASS" -o ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc
|
|
||||||
rm ~/.zen/tmp/${MOATS}/topgp
|
|
||||||
#~ openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in ~/.zen/game/players/${PLAYER}/secret.june -out "$HOME/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec" -k "$PASS"
|
|
||||||
#~ PASsec=$(cat ~/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec | base64 -w 0 | jq -sRr '@uri' )
|
|
||||||
#~ HPass=$(echo "$PASS" | sha512sum | cut -d ' ' -f 1)
|
|
||||||
#~ qrencode -s 12 -o $HOME/.zen/game/players/${PLAYER}/QRsec.png $PASsec
|
|
||||||
|
|
||||||
## Add logo to QRCode
|
|
||||||
cp ${MY_PATH}/../images/astrologo_nb.png ~/.zen/tmp/${MOATS}/fond.png
|
|
||||||
|
|
||||||
## ASTROID ~~~~~ || &&&&&
|
|
||||||
ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '~' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )"
|
|
||||||
[[ ${PSEUDO} == "UPlanet" ]] && ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '&' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )"
|
|
||||||
## MAKE amzqr ASTROID PGP QRCODE
|
|
||||||
amzqr "${ASTROIDQR}" \
|
|
||||||
-d ~/.zen/tmp/${MOATS} \
|
|
||||||
-l H \
|
|
||||||
-p ~/.zen/tmp/${MOATS}/fond.png 1>/dev/null
|
|
||||||
|
|
||||||
## ADD PLAYER EMAIL
|
|
||||||
convert -gravity northwest -pointsize 28 -fill black -draw "text 5,5 \"$PLAYER\"" ~/.zen/tmp/${MOATS}/fond_qrcode.png ~/.zen/game/players/${PLAYER}/result_qrcode.png
|
|
||||||
convert ~/.zen/game/players/${PLAYER}/result_qrcode.png -resize 480 ~/.zen/game/players/${PLAYER}/AstroID.png
|
|
||||||
|
|
||||||
ASTROQR="/ipfs/$(ipfs add -q $HOME/.zen/game/players/${PLAYER}/AstroID.png | tail -n 1)"
|
|
||||||
|
|
||||||
############################################################################ TW
|
############################################################################ TW
|
||||||
### INITALISATION WIKI dans leurs répertoires de publication IPFS
|
### INITALISATION WIKI dans leurs répertoires de publication IPFS
|
||||||
mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/moa/
|
mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/moa/
|
||||||
|
|
||||||
[[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] && cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html
|
[[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \
|
||||||
sed "s~_BIRTHDATE_~${MOATS}~g" ~/.zen/tmp/${MOATS}/TW/index.html > ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
&& cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html
|
||||||
|
|
||||||
# INSERT ASTROPORT ADDRESS
|
sed "s~_BIRTHDATE_~${MOATS}~g" ~/.zen/tmp/${MOATS}/TW/index.html \
|
||||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport'
|
> ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport)
|
|
||||||
sed -i "s~${ASTROPORT}~/ipns/${IPFSNODEID}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
# TW CHAIN INIT WITH TWMODEL
|
# INSERT ASTROPORT ADDRESS
|
||||||
sed -i "s~_MOATS_~${MOATS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport'
|
||||||
sed -i "s~_CHAIN_~${TWMODEL}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport)
|
||||||
sed -i "s~_TWMODEL_~${TWMODEL}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~${ASTROPORT}~/ipns/${IPFSNODEID}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
sed -i "s~_TW_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
## AND HACK QRCODE.sh FOR _PGP KEY_ TO VERIFY LAST HASH OF PROVIDED PASS
|
# TW CHAIN INIT WITH TWMODEL
|
||||||
HPASS=$(echo $PASS | sha512sum | cut -d ' ' -f 1)
|
sed -i "s~_MOATS_~${MOATS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
[[ ${HPass} != "" ]] && SRCPASS=${HPass} || SRCPASS="_HPASS_"
|
sed -i "s~_CHAIN_~${TWUPLANET}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
sed -i "s~${SRCPASS}~${HPASS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~_TWMODEL_~${TWUPLANET}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
sed -i "s~_ASTRONAUTENS_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
## RESET WISHES TO DEPLOY DERIVATED KEYS ON HOST AGAIN ( DONE IN PLAYER_REFRESH )
|
## AND HACK QRCODE.sh FOR _PGP KEY_ TO VERIFY LAST HASH OF PROVIDED PASS
|
||||||
#~ sed -i "s~G1Voeu~voeu~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
HPASS=$(echo $PASS | sha512sum | cut -d ' ' -f 1)
|
||||||
|
[[ ${HPass} != "" ]] && SRCPASS=${HPass} || SRCPASS="_HPASS_"
|
||||||
|
sed -i "s~${SRCPASS}~${HPASS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
## Fill LNK - Tiddler - escape \&
|
## RESET WISHES TO DEPLOY DERIVATED KEYS ON HOST AGAIN ( DONE IN PLAYER_REFRESH )
|
||||||
sed -i "s~_URL_~$(echo "${URL}" | sed 's/[&/]/\\&/g')~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
#~ sed -i "s~G1Voeu~voeu~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
# INSERT PLAYER DATA
|
## Fill LNK - Tiddler - escape \&
|
||||||
sed -i "s~_PLAYER_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~_URL_~$(echo "${URL}" | sed 's/[&/]/\\&/g')~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
sed -i "s~_PSEUDO_~${PSEUDO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
sed -i "s~_WISHKEY_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
sed -i "s~_G1PUB_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
# INSERT PLAYER DATA
|
||||||
#~ sed -i "s~_QRSEC_~${PASsec}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~_PLAYER_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
sed -i "s~_PSEUDO_~${PSEUDO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
sed -i "s~_G1PUB_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
#~ sed -i "s~_QRSEC_~${PASsec}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1)
|
# La Clef IPNS porte comme nom G1PUB et ${PLAYER}
|
||||||
# La Clef IPNS porte comme nom G1PUB et ${PLAYER}
|
sed -i "s~_MEDIAKEY_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
sed -i "s~_MEDIAKEY_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~k2k4r8kxfnknsdf7tpyc46ks2jb3s9uvd3lqtcv9xlq9rsoem7jajd75~${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
sed -i "s~k2k4r8kxfnknsdf7tpyc46ks2jb3s9uvd3lqtcv9xlq9rsoem7jajd75~${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
sed -i "s~_ASTRONAUTENS_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
|
|
||||||
## AstroID Tiddler UPGRADE
|
## AstroID Tiddler UPGRADE
|
||||||
cat ${MY_PATH}/../templates/data/AstroID.json \
|
cat ${MY_PATH}/../templates/data/AstroID.json \
|
||||||
| sed -e "s~/ipfs/bafybeifbebc3ewnzrzbm44arddedbralegnxklhua5d5ymzaqtf2kaub7i~${ASTROQR}~g" \
|
| sed -e "s~/ipfs/bafybeifbebc3ewnzrzbm44arddedbralegnxklhua5d5ymzaqtf2kaub7i~${ASTROQR}~g" \
|
||||||
-e "s~_PLAYER_~${PLAYER}~g" \
|
-e "s~_PLAYER_~${PLAYER}~g" \
|
||||||
-e "s~_G1PUB_~${G1PUB}~g" \
|
-e "s~_MOATS_~${MOATS}~g" \
|
||||||
-e "s~_ASTRONAUTENS_~${ASTRONAUTENS}~g" \
|
-e "s~_G1PUB_~${G1PUB}~g" \
|
||||||
-e "s~_HPASS_~${HPASS}~g" \
|
-e "s~_ASTRONAUTENS_~${ASTRONAUTENS}~g" \
|
||||||
> ~/.zen/tmp/${MOATS}/AstroID.json
|
-e "s~_HPASS_~${HPASS}~g" \
|
||||||
|
> ~/.zen/tmp/${MOATS}/AstroID.json
|
||||||
|
|
||||||
sed -i "s~${AstroID}~${ASTROQR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ## NOT CYPHERED AstroID
|
sed -i "s~tube.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
sed -i "s~ipfs.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
sed -i "s~tube.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
## PREPARE UMAP LAT LON replacement
|
||||||
sed -i "s~ipfs.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
[[ ! ${LAT} ]] && LAT="0.00"
|
||||||
|
[[ ! ${LON} ]] && LON="0.00"
|
||||||
|
|
||||||
## PREPARE UMAP LAT LON replacement
|
SECTOR="_${LAT::-1}_${LON::-1}" ### SECTOR = 0.1° Planet Slice in MadeInZion Tiddler
|
||||||
[[ ! ${LAT} ]] && LAT="0.00"
|
echo "UPlanet 0.1° SECTOR : ${SECTOR}"
|
||||||
[[ ! ${LON} ]] && LON="0.00"
|
sed -i "s~_SECTOR_~${SECTOR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
UMAP=${URL}
|
|
||||||
[[ ! $(echo ${UMAP} | grep "/ipns/") ]] && UMAP="/ipns/k51qzi5uqu5djg1gqzujq5p60w25mi235gdg0lgkk5qztkfrpi5c22oolrriyu" ## DEFAULT = 0.00
|
|
||||||
|
|
||||||
if [[ ${LAT} && ${LON} ]]; then
|
# GET ACTUAL GPS VALUES
|
||||||
# GET ACTUAL GPS VALUES
|
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
||||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS'
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
OLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
--render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS'
|
||||||
OLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
|
||||||
OUMAP=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap)
|
|
||||||
# REPLACE WITH NEW LAT LON UMAP
|
|
||||||
sed -i "s~${OLAT}~${LAT}~g" ~/.zen/tmp/${MOATS}/GPS.json
|
|
||||||
sed -i "s~${OLON}~${LON}~g" ~/.zen/tmp/${MOATS}/GPS.json
|
|
||||||
sed -i "s~${OUMAP}~${UMAP}~g" ~/.zen/tmp/${MOATS}/GPS.json
|
|
||||||
fi
|
|
||||||
|
|
||||||
SECTOR="_${LAT::-1}_${LON::-1}" ### SECTOR = 0.1° Planet Slice in MadeInZion Tiddler
|
OLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat)
|
||||||
echo "UPlanet 0.1° SECTOR : ${SECTOR}"
|
OLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon)
|
||||||
sed -i "s~_SECTOR_~${SECTOR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
## Change myIP
|
|
||||||
#~ sed -i "s~127.0.0.1~$myIP~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html # 8080 & 5001 BEING THE RECORDING GATEWAY (WAN or ipfs.localhost)
|
|
||||||
|
|
||||||
## TODATE #########################################
|
|
||||||
TODATESECTORNS=$(${MY_PATH}/../tools/keygen -t ipfs "${TODATE}${UPLANETNAME}${SECTOR}" "${TODATE}${UPLANETNAME}${SECTOR}")
|
|
||||||
DEMAINSECTORNS=$(${MY_PATH}/../tools/keygen -t ipfs "${DEMAINDATE}${UPLANETNAME}${SECTOR}" "${DEMAINDATE}${UPLANETNAME}${SECTOR}")
|
|
||||||
|
|
||||||
|
# REPLACE WITH NEW LAT LON UMAP
|
||||||
|
sed -i "s~${OLAT}~${LAT}~g" ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
|
sed -i "s~${OLON}~${LON}~g" ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
|
## Add _SECTORTW_
|
||||||
|
cat ~/.zen/tmp/${MOATS}/GPS.json | jq '.[0] + {"sectortw": "_SECTORTW_"}' \
|
||||||
|
> ~/.zen/tmp/${MOATS}/GPStw.json \
|
||||||
|
&& mv ~/.zen/tmp/${MOATS}/GPStw.json ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
|
|
||||||
###########
|
###########
|
||||||
## GET OLD16
|
## GET OLD16
|
||||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'MIZ.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion'
|
tiddlywiki \
|
||||||
OLD16=$(cat ~/.zen/tmp/${MOATS}/MIZ.json | jq -r ".[].secret")
|
--load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
||||||
[[ ${OLD16} == "" || ${OLD16} == "null" ]] && OLD16="_SECRET_"
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'MIZ.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion'
|
||||||
|
OLD16=$(cat ~/.zen/tmp/${MOATS}/MIZ.json | jq -r ".[].secret")
|
||||||
|
[[ ${OLD16} == "" || ${OLD16} == "null" ]] && OLD16="_SECRET_"
|
||||||
|
echo "${OLD16}"
|
||||||
|
|
||||||
## USING SWARMKEY (derivated from IPFSNODE "/proc/cpuinfo" key made by _12345.sh) ## HARDWARE SPECIFIC KEY ##
|
# TODO : MAKE NODE FORGET PASS THEN DECODE ${PLAYER}/secret.june FROM TW # PROD #
|
||||||
# TODO : NODE COULD FORGET PASS THEN DECODE ${PLAYER}/secret.dunikey FROM TW # PROD #
|
MACHINEPUB=$(cat $HOME/.zen/game/myswarm_secret.dunikey | grep pub | cut -d ' ' -f 2)
|
||||||
MACHINEPUB=$(cat $HOME/.zen/game/myswarm_secret.dunikey | grep pub | cut -d ' ' -f 2)
|
|
||||||
#~ echo "# CRYPTO ENCODING _SECRET_ "
|
|
||||||
${MY_PATH}/../tools/natools.py encrypt -p ${MACHINEPUB} -i $HOME/.zen/game/players/${PLAYER}/secret.dunikey -o $HOME/.zen/tmp/${MOATS}/secret.dunikey.$G1PUB.enc
|
|
||||||
ENCODING=$(cat ~/.zen/tmp/${MOATS}/bafybeiewwxkmiojbskcqhbj2gbkde3czkeqftn6fgvwoa7ez5n5whido3qsecret.dunikey.$G1PUB.enc | base16)
|
|
||||||
sed -i "s~${OLD16}~${ENCODING}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
|
||||||
# IN CASE ORIGINAL STATION NEEDS ACCESS # COULD BE REMOVED ?
|
|
||||||
###########
|
|
||||||
#~ echo "# CRYPTO DECODING TESTING..."
|
|
||||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion'
|
|
||||||
cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r ".[].secret" | base16 -d > ~/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2
|
|
||||||
${MY_PATH}/../tools/natools.py decrypt -f pubsec -k $HOME/.zen/game/myswarm_secret.dunikey -i $HOME/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 -o $HOME/.zen/tmp/${MOATS}/crypto.2
|
|
||||||
#~ echo "DEBUG : $(cat $HOME/.zen/tmp/${MOATS}/crypto.2)"
|
|
||||||
###########
|
|
||||||
## CRYPTO PROCESS VALIDATED
|
|
||||||
[[ -s ~/.zen/tmp/${MOATS}/crypto.2 ]] && echo "NATOOLS LOADED STATION TW KEY " \
|
|
||||||
|| echo "NATOOLS ERRORS - CHECK STATION" # MACHINEPUB CRYPTO ERROR
|
|
||||||
|
|
||||||
|
if [[ "${MACHINEPUB}" != "" ]]; then
|
||||||
|
#~ echo "# CRYPTO ENCODING PLAYER KEY WITH MACHINEPUB
|
||||||
|
${MY_PATH}/../tools/natools.py encrypt \
|
||||||
|
-p ${MACHINEPUB} \
|
||||||
|
-i $HOME/.zen/game/players/${PLAYER}/secret.june \
|
||||||
|
-o $HOME/.zen/tmp/${MOATS}/secret.june.${G1PUB}.enc
|
||||||
|
ENCODING=$(cat ~/.zen/tmp/${MOATS}/secret.june.$G1PUB.enc | base16)
|
||||||
|
sed -i "s~${OLD16}~${ENCODING}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
echo "ENCODING: ${ENCODING}"
|
||||||
|
|
||||||
|
# IN CASE ORIGINAL STATION NEEDS ACCESS # COULD BE REMOVED ?
|
||||||
|
###########
|
||||||
|
#~ echo "# CRYPTO DECODING TESTING..."
|
||||||
|
tiddlywiki \
|
||||||
|
--load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
||||||
|
--output ~/.zen/tmp/${MOATS} \
|
||||||
|
--render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion'
|
||||||
|
|
||||||
|
cat ~/.zen/tmp/${MOATS}/MadeInZion.json \
|
||||||
|
| jq -r ".[].secret" | base16 -d \
|
||||||
|
> ~/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2
|
||||||
|
|
||||||
|
${MY_PATH}/../tools/natools.py decrypt \
|
||||||
|
-f pubsec \
|
||||||
|
-k $HOME/.zen/game/myswarm_secret.dunikey \
|
||||||
|
-i $HOME/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 \
|
||||||
|
-o $HOME/.zen/tmp/${MOATS}/crypto.2
|
||||||
|
#~ echo "DEBUG : $(cat $HOME/.zen/tmp/${MOATS}/crypto.2)"
|
||||||
|
###########
|
||||||
|
## CRYPTO PROCESS VALIDATED
|
||||||
|
[[ -s ~/.zen/tmp/${MOATS}/crypto.2 ]] \
|
||||||
|
&& echo "NATOOLS LOADED STATION TW KEY " \
|
||||||
|
|| echo "NATOOLS ERRORS - CHECK STATION" # MACHINEPUB CRYPTO ERROR
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " - WARNING - MISSING ~/.zen/game/myswarm_secret.dunikey - WARNING -"
|
||||||
|
fi
|
||||||
########### SECTOR = 0.1° UPLANET SLICE
|
########### SECTOR = 0.1° UPLANET SLICE
|
||||||
OSECTOR=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].sector)
|
OSECTOR=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].sector)
|
||||||
[[ ${OSECTOR} != "null" ]] && sed -i "s~${OSECTOR}~${SECTOR}~g" ~/.zen/tmp/${MOATS}/MadeInZion.json
|
[[ ${OSECTOR} != "null" ]] && sed -i "s~${OSECTOR}~${SECTOR}~g" ~/.zen/tmp/${MOATS}/MadeInZion.json
|
||||||
|
|
||||||
### CREATE ${NID} ADDRESS FOR API & ROUND ROBIN FOR GW
|
### CREATE ${NID} ADDRESS FOR API & ROUND ROBIN FOR GW
|
||||||
cat ${MY_PATH}/../templates/data/local.api.json | sed "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json
|
cat ${MY_PATH}/../templates/data/local.api.json | sed "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json
|
||||||
cat ${MY_PATH}/../templates/data/local.gw.json | sed "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json
|
cat ${MY_PATH}/../templates/data/local.gw.json | sed "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json
|
||||||
|
|
||||||
# Create"${PLAYER}_feed" Key ! DERIVATED ! "$SALT" "$PEPPER $G1PUB"
|
# Create"${PLAYER}_feed" Key ! DERIVATED ! "$SALT" "$PEPPER $G1PUB"
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/feed.ipfskey "$SALT" "$PEPPER $G1PUB"
|
ipfs key rm "${PLAYER}_feed" 2>/dev/null
|
||||||
FEEDNS=$(ipfs key import "${PLAYER}_feed" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/feed.ipfskey)
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/feed.ipfskey "$SALT" "$PEPPER $G1PUB"
|
||||||
|
FEEDNS=$(ipfs key import "${PLAYER}_feed" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/feed.ipfskey)
|
||||||
|
|
||||||
## MAKE LightBeam Plugin Tiddler ${PLAYER}_feed
|
## MAKE LightBeam Plugin Tiddler ${PLAYER}_feed
|
||||||
# $:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key
|
# $:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json
|
||||||
|
|
||||||
## NATOOLS ENCRYPT
|
## ADD SYSTEM TW
|
||||||
#~ echo "# NATOOLS ENCODING MYSELF feed.ipfskey (TODO: could be decoded to compare with G1lib.js) "
|
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
||||||
${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/tmp/${MOATS}/feed.ipfskey -o $HOME/.zen/tmp/${MOATS}/feed.ipfskey.$G1PUB.enc
|
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
||||||
ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/feed.ipfskey.$G1PUB.enc | base16)
|
--import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \
|
||||||
#~ echo ${ENCODING}
|
--import ~/.zen/tmp/${MOATS}/local.api.json "application/json" \
|
||||||
echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-feed","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json
|
--import ~/.zen/tmp/${MOATS}/local.gw.json "application/json" \
|
||||||
|
--import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \
|
||||||
|
--import ~/.zen/tmp/${MOATS}/AstroID.json "application/json" \
|
||||||
|
--import ~/.zen/tmp/${MOATS}/MadeInZion.json "application/json" \
|
||||||
|
--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_api.json" "application/json" \
|
||||||
|
--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_gateway.json" "application/json" \
|
||||||
|
--output ~/.zen/tmp/${MOATS} --render "$:/core/save/all" "tw.html" "text/plain"
|
||||||
|
|
||||||
#~ echo
|
## COPY TO LOCAL & 12345 IPFSNODEID MAP
|
||||||
#~ echo "IPFS GATEWAY : ${NID}"
|
[[ -s ~/.zen/tmp/${MOATS}/tw.html ]] \
|
||||||
# cat ~/.zen/tmp/${MOATS}/local.gw.json | jq -r
|
&& cp -f ~/.zen/tmp/${MOATS}/tw.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
||||||
#~ echo "IPFS API : ${WID}"
|
&& mkdir -p ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \
|
||||||
# cat ~/.zen/tmp/${MOATS}/local.api.json | jq -r
|
&& cp ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/ \
|
||||||
#~ echo ">>> RSS FEED : ${myIPFS}/ipns/${FEEDNS}"
|
|| ( echo "Problem with TW - EXIT" && exit 1 )
|
||||||
#~ ## CHANGE SELECTED GW & API
|
|
||||||
|
|
||||||
## ADD SYSTEM TW
|
|
||||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/local.api.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/local.gw.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/AstroID.json "application/json" \
|
|
||||||
--import ~/.zen/tmp/${MOATS}/MadeInZion.json "application/json" \
|
|
||||||
--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_api.json" "application/json" \
|
|
||||||
--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_gateway.json" "application/json" \
|
|
||||||
--output ~/.zen/tmp/${MOATS} --render "$:/core/save/all" "tw.html" "text/plain"
|
|
||||||
|
|
||||||
## COPY TO LOCAL & 12345 IPFSNODEID MAP
|
|
||||||
[[ -s ~/.zen/tmp/${MOATS}/tw.html ]] \
|
|
||||||
&& cp -f ~/.zen/tmp/${MOATS}/tw.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \
|
|
||||||
&& mkdir -p ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \
|
|
||||||
&& cp ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/ \
|
|
||||||
|| ( echo "Problem with TW - EXIT" && exit 1 )
|
|
||||||
|
|
||||||
############################################################################ G1TW
|
############################################################################ G1TW
|
||||||
#### MAKE G1TW
|
#### MAKE G1TW
|
||||||
[[ -s ~/.zen/G1BILLET/MAKE_G1BILLET.sh ]] && \
|
[[ -s ~/.zen/G1BILLET/MAKE_G1BILLET.sh ]] && \
|
||||||
~/.zen/G1BILLET/MAKE_G1BILLET.sh "$SALT" "$PEPPER" "___" "$G1PUB" "${PASS}" "${PSEUDO-xastro}" "$ASTRONAUTENS" "$PLAYER"
|
~/.zen/G1BILLET/MAKE_G1BILLET.sh "$SALT" "$PEPPER" "___" "$G1PUB" "${PASS}" "${PSEUDO-xastro}" "$ASTRONAUTENS" "$PLAYER"
|
||||||
#### MADE # BILLETNAME=$(echo "$SALT" | sed 's/ /_/g') ##
|
#### MADE # BILLETNAME=$(echo "$SALT" | sed 's/ /_/g') ##
|
||||||
# IMAGE ~/.zen/G1BILLET/tmp/g1billet/${PASS}/${BILLETNAME}.BILLET.jpg
|
# IMAGE ~/.zen/G1BILLET/tmp/g1billet/${PASS}/${BILLETNAME}.BILLET.jpg
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
## MAKE IMAGE AVATAR WITH G1PUB QRCODE
|
## MAKE IMAGE AVATAR WITH G1PUB QRCODE
|
||||||
if [[ $(which amzqr) ]]; then
|
if [[ $(which amzqr) ]]; then
|
||||||
|
|
||||||
GIMG="${MY_PATH}/../images/moa_net.png"
|
GIMG="${MY_PATH}/../images/moa_net.png"
|
||||||
CIMG="${MY_PATH}/../images/zenticket.png"
|
CIMG="${MY_PATH}/../images/zenticket.png"
|
||||||
|
|
||||||
# QRG1avatar.png
|
# QRG1avatar.png
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] && amzqr "${G1PUB}" -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null
|
[[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] && amzqr "${G1PUB}" -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null
|
||||||
# QRTWavatar.png
|
# QRTWavatar.png
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] && amzqr "${myIPFSGW}/ipns/${ASTRONAUTENS}" -l H -p "$GIMG" -c -n QRTWavatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null
|
[[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] && amzqr "${myIPFSGW}/ipns/${ASTRONAUTENS}" -l H -p "$GIMG" -c -n QRTWavatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] \
|
[[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] \
|
||||||
&& cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/QRG1avatar.png
|
&& cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/QRG1avatar.png
|
||||||
|
|
||||||
[[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] \
|
[[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] \
|
||||||
&& cp ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png ~/.zen/game/players/${PLAYER}/QRTWavatar.png
|
&& cp ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png ~/.zen/game/players/${PLAYER}/QRTWavatar.png
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## ID CARD & QRCODE
|
## ID CARD & QRCODE
|
||||||
convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 300 ~/.zen/tmp/${MOATS}/QR.png 2>/dev/null
|
convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 300 ~/.zen/tmp/${MOATS}/QR.png 2>/dev/null
|
||||||
convert ~/.zen/game/players/${PLAYER}/QRTWavatar.png -resize 240 ~/.zen/tmp/${MOATS}/TW.png 2>/dev/null
|
convert ~/.zen/game/players/${PLAYER}/QRTWavatar.png -resize 240 ~/.zen/tmp/${MOATS}/TW.png 2>/dev/null
|
||||||
convert ${MY_PATH}/../images/astroport.jpg -resize 240 ~/.zen/tmp/${MOATS}/ASTROPORT.png 2>/dev/null
|
convert ${MY_PATH}/../images/astroport.jpg -resize 240 ~/.zen/tmp/${MOATS}/ASTROPORT.png 2>/dev/null
|
||||||
|
|
||||||
|
|
||||||
composite -compose Over -gravity SouthEast -geometry +5+5 ~/.zen/tmp/${MOATS}/ASTROPORT.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/${MOATS}/astroport.png 2>/dev/null
|
composite -compose Over -gravity SouthEast -geometry +5+5 ~/.zen/tmp/${MOATS}/ASTROPORT.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/${MOATS}/astroport.png 2>/dev/null
|
||||||
composite -compose Over -gravity NorthEast -geometry +10+55 ~/.zen/tmp/${MOATS}/TW.png ~/.zen/tmp/${MOATS}/astroport.png ~/.zen/tmp/${MOATS}/astroport2.png 2>/dev/null
|
composite -compose Over -gravity NorthEast -geometry +10+55 ~/.zen/tmp/${MOATS}/TW.png ~/.zen/tmp/${MOATS}/astroport.png ~/.zen/tmp/${MOATS}/astroport2.png 2>/dev/null
|
||||||
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/${MOATS}/QR.png ~/.zen/tmp/${MOATS}/astroport2.png ~/.zen/tmp/${MOATS}/one.png 2>/dev/null
|
composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/${MOATS}/QR.png ~/.zen/tmp/${MOATS}/astroport2.png ~/.zen/tmp/${MOATS}/one.png 2>/dev/null
|
||||||
convert -gravity SouthWest -pointsize 12 -fill black -draw "text 5,3 \"$G1PUB\"" ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/txt.png
|
convert -gravity SouthWest -pointsize 12 -fill black -draw "text 5,3 \"$G1PUB\"" ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/txt.png
|
||||||
|
|
||||||
# composite -compose Over -gravity NorthWest -geometry +280+280 ~/.zen/game/players/.current/QRsec.png ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/image.png
|
# composite -compose Over -gravity NorthWest -geometry +280+280 ~/.zen/game/players/.current/QRsec.png ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/image.png
|
||||||
|
|
||||||
convert -gravity northwest -pointsize 25 -fill black -draw "text 50,300 \"$PSEUDO\"" ~/.zen/tmp/${MOATS}/txt.png ~/.zen/tmp/${MOATS}/image.png
|
convert -gravity northwest -pointsize 25 -fill black -draw "text 50,300 \"$PSEUDO\"" ~/.zen/tmp/${MOATS}/txt.png ~/.zen/tmp/${MOATS}/image.png
|
||||||
convert -gravity northwest -pointsize 20 -fill black -draw "text 300,40 \"${PLAYER}\"" ~/.zen/tmp/${MOATS}/image.png ~/.zen/tmp/${MOATS}/pseudo.png
|
convert -gravity northwest -pointsize 20 -fill black -draw "text 300,40 \"${PLAYER}\"" ~/.zen/tmp/${MOATS}/image.png ~/.zen/tmp/${MOATS}/pseudo.png
|
||||||
|
|
||||||
|
|
||||||
## WITH CONFIDENTIAL (LOCAL PRINT)
|
## WITH CONFIDENTIAL (LOCAL PRINT)
|
||||||
convert -gravity northeast -pointsize 25 -fill black -draw "text 20,180 \"$PASS\"" ~/.zen/tmp/${MOATS}/pseudo.png ~/.zen/tmp/${MOATS}/pass.png
|
convert -gravity northeast -pointsize 25 -fill black -draw "text 20,180 \"$PASS\"" ~/.zen/tmp/${MOATS}/pseudo.png ~/.zen/tmp/${MOATS}/pass.png
|
||||||
convert -gravity northwest -pointsize 25 -fill black -draw "text 300,100 \"$SALT\"" ~/.zen/tmp/${MOATS}/pass.png ~/.zen/tmp/${MOATS}/salt.png
|
convert -gravity northwest -pointsize 25 -fill black -draw "text 300,100 \"$SALT\"" ~/.zen/tmp/${MOATS}/pass.png ~/.zen/tmp/${MOATS}/salt.png
|
||||||
convert -gravity northwest -pointsize 25 -fill black -draw "text 300,140 \"$PEPPER\"" ~/.zen/tmp/${MOATS}/salt.png ~/.zen/game/players/${PLAYER}/ID.png
|
convert -gravity northwest -pointsize 25 -fill black -draw "text 300,140 \"$PEPPER\"" ~/.zen/tmp/${MOATS}/salt.png ~/.zen/game/players/${PLAYER}/ID.png
|
||||||
|
|
||||||
# INSERTED IMAGE IPFS
|
# INSERTED IMAGE IPFS
|
||||||
# IASTRO=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ID.png | tail -n 1) ## ZENCARD PUBLIC / PRIVATE
|
# IASTRO=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ID.png | tail -n 1) ## ZENCARD PUBLIC / PRIVATE
|
||||||
IASTRO="/ipfs/$(ipfs add -Hq ~/.zen/tmp/${MOATS}/pseudo.png | tail -n 1)" ## ZENCARD PUBLIC ONLY
|
IASTRO="/ipfs/$(ipfs add -Hq ~/.zen/tmp/${MOATS}/pseudo.png | tail -n 1)" ## ZENCARD PUBLIC ONLY
|
||||||
|
|
||||||
## Update ZenCard
|
## Update ZenCard
|
||||||
[[ ! $ZenCard ]] && ZenCard="/ipfs/bafybeidhghlcx3zdzdah2pzddhoicywmydintj4mosgtygr6f2dlfwmg7a"
|
[[ ! $ZenCard ]] && ZenCard="/ipfs/bafybeidhghlcx3zdzdah2pzddhoicywmydintj4mosgtygr6f2dlfwmg7a"
|
||||||
sed -i "s~${ZenCard}~${IASTRO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
sed -i "s~${ZenCard}~${IASTRO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "♥ IPFS Ŋ1 TW INIT ♥"
|
echo "♥ IPFS Ŋ1 TW INIT ♥"
|
||||||
echo "TW ${NID}/ipns/${ASTRONAUTENS}/"
|
echo "TW ${NID}/ipns/${ASTRONAUTENS}/"
|
||||||
IPUSH=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1)
|
IPUSH=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1)
|
||||||
echo $IPUSH > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain # Contains last IPFS backup PLAYER KEY
|
echo $IPUSH > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain # Contains last IPFS backup PLAYER KEY
|
||||||
echo $MOATS > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats
|
echo $MOATS > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats
|
||||||
|
|
||||||
(
|
(
|
||||||
#~ echo "$MOATS :: /ipfs/$IPUSH"
|
#~ echo "$MOATS :: /ipfs/$IPUSH"
|
||||||
ipfs name publish --key=${PLAYER} /ipfs/$IPUSH
|
ipfs name publish --key=${PLAYER} /ipfs/$IPUSH
|
||||||
#~ echo "TW PUBLISHING DONE"
|
#~ echo "TW PUBLISHING DONE"
|
||||||
) &
|
) &
|
||||||
|
|
||||||
## MEMORISE PLAYER Ŋ1 ZONE
|
## MEMORISE PLAYER Ŋ1 ZONE
|
||||||
echo "${PLAYER}" > ~/.zen/game/players/${PLAYER}/.player
|
echo "${PLAYER}" > ~/.zen/game/players/${PLAYER}/.player
|
||||||
echo "$PSEUDO" > ~/.zen/game/players/${PLAYER}/.pseudo
|
echo "$PSEUDO" > ~/.zen/game/players/${PLAYER}/.pseudo
|
||||||
echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/.g1pub
|
echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/.g1pub
|
||||||
|
|
||||||
echo "${ASTRONAUTENS}" > ~/.zen/game/players/${PLAYER}/.playerns
|
echo "${ASTRONAUTENS}" > ~/.zen/game/players/${PLAYER}/.playerns
|
||||||
|
|
||||||
echo "SALT=\"$SALT\"" > ~/.zen/game/players/${PLAYER}/secret.june
|
|
||||||
echo "PEPPER=\"$PEPPER\"" >> ~/.zen/game/players/${PLAYER}/secret.june
|
|
||||||
|
|
||||||
#~ echo; echo "Création Clefs et QR codes pour accès au niveau Astroport Ŋ1"; sleep 1
|
#~ echo; echo "Création Clefs et QR codes pour accès au niveau Astroport Ŋ1"; sleep 1
|
||||||
|
|
||||||
|
@ -484,9 +473,10 @@ echo "--- PLAYER : ${PLAYER} - DATA PROTOCOL LAYER LOADED";
|
||||||
|
|
||||||
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open "${myIPFS}/ipns/${ASTRONAUTENS}" && espeak "YOUR PASS IS $PASS"
|
[[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open "${myIPFS}/ipns/${ASTRONAUTENS}" && espeak "YOUR PASS IS $PASS"
|
||||||
|
|
||||||
################# PREPARE DOCKERIZATION
|
####### NO CURRENT ? PLAYER = .current
|
||||||
#~ [[ -l ~/.zen/game/players/.current ]] \
|
[[ ! -e ~/.zen/game/players/.current ]] \
|
||||||
#~ && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
&& rm ~/.zen/game/players/.current 2>/dev/null \
|
||||||
|
&& ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
||||||
|
|
||||||
. "${MY_PATH}/../tools/my.sh"
|
. "${MY_PATH}/../tools/my.sh"
|
||||||
|
|
||||||
|
@ -528,8 +518,7 @@ echo " "
|
||||||
echo "* AstroID : with PASS : $PASS"
|
echo "* AstroID : with PASS : $PASS"
|
||||||
echo "${NID}/ipns/${ASTRONAUTENS}#AstroID"
|
echo "${NID}/ipns/${ASTRONAUTENS}#AstroID"
|
||||||
echo
|
echo
|
||||||
echo "* UMap : registration at ${LAT}, ${LON}
|
echo "* UMap : registration at ${LAT}, ${LON}"
|
||||||
${myIPFS}${URL}"
|
|
||||||
echo
|
echo
|
||||||
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -550,7 +539,11 @@ echo "<html><head>
|
||||||
}
|
}
|
||||||
</style></head>
|
</style></head>
|
||||||
<body>
|
<body>
|
||||||
<h1>UPlanet : ZenCard + <a href='${myIPFS}/ipns/${ASTRONAUTENS}'>TW</a></h1>" > ~/.zen/tmp/${MOATS}/ZenCard.html
|
<h1>UPlanet : <a href='${myIPFS}/ipns/${ASTRONAUTENS}'>TW</a></h1>" > ~/.zen/tmp/${MOATS}/ZenCard.html
|
||||||
|
|
||||||
|
echo "<h2><a href='${myIPFS}/ipns/${ASTRONAUTENS}#ZenCard' title='${G1PUB}'>ZenCard</a></h2>
|
||||||
|
<img src='${myIPFSGW}${IASTRO}'\><br>" >> ~/.zen/tmp/${MOATS}/ZenCard.html
|
||||||
|
|
||||||
asciiart="${MY_PATH}/../images/astroport.art"
|
asciiart="${MY_PATH}/../images/astroport.art"
|
||||||
while IFS= read -r line
|
while IFS= read -r line
|
||||||
do
|
do
|
||||||
|
@ -558,9 +551,7 @@ do
|
||||||
echo "<br>" >> ~/.zen/tmp/${MOATS}/ZenCard.html
|
echo "<br>" >> ~/.zen/tmp/${MOATS}/ZenCard.html
|
||||||
done <"$asciiart"
|
done <"$asciiart"
|
||||||
|
|
||||||
echo "<h2>PRINT & SHARE <a href='${myIPFS}/ipns/${ASTRONAUTENS}#ZenCard' title='${G1PUB}'>ZenCard</a></h2>
|
echo "</body></html>" >> ~/.zen/tmp/${MOATS}/ZenCard.html
|
||||||
<img src='${myIPFSGW}${IASTRO}'\><br>
|
|
||||||
</body></html>" >> ~/.zen/tmp/${MOATS}/ZenCard.html
|
|
||||||
|
|
||||||
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/ZenCard.html "ZenCard (${PLAYER}) "
|
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/ZenCard.html "ZenCard (${PLAYER}) "
|
||||||
|
|
||||||
|
@ -581,7 +572,14 @@ echo "<html><head>
|
||||||
}
|
}
|
||||||
</style></head>
|
</style></head>
|
||||||
<body>
|
<body>
|
||||||
<h1>UPlanet : AstroID ($PASS)</h1>" > ~/.zen/tmp/${MOATS}/AstroID.html
|
<h1><a href='${myUPLANET}'>UPlanet</a> : AstroID</h1>" > ~/.zen/tmp/${MOATS}/AstroID.html
|
||||||
|
|
||||||
|
echo "<a href='${myIPFS}/ipns/${ASTRONAUTENS}#AstroID'>AstroID<br><img width=300px src='${myIPFSGW}${ASTROQR}'\></a>
|
||||||
|
<h3>SECRET1=\"$SALT\" SECRET2=\"$PEPPER\" ($PASS)</h3>
|
||||||
|
<h3>ASTROPORT : <a href='${myIPFS}/ipns/${IPFSNODEID}'>/ipns/${IPFSNODEID}</a></h3>
|
||||||
|
<h2> <--> SECTOR : <a href='${EARTHCID}/map_render.html?southWestLat=${LAT::-1}&southWestLon=${LON::-1}°=0.1'>${SECTOR}</a> <--> </h2>
|
||||||
|
" >> ~/.zen/tmp/${MOATS}/AstroID.html
|
||||||
|
|
||||||
asciiart="${MY_PATH}/../images/logoastro.art"
|
asciiart="${MY_PATH}/../images/logoastro.art"
|
||||||
while IFS= read -r line
|
while IFS= read -r line
|
||||||
do
|
do
|
||||||
|
@ -589,13 +587,7 @@ do
|
||||||
echo "<br>" >> ~/.zen/tmp/${MOATS}/AstroID.html
|
echo "<br>" >> ~/.zen/tmp/${MOATS}/AstroID.html
|
||||||
done <"$asciiart"
|
done <"$asciiart"
|
||||||
|
|
||||||
echo "
|
echo "</body></html>" >> ~/.zen/tmp/${MOATS}/AstroID.html
|
||||||
<h2> <--> 0.1 SECTOR : <a href='${EARTHCID}/map_render.html?southWestLat=${LAT::-1}&southWestLon=${LON::-1}°=0.1'>${SECTOR}</a> <--> </h2>
|
|
||||||
<br>PRINT & KEEP SAFE <a href='${myIPFS}/ipns/${ASTRONAUTENS}#AstroID'>AstroID<br><img width=120px src='${myIPFSGW}${ASTROQR}'\></a>
|
|
||||||
<br>SECRET1=$SALT<br>SECRET2=$PEPPER<br>($PASS)<br>
|
|
||||||
<h3>ASTROPORT : <a href='${myIPFS}/ipns/${IPFSNODEID}'>/ipns/${IPFSNODEID}</a></h3>
|
|
||||||
<a href='https://qo-op.com'>Uplanet</a>
|
|
||||||
</body></html>" >> ~/.zen/tmp/${MOATS}/AstroID.html
|
|
||||||
|
|
||||||
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/AstroID.html "AstroID (${PLAYER}) "
|
$MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/AstroID.html "AstroID (${PLAYER}) "
|
||||||
|
|
||||||
|
|
|
@ -275,7 +275,7 @@ do
|
||||||
${MY_PATH}/../tools/json_dir.all.sh ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}
|
${MY_PATH}/../tools/json_dir.all.sh ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}
|
||||||
|
|
||||||
WISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* | tail -n 1) # ADDING JSONS TO IPFS
|
WISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* | tail -n 1) # ADDING JSONS TO IPFS
|
||||||
ipfs name publish -k $VOEUKEY /ipfs/$WISHFLUX # PUBLISH $VOEUKEY
|
ipfs --timeout 180s name publish -k $VOEUKEY /ipfs/$WISHFLUX # PUBLISH $VOEUKEY
|
||||||
|
|
||||||
echo "## ASK ${myIPFSGW}${IPNS_VOEUNS} TO REFRESH" ## TODO LOOP BOOSTRAP & ONLINE FRIENDS
|
echo "## ASK ${myIPFSGW}${IPNS_VOEUNS} TO REFRESH" ## TODO LOOP BOOSTRAP & ONLINE FRIENDS
|
||||||
curl -m 120 -so ~/.zen/tmp/${WISHNAME}.astroindex.html "${myIPFSGW}${IPNS_VOEUNS}" &
|
curl -m 120 -so ~/.zen/tmp/${WISHNAME}.astroindex.html "${myIPFSGW}${IPNS_VOEUNS}" &
|
||||||
|
@ -285,6 +285,12 @@ do
|
||||||
echo "WALLET ${VOEUKEY} FOUNDED by ${G1PUB}"
|
echo "WALLET ${VOEUKEY} FOUNDED by ${G1PUB}"
|
||||||
cp -f ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* ~/.zen/game/players/${PLAYER}/G1${WISHNAME}/${G1PUB}/ 2>/dev/null
|
cp -f ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* ~/.zen/game/players/${PLAYER}/G1${WISHNAME}/${G1PUB}/ 2>/dev/null
|
||||||
|
|
||||||
|
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
||||||
|
echo "SEARCH WORLD SAME WISH CACHE"
|
||||||
|
[[ "$WISHNAME" != "" ]] && cat ~/.zen/game/world/$WISHNAME/*/.link 2>/dev/null
|
||||||
|
## ANYTIME A PLAYER CHOOSE AN ASTROPORT - LOCAL WISH CACHE IS EXTENDED -
|
||||||
|
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
||||||
|
|
||||||
done < ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt
|
done < ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt
|
||||||
|
|
||||||
################################################
|
################################################
|
||||||
|
@ -304,30 +310,29 @@ if [[ ${wishnumbers} -gt 0 ]]; then
|
||||||
LON=$(makecoord $LON)
|
LON=$(makecoord $LON)
|
||||||
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}"
|
echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}"
|
||||||
rm ~/.zen/tmp/${MOATS}/GPS.json
|
rm ~/.zen/tmp/${MOATS}/GPS.json
|
||||||
SECLAT="${LAT::-1}"
|
SLAT="${LAT::-1}"
|
||||||
SECLON="${LON::-1}"
|
SLON="${LON::-1}"
|
||||||
SECTOR="_${SECLAT}_${SECLON}"
|
SECTOR="_${SLAT}_${SLON}"
|
||||||
|
RLAT="$(echo ${LAT} | cut -d '.' -f 1)"
|
||||||
|
RLON="$(echo ${LON} | cut -d '.' -f 1)"
|
||||||
|
REGION="_${RLAT}_${RLON}"
|
||||||
##############################################################
|
##############################################################
|
||||||
SECTORG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}")
|
UMAPG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB | tail -n 1)
|
||||||
|
SECTORG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORG1PUB | tail -n 1)
|
||||||
|
[[ ${UMAPG1PUB} == "" ]] && UMAPG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}")
|
||||||
|
[[ ${SECTORG1PUB} == "" ]] && SECTORG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}")
|
||||||
##############################################################
|
##############################################################
|
||||||
GRATITUDE=$($MY_PATH/../tools/getcoins_from_gratitude_box.sh)
|
GRATITUDE=$($MY_PATH/../tools/getcoins_from_gratitude_box.sh)
|
||||||
G1AMOUNT=$(echo "$GRATITUDE / 10" | bc -l | xargs printf "%.2f" | sed "s~,~.~g" )
|
G1AMOUNT=$(echo "$GRATITUDE / 10" | bc -l | xargs printf "%.2f" | sed "s~,~.~g" )
|
||||||
echo "***** PLAYER $PLAYER *************************************"
|
echo "***** PLAYER $PLAYER *************************************"
|
||||||
echo "GRATITUDE ${GRATITUDE} ZEN = ${G1AMOUNT} G1
|
echo "GRATITUDE ${GRATITUDE} ZEN (${G1AMOUNT} G1)
|
||||||
to ${SECTOR} WALLET ${SECTORG1PUB}"
|
to UMAP_${LAT}_${LON} WALLET ${UMAPG1PUB}"
|
||||||
echo "************************************************************"
|
echo "************************************************************"
|
||||||
|
YOUSER=$($MY_PATH/../tools/clyuseryomail.sh "${PLAYER}")
|
||||||
MYWISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/* | tail -n 1) # ADDING JSONS TO IPFS
|
MYWISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/* | tail -n 1) # ADDING JSONS TO IPFS
|
||||||
${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${G1AMOUNT}" "${SECTORG1PUB}" "UPLANET:TWISH:$TODATE:/ipfs/${MYWISHFLUX}"
|
${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${G1AMOUNT}" "${UMAPG1PUB}" "UPLANET:UWISH:$YOUSER:/ipfs/${MYWISHFLUX}"
|
||||||
fi
|
fi
|
||||||
################################################
|
################################################
|
||||||
################################################ GRATITUDE SENT TO SECTOR
|
################################################ GRATITUDE SENT TO SECTOR
|
||||||
|
|
||||||
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
|
||||||
echo "TODO : REFRESH WORLD SAME WISH CACHE"
|
|
||||||
cat ~/.zen/game/world/$WISHNAME/*/.link 2>/dev/null
|
|
||||||
## ANYTIME A PLAYER CHOOSE AN ASTROPORT - LOCAL WISH CACHE IS EXTENDED -
|
|
||||||
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
|
|
||||||
|
|
||||||
############################################
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
SECTOR="$1"
|
SECTOR="$1"
|
||||||
[[ $SECTOR == "" ]] && echo "MISSING SECTOR ADRESS" && exit 1
|
[[ $SECTOR == "" ]] && echo "MISSING SECTOR ADRESS" && exit 1
|
||||||
MOATS="$2"
|
MOATS="$2"
|
||||||
|
G1PUB="$3"
|
||||||
|
|
||||||
## CHECK FOR BAD PARAM
|
## CHECK FOR BAD PARAM
|
||||||
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${SECTOR-empty}/ ]] \
|
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${SECTOR-empty}/ ]] \
|
||||||
|
@ -40,23 +41,24 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1)
|
||||||
echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}"
|
echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}"
|
||||||
|
|
||||||
## RETRIEVE FROM REGION UKEY
|
## RETRIEVE FROM REGION UKEY
|
||||||
${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${REGIONG1PUB} -j \
|
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${REGIONG1PUB} -j \
|
||||||
> ~/.zen/tmp/${MOATS}/${REGION}.g1history.json
|
> ~/.zen/tmp/${MOATS}/${REGION}.g1history.json
|
||||||
|
|
||||||
## SCAN FOR UPLANET:${SECTOR} in TX
|
## SCAN FOR UPLANET:${SECTOR} in TX
|
||||||
if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then
|
if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then
|
||||||
|
|
||||||
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json)
|
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1)
|
||||||
ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':/ipfs/\K[^"]+')
|
ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev)
|
||||||
todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':\K[^:]*')
|
todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev)
|
||||||
echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> /ipfs/$ipfs_pop"
|
echo "SYNC ${SECTOR} <= $todate => $ipfs_pop"
|
||||||
|
|
||||||
## TODO: SECURITY PATCH : check payment emitter is SECTORG1PUB
|
|
||||||
if [[ $ipfs_pop ]]; then
|
if [[ $ipfs_pop ]]; then
|
||||||
echo "from $todate memory slot"
|
g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .pubkey' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1)
|
||||||
ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop
|
echo "INFO :: $g1pub Memory updater"
|
||||||
|
ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${SECTOR} $ipfs_pop \
|
||||||
|
|| echo "$ipfs_pop ERROR ... "
|
||||||
else
|
else
|
||||||
echo "WARNING cannot remember... scan for more TX ??!"
|
echo "WARNING cannot revover any memory !!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -67,30 +69,4 @@ fi
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
echo "(${SECTOR}.memory) ${todate} get time : "`expr $end - $start` seconds.
|
echo "(${SECTOR}.memory) ${todate} get time : "`expr $end - $start` seconds.
|
||||||
|
|
||||||
#~ ## EXTRACT WORLDG1PUB HISTORY
|
|
||||||
#~ ${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${WORLDG1PUB} -j \
|
|
||||||
#~ > ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json
|
|
||||||
|
|
||||||
#~ ## SCAN FOR UPLANET:${SECTOR} in TX
|
|
||||||
#~ if [[ -s ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json ]]; then
|
|
||||||
|
|
||||||
#~ intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json)
|
|
||||||
#~ ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':/ipfs/\K[^"]+')
|
|
||||||
#~ todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':\K[^:]*')
|
|
||||||
#~ echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> /ipfs/$ipfs_pop"
|
|
||||||
|
|
||||||
#~ if [[ $ipfs_pop ]]; then
|
|
||||||
#~ echo "from $todate memory slot"
|
|
||||||
#~ ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop
|
|
||||||
#~ end=`date +%s`
|
|
||||||
#~ echo "(${SECTOR}) ${todate} get time : "`expr $end - $start` seconds.
|
|
||||||
#~ else
|
|
||||||
#~ echo "WARNING cannot remember... scan for more TX ??!"
|
|
||||||
#~ fi
|
|
||||||
|
|
||||||
#~ else
|
|
||||||
#~ echo "FATAL ERROR cannot access to WORLDG1PUB history"
|
|
||||||
#~ exit 1
|
|
||||||
#~ fi
|
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
UMAP="$1"
|
UMAP="$1"
|
||||||
[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1
|
[[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1
|
||||||
MOATS="$2"
|
MOATS="$2"
|
||||||
|
G1PUB="$3"
|
||||||
|
|
||||||
## CHECK FOR BAD PARAM
|
## CHECK FOR BAD PARAM
|
||||||
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \
|
[[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \
|
||||||
|
@ -43,23 +44,26 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${SECTORG1PUB} | tail -n 1)
|
||||||
echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}"
|
echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}"
|
||||||
|
|
||||||
## RETRIEVE FROM SECTOR UKEY
|
## RETRIEVE FROM SECTOR UKEY
|
||||||
${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${SECTORG1PUB} -j \
|
${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${SECTORG1PUB} -j \
|
||||||
> ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json
|
> ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json
|
||||||
|
|
||||||
## SCAN FOR UPLANET:${UMAP} in TX
|
## SCAN FOR UPLANET:${UMAP} in TX
|
||||||
if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then
|
if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then
|
||||||
|
|
||||||
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json)
|
intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
||||||
ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':/ipfs/\K[^"]+')
|
ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev)
|
||||||
todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':\K[^:]*')
|
todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev)
|
||||||
echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> /ipfs/$ipfs_pop"
|
echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> $ipfs_pop"
|
||||||
|
|
||||||
## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB
|
## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB
|
||||||
if [[ $ipfs_pop ]]; then
|
if [[ $ipfs_pop ]]; then
|
||||||
echo "from $todate memory slot"
|
echo "FOUND $todate MEMORY SLOT"
|
||||||
ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} /ipfs/$ipfs_pop
|
g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .pubkey' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1)
|
||||||
|
[[ "$g1pub" != "$G1PUB" ]] && echo "INFO :: $g1pub Memory updater"
|
||||||
|
ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${UMAP} $ipfs_pop \
|
||||||
|
|| echo "$ipfs_pop ERROR ... "
|
||||||
else
|
else
|
||||||
echo "WARNING cannot remember... scan for more TX ??!"
|
echo "WARNING cannot revover any memory !!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
@ -170,7 +170,7 @@
|
||||||
let durees = [];
|
let durees = [];
|
||||||
|
|
||||||
// Récupérer les données
|
// Récupérer les données
|
||||||
fetch('http://127.0.0.1:8080_VOEUNS_/__PLAYER_.tiddlers.json')
|
fetch('http://127.0.0.1:8080_VOEUNS_/__PLAYER_.tiddlers.rss.json')
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
// Extraire les gifanime
|
// Extraire les gifanime
|
||||||
|
|
31
_12345.sh
31
_12345.sh
|
@ -47,10 +47,11 @@ CHAN=$(ipfs key list -l | grep -w "MySwarm_${IPFSNODEID}" | cut -d ' ' -f 1)
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
## CREATE MySwarm KEYS ?
|
## CREATE MySwarm KEYS ?
|
||||||
if [[ ${CHAN} == "" || ${CHAN} == "null" ]]; then
|
if [[ ${CHAN} == "" || ${CHAN} == "null" || ! -s ~/.zen/game/myswarm_secret.june ]]; then
|
||||||
echo "## MAKE /proc/cpuinfo IPFSNODEID DERIVATED KEY ##"
|
echo "## MAKE /proc/cpuinfo IPFSNODEID DERIVATED KEY ##"
|
||||||
SECRET1=$(cat /proc/cpuinfo | grep -Ev MHz | sha512sum | cut -d ' ' -f 1)
|
SECRET1=$(cat /proc/cpuinfo | grep -Ev MHz | sha512sum | cut -d ' ' -f 1)
|
||||||
SECRET2=${IPFSNODEID}
|
SECRET2=${IPFSNODEID}
|
||||||
|
ipfs key rm "MySwarm_${IPFSNODEID}"
|
||||||
echo "SALT=$SECRET1 && PEPPER=$SECRET2" > ~/.zen/game/myswarm_secret.june
|
echo "SALT=$SECRET1 && PEPPER=$SECRET2" > ~/.zen/game/myswarm_secret.june
|
||||||
${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/game/myswarm_secret.ipfskey "$SECRET1" "$SECRET2"
|
${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/game/myswarm_secret.ipfskey "$SECRET1" "$SECRET2"
|
||||||
${MY_PATH}/tools/keygen -t duniter -o ~/.zen/game/myswarm_secret.dunikey "$SECRET1" "$SECRET2"
|
${MY_PATH}/tools/keygen -t duniter -o ~/.zen/game/myswarm_secret.dunikey "$SECRET1" "$SECRET2"
|
||||||
|
@ -65,15 +66,16 @@ echo "<meta http-equiv=\"refresh\" content=\"0; url='/ipns/${CHAN}'\" />" > ~/.z
|
||||||
############################################################
|
############################################################
|
||||||
############################################################
|
############################################################
|
||||||
echo 0 > ~/.zen/tmp/random.sleep
|
echo 0 > ~/.zen/tmp/random.sleep
|
||||||
###################
|
|
||||||
# NEVER ENDING LOOP
|
|
||||||
|
|
||||||
#### UPLANET FLASHMEM UPDATES
|
#### UPLANET FLASHMEM UPDATES
|
||||||
${MY_PATH}/RUNTIME/UPlanetKEYS_refresh.sh &
|
${MY_PATH}/RUNTIME/GEOKEYS_refresh.sh &
|
||||||
|
|
||||||
###################################################################
|
###################################################################
|
||||||
## WILL SCAN ALL BOOSTRAP - REFRESH "SELF IPNS BALISE" - RECEIVE UPLINK ORDERS
|
## WILL SCAN ALL BOOSTRAP - REFRESH "SELF IPNS BALISE" - RECEIVE UPLINK ORDERS
|
||||||
###################################################################
|
###################################################################
|
||||||
|
###################
|
||||||
|
# NEVER ENDING LOOP
|
||||||
while true; do
|
while true; do
|
||||||
|
|
||||||
start=`date +%s`
|
start=`date +%s`
|
||||||
|
@ -82,16 +84,27 @@ while true; do
|
||||||
lastrun=$(cat ~/.zen/tmp/${IPFSNODEID}/_MySwarm.moats)
|
lastrun=$(cat ~/.zen/tmp/${IPFSNODEID}/_MySwarm.moats)
|
||||||
duree=$(expr ${MOATS} - $lastrun)
|
duree=$(expr ${MOATS} - $lastrun)
|
||||||
|
|
||||||
|
### STOP SWARM SYNC 1H BEFORE 20H12
|
||||||
|
[[ $(date +"%H%M") -gt 1912 ]] \
|
||||||
|
&& echo "$(date +"%H%M") : 20H12 is coming... " && continue
|
||||||
|
|
||||||
## FIXING TIC TAC FOR NODE & SWARM REFRESH ( 1H )
|
## FIXING TIC TAC FOR NODE & SWARM REFRESH ( 1H )
|
||||||
if [[ ${duree} -gt 3600000 ]]; then
|
if [[ ${duree} -gt 3600000 ]]; then
|
||||||
|
|
||||||
|
PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
||||||
|
[[ ${PLAYERONE[@]} == "" ]] && echo "EMPTY ASTROPORT - NO PLAYER - NO PUBLISHING" && continue
|
||||||
|
|
||||||
|
## CHECK IF IPFS NODE IS RESPONDING
|
||||||
|
ipfs --timeout=30s swarm peers 2>/dev/null > ~/.zen/tmp/ipfs.swarm.peers
|
||||||
|
[[ ! -s ~/.zen/tmp/ipfs.swarm.peers || $? != 0 ]] \
|
||||||
|
&& echo "---- SWARM COMMUNICATION BROKEN / RESTARTING IPFS DAEMON ----" \
|
||||||
|
&& sudo systemctl restart ipfs \
|
||||||
|
&& sleep 60
|
||||||
|
|
||||||
${MY_PATH}/ping_bootstrap.sh
|
${MY_PATH}/ping_bootstrap.sh
|
||||||
|
|
||||||
#### UPLANET FLASHMEM UPDATES
|
#### UPLANET FLASHMEM UPDATES
|
||||||
${MY_PATH}/RUNTIME/UPlanetKEYS_refresh.sh &
|
${MY_PATH}/RUNTIME/GEOKEYS_refresh.sh &
|
||||||
|
|
||||||
PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
|
||||||
[[ ${PLAYERONE[@]} == "" ]] && echo "EMPTY ASTROPORT - NO PLAYER - NO PUBLISHING" && continue
|
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
( ##### SUB-PROCESS £
|
( ##### SUB-PROCESS £
|
||||||
|
@ -101,7 +114,7 @@ while true; do
|
||||||
for player in ${PLAYERONE[@]}; do
|
for player in ${PLAYERONE[@]}; do
|
||||||
g1pub=$(cat ~/.zen/game/players/${player}/.g1pub 2>/dev/null)
|
g1pub=$(cat ~/.zen/game/players/${player}/.g1pub 2>/dev/null)
|
||||||
# Check Station PLAYER payments
|
# Check Station PLAYER payments
|
||||||
PENDINGS=($(ls "$HOME/.zen/game/pending/${g1pub}/*.TX"))
|
PENDINGS=($(ls "$HOME/.zen/game/pending/${g1pub}/*.TX" 2>/dev/null))
|
||||||
for pending in "${PENDINGS[@]}"; do
|
for pending in "${PENDINGS[@]}"; do
|
||||||
echo ${pending}
|
echo ${pending}
|
||||||
# TODO TREAT PENDINGS
|
# TODO TREAT PENDINGS
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j
|
|
@ -0,0 +1,20 @@
|
||||||
|
1709306506 N8.txt= -25
|
||||||
|
1709306506 N2.txt= +25
|
||||||
|
1709306506 N3.txt= -1
|
||||||
|
1709306506 N10.txt= +1
|
||||||
|
1709306506 N7.txt= -43
|
||||||
|
1709306506 N8.txt= +43
|
||||||
|
1709306506 N3.txt= -14
|
||||||
|
1709306506 N10.txt= +14
|
||||||
|
1709306506 N9.txt= -48
|
||||||
|
1709306506 N6.txt= +48
|
||||||
|
1709306506 N10.txt= -37
|
||||||
|
1709306506 N9.txt= +37
|
||||||
|
1709306506 N4.txt= -21
|
||||||
|
1709306506 N5.txt= +21
|
||||||
|
1709306506 N4.txt= -15
|
||||||
|
1709306506 N7.txt= +15
|
||||||
|
1709306506 N6.txt= -47
|
||||||
|
1709306506 N3.txt= +47
|
||||||
|
1709306506 N6.txt= -1
|
||||||
|
1709306506 N3.txt= +1
|
|
@ -0,0 +1,200 @@
|
||||||
|
1709306497 N2.txt= -6
|
||||||
|
1709306497 N4.txt= +6
|
||||||
|
1709306497 N2.txt= -23
|
||||||
|
1709306497 N7.txt= +23
|
||||||
|
1709306497 N2.txt= -31
|
||||||
|
1709306497 N8.txt= +31
|
||||||
|
1709306497 N3.txt= -42
|
||||||
|
1709306497 N8.txt= +42
|
||||||
|
1709306497 N4.txt= -16
|
||||||
|
1709306497 N8.txt= +16
|
||||||
|
1709306497 N5.txt= -9
|
||||||
|
1709306497 N3.txt= +9
|
||||||
|
1709306497 N9.txt= -27
|
||||||
|
1709306497 N10.txt= +27
|
||||||
|
1709306497 N8.txt= -29
|
||||||
|
1709306497 N10.txt= +29
|
||||||
|
1709306497 N8.txt= -19
|
||||||
|
1709306497 N4.txt= +19
|
||||||
|
1709306497 N1.txt= -23
|
||||||
|
1709306497 N9.txt= +23
|
||||||
|
1709306498 N7.txt= -34
|
||||||
|
1709306498 N5.txt= +34
|
||||||
|
1709306498 N7.txt= -8
|
||||||
|
1709306498 N4.txt= +8
|
||||||
|
1709306498 N6.txt= -46
|
||||||
|
1709306498 N4.txt= +46
|
||||||
|
1709306498 N9.txt= -18
|
||||||
|
1709306498 N5.txt= +18
|
||||||
|
1709306498 N2.txt= -40
|
||||||
|
1709306498 N3.txt= +40
|
||||||
|
1709306498 N1.txt= -42
|
||||||
|
1709306498 N9.txt= +42
|
||||||
|
1709306498 N7.txt= -21
|
||||||
|
1709306498 N10.txt= +21
|
||||||
|
1709306498 N4.txt= -27
|
||||||
|
1709306498 N8.txt= +27
|
||||||
|
1709306498 N10.txt= -33
|
||||||
|
1709306498 N1.txt= +33
|
||||||
|
1709306498 N3.txt= -7
|
||||||
|
1709306498 N10.txt= +7
|
||||||
|
1709306499 N7.txt= -26
|
||||||
|
1709306499 N6.txt= +26
|
||||||
|
1709306499 N5.txt= -1
|
||||||
|
1709306499 N3.txt= +1
|
||||||
|
1709306499 N7.txt= -49
|
||||||
|
1709306499 N10.txt= +49
|
||||||
|
1709306499 N9.txt= -26
|
||||||
|
1709306499 N3.txt= +26
|
||||||
|
1709306499 N6.txt= -11
|
||||||
|
1709306499 N10.txt= +11
|
||||||
|
1709306499 N5.txt= -19
|
||||||
|
1709306499 N9.txt= +19
|
||||||
|
1709306499 N6.txt= -8
|
||||||
|
1709306499 N3.txt= +8
|
||||||
|
1709306499 N3.txt= -22
|
||||||
|
1709306499 N5.txt= +22
|
||||||
|
1709306499 N8.txt= -42
|
||||||
|
1709306499 N5.txt= +42
|
||||||
|
1709306499 N7.txt= -47
|
||||||
|
1709306499 N6.txt= +47
|
||||||
|
1709306500 N7.txt= -33
|
||||||
|
1709306500 N5.txt= +33
|
||||||
|
1709306500 N3.txt= -41
|
||||||
|
1709306500 N7.txt= +41
|
||||||
|
1709306500 N6.txt= -25
|
||||||
|
1709306500 N3.txt= +25
|
||||||
|
1709306500 N1.txt= -22
|
||||||
|
1709306500 N8.txt= +22
|
||||||
|
1709306500 N7.txt= -4
|
||||||
|
1709306500 N8.txt= +4
|
||||||
|
1709306500 N2.txt= -47
|
||||||
|
1709306500 N3.txt= +47
|
||||||
|
1709306500 N1.txt= -30
|
||||||
|
1709306500 N9.txt= +30
|
||||||
|
1709306500 N10.txt= -43
|
||||||
|
1709306500 N1.txt= +43
|
||||||
|
1709306500 N6.txt= -11
|
||||||
|
1709306500 N1.txt= +11
|
||||||
|
1709306500 N6.txt= -21
|
||||||
|
1709306500 N8.txt= +21
|
||||||
|
1709306501 N6.txt= -16
|
||||||
|
1709306501 N8.txt= +16
|
||||||
|
1709306501 N5.txt= -28
|
||||||
|
1709306501 N6.txt= +28
|
||||||
|
1709306501 N8.txt= -29
|
||||||
|
1709306501 N4.txt= +29
|
||||||
|
1709306501 N7.txt= -41
|
||||||
|
1709306501 N10.txt= +41
|
||||||
|
1709306501 N3.txt= -48
|
||||||
|
1709306501 N6.txt= +48
|
||||||
|
1709306501 N2.txt= -12
|
||||||
|
1709306501 N9.txt= +12
|
||||||
|
1709306501 N5.txt= -18
|
||||||
|
1709306501 N4.txt= +18
|
||||||
|
1709306501 N1.txt= -27
|
||||||
|
1709306501 N2.txt= +27
|
||||||
|
1709306501 N9.txt= -20
|
||||||
|
1709306501 N2.txt= +20
|
||||||
|
1709306501 N4.txt= -30
|
||||||
|
1709306501 N8.txt= +30
|
||||||
|
1709306502 N5.txt= -26
|
||||||
|
1709306502 N10.txt= +26
|
||||||
|
1709306502 N10.txt= -39
|
||||||
|
1709306502 N6.txt= +39
|
||||||
|
1709306502 N10.txt= -18
|
||||||
|
1709306502 N4.txt= +18
|
||||||
|
1709306502 N1.txt= -7
|
||||||
|
1709306502 N3.txt= +7
|
||||||
|
1709306502 N10.txt= -20
|
||||||
|
1709306502 N2.txt= +20
|
||||||
|
1709306502 N2.txt= -42
|
||||||
|
1709306502 N5.txt= +42
|
||||||
|
1709306502 N6.txt= -7
|
||||||
|
1709306502 N2.txt= +7
|
||||||
|
1709306502 N3.txt= -36
|
||||||
|
1709306502 N1.txt= +36
|
||||||
|
1709306502 N7.txt= -30
|
||||||
|
1709306502 N10.txt= +30
|
||||||
|
1709306502 N2.txt= -15
|
||||||
|
1709306502 N6.txt= +15
|
||||||
|
1709306503 N4.txt= -13
|
||||||
|
1709306503 N8.txt= +13
|
||||||
|
1709306503 N2.txt= -28
|
||||||
|
1709306503 N9.txt= +28
|
||||||
|
1709306503 N10.txt= -37
|
||||||
|
1709306503 N1.txt= +37
|
||||||
|
1709306503 N6.txt= -8
|
||||||
|
1709306503 N1.txt= +8
|
||||||
|
1709306503 N10.txt= -39
|
||||||
|
1709306503 N6.txt= +39
|
||||||
|
1709306503 N1.txt= -20
|
||||||
|
1709306503 N3.txt= +20
|
||||||
|
1709306503 N10.txt= -33
|
||||||
|
1709306503 N4.txt= +33
|
||||||
|
1709306503 N5.txt= -34
|
||||||
|
1709306503 N9.txt= +34
|
||||||
|
1709306503 N6.txt= -17
|
||||||
|
1709306503 N4.txt= +17
|
||||||
|
1709306503 N4.txt= -41
|
||||||
|
1709306503 N5.txt= +41
|
||||||
|
1709306504 N3.txt= -42
|
||||||
|
1709306504 N10.txt= +42
|
||||||
|
1709306504 N2.txt= -48
|
||||||
|
1709306504 N1.txt= +48
|
||||||
|
1709306504 N10.txt= -1
|
||||||
|
1709306504 N2.txt= +1
|
||||||
|
1709306504 N8.txt= -47
|
||||||
|
1709306504 N5.txt= +47
|
||||||
|
1709306504 N4.txt= -4
|
||||||
|
1709306504 N1.txt= +4
|
||||||
|
1709306504 N7.txt= -36
|
||||||
|
1709306504 N10.txt= +36
|
||||||
|
1709306504 N8.txt= -43
|
||||||
|
1709306504 N5.txt= +43
|
||||||
|
1709306504 N2.txt= -1
|
||||||
|
1709306504 N10.txt= +1
|
||||||
|
1709306504 N4.txt= -48
|
||||||
|
1709306504 N10.txt= +48
|
||||||
|
1709306504 N6.txt= -35
|
||||||
|
1709306504 N7.txt= +35
|
||||||
|
1709306505 N9.txt= -8
|
||||||
|
1709306505 N2.txt= +8
|
||||||
|
1709306505 N9.txt= -4
|
||||||
|
1709306505 N2.txt= +4
|
||||||
|
1709306505 N7.txt= -26
|
||||||
|
1709306505 N10.txt= +26
|
||||||
|
1709306505 N10.txt= -21
|
||||||
|
1709306505 N7.txt= +21
|
||||||
|
1709306505 N8.txt= -31
|
||||||
|
1709306505 N7.txt= +31
|
||||||
|
1709306505 N8.txt= -11
|
||||||
|
1709306505 N10.txt= +11
|
||||||
|
1709306505 N1.txt= -22
|
||||||
|
1709306505 N6.txt= +22
|
||||||
|
1709306505 N3.txt= -16
|
||||||
|
1709306505 N5.txt= +16
|
||||||
|
1709306505 N8.txt= -19
|
||||||
|
1709306505 N3.txt= +19
|
||||||
|
1709306505 N6.txt= -10
|
||||||
|
1709306505 N4.txt= +10
|
||||||
|
1709306506 N8.txt= -25
|
||||||
|
1709306506 N2.txt= +25
|
||||||
|
1709306506 N3.txt= -1
|
||||||
|
1709306506 N10.txt= +1
|
||||||
|
1709306506 N7.txt= -43
|
||||||
|
1709306506 N8.txt= +43
|
||||||
|
1709306506 N3.txt= -14
|
||||||
|
1709306506 N10.txt= +14
|
||||||
|
1709306506 N9.txt= -48
|
||||||
|
1709306506 N6.txt= +48
|
||||||
|
1709306506 N10.txt= -37
|
||||||
|
1709306506 N9.txt= +37
|
||||||
|
1709306506 N4.txt= -21
|
||||||
|
1709306506 N5.txt= +21
|
||||||
|
1709306506 N4.txt= -15
|
||||||
|
1709306506 N7.txt= +15
|
||||||
|
1709306506 N6.txt= -47
|
||||||
|
1709306506 N3.txt= +47
|
||||||
|
1709306506 N6.txt= -1
|
||||||
|
1709306506 N3.txt= +1
|
|
@ -0,0 +1,80 @@
|
||||||
|
import os
|
||||||
|
import random
|
||||||
|
import time
|
||||||
|
|
||||||
|
folder_user = './../LACHAINE'
|
||||||
|
|
||||||
|
def genesis():
|
||||||
|
print("Lancement de la chaine")
|
||||||
|
with open("chaine.txt", "w") as fichier:
|
||||||
|
fichier.write("")
|
||||||
|
|
||||||
|
def get_users_account():
|
||||||
|
if os.path.isdir(folder_user):
|
||||||
|
users_name = os.listdir(folder_user)
|
||||||
|
return users_name
|
||||||
|
|
||||||
|
def regeneration_account(users_name):
|
||||||
|
for user in users_name:
|
||||||
|
with open(os.path.join(folder_user, user), "w") as fichier:
|
||||||
|
fichier.write("N=100")
|
||||||
|
|
||||||
|
def create_block(users_name):
|
||||||
|
with open("block.txt", "w") as fichier:
|
||||||
|
fichier.write("")
|
||||||
|
for i in range(10):
|
||||||
|
transaction = create_transaction(users_name)
|
||||||
|
|
||||||
|
def create_transaction(users_name):
|
||||||
|
debtor = random.choice(users_name)
|
||||||
|
creditor = random.choice(users_name)
|
||||||
|
while debtor == creditor:
|
||||||
|
creditor = random.choice(users_name)
|
||||||
|
payment = random.randint(1, 50)
|
||||||
|
print('debtor:', debtor, 'creditor:', creditor, 'payment:', payment)
|
||||||
|
debit_value(debtor, payment)
|
||||||
|
credit_value(creditor, payment)
|
||||||
|
with open("block.txt", "a") as fichier:
|
||||||
|
timestamp = int(time.time())
|
||||||
|
fichier.write(str(timestamp)+' '+debtor+"= -"+str(payment)+'\n')
|
||||||
|
fichier.write(str(timestamp)+' '+creditor+"= +"+str(payment)+'\n')
|
||||||
|
|
||||||
|
def debit_value(debtor, payment):
|
||||||
|
with open(os.path.join(folder_user, debtor), "r") as fichier:
|
||||||
|
account = fichier.read()
|
||||||
|
account_value = int(account.split("=")[1])
|
||||||
|
new_account_value = "N="+ str(account_value - payment)
|
||||||
|
with open(os.path.join(folder_user, debtor), "w") as fichier:
|
||||||
|
fichier.write(new_account_value)
|
||||||
|
|
||||||
|
|
||||||
|
def credit_value(creditor, payment):
|
||||||
|
with open(os.path.join(folder_user, creditor), "r") as fichier:
|
||||||
|
account = fichier.read()
|
||||||
|
account_value = int(account.split("=")[1])
|
||||||
|
new_account_value = "N="+ str(account_value + payment)
|
||||||
|
with open(os.path.join(folder_user, creditor), "w") as fichier:
|
||||||
|
fichier.write(new_account_value)
|
||||||
|
|
||||||
|
|
||||||
|
def get_account_value(user):
|
||||||
|
path = os.path.join(folder_user, user)
|
||||||
|
with open(path, "r") as fichier:
|
||||||
|
contenu_lu = fichier.read()
|
||||||
|
print(user, contenu_lu)
|
||||||
|
|
||||||
|
def push_to_chaine():
|
||||||
|
with open("block.txt", "r") as fichier:
|
||||||
|
block = fichier.read()
|
||||||
|
with open("chaine.txt", "a") as fichier:
|
||||||
|
fichier.write(block)
|
||||||
|
|
||||||
|
genesis()
|
||||||
|
users_name = get_users_account()
|
||||||
|
regeneration_account(users_name)
|
||||||
|
for i in range(10):
|
||||||
|
time.sleep(1)
|
||||||
|
create_block(users_name)
|
||||||
|
push_to_chaine()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
N=127
|
|
@ -0,0 +1 @@
|
||||||
|
N=199
|
|
@ -0,0 +1 @@
|
||||||
|
N=-81
|
|
@ -0,0 +1 @@
|
||||||
|
N=81
|
|
@ -0,0 +1 @@
|
||||||
|
N=89
|
|
@ -0,0 +1 @@
|
||||||
|
N=324
|
|
@ -0,0 +1 @@
|
||||||
|
N=149
|
|
@ -0,0 +1 @@
|
||||||
|
N=-132
|
|
@ -0,0 +1 @@
|
||||||
|
N=70
|
|
@ -0,0 +1 @@
|
||||||
|
N=174
|
|
@ -7,3 +7,6 @@ Connaissances techniques: Python, Bash, Docker, SQL, MongoDB, Power BI
|
||||||
Activité pro: Data analyst
|
Activité pro: Data analyst
|
||||||
Objectif souhaité: Utiliser la technologie blockchain dans un point de vue Data engineering
|
Objectif souhaité: Utiliser la technologie blockchain dans un point de vue Data engineering
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
ipfs_id=12D3KooWHfPeHQCqmZHzYs5pMa5LqEjxcEZDLJZgU92kLr5JAXhT
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
10.799999999999978
|
|
@ -0,0 +1 @@
|
||||||
|
31.39999999999999
|
|
@ -0,0 +1 @@
|
||||||
|
60.699999999999974
|
|
@ -0,0 +1 @@
|
||||||
|
65.69999999999996
|
|
@ -0,0 +1 @@
|
||||||
|
43.99999999999998
|
|
@ -0,0 +1 @@
|
||||||
|
-29.10000000000003
|
|
@ -0,0 +1 @@
|
||||||
|
50.89999999999997
|
|
@ -0,0 +1 @@
|
||||||
|
24.49999999999998
|
|
@ -0,0 +1 @@
|
||||||
|
35.19999999999997
|
|
@ -0,0 +1 @@
|
||||||
|
70.59999999999997
|
|
@ -0,0 +1 @@
|
||||||
|
35.29999999999996
|
|
@ -0,0 +1,103 @@
|
||||||
|
N_TOTAL = 1000
|
||||||
|
|
||||||
|
from time import sleep
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def read_sold(user):
|
||||||
|
sold = 0
|
||||||
|
with open(f'./LACHAINE/{user}.txt', 'r') as file:
|
||||||
|
file_content = file.read()
|
||||||
|
sold = float(file_content)
|
||||||
|
return sold
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def write_sold(user, sold):
|
||||||
|
with open(f'./LACHAINE/{user}.txt', 'w') as file:
|
||||||
|
file.write(str(sold))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def read_tx():
|
||||||
|
transactions = []
|
||||||
|
with open('./tx_list.txt', 'r') as file:
|
||||||
|
file_content = file.read()
|
||||||
|
transactions = file_content.split('\n')
|
||||||
|
|
||||||
|
tx = []
|
||||||
|
for t in transactions:
|
||||||
|
tx.append(t.split(','))
|
||||||
|
return tx
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
tx = read_tx()
|
||||||
|
for t in tx:
|
||||||
|
sleep(0.1)
|
||||||
|
demandeur = t[5]
|
||||||
|
montant = float(t[4])
|
||||||
|
montant_without_commission = montant - 0.10
|
||||||
|
N1 = t[1]
|
||||||
|
if N1 != demandeur:
|
||||||
|
print(f'tx:{t[0]: <4} -> Processing transaction 🚫')
|
||||||
|
continue
|
||||||
|
print(f'tx:{t[0]: <4} -> Processing transaction ✅')
|
||||||
|
N2 = t[2]
|
||||||
|
tx_type = t[3]
|
||||||
|
sold_N1 = read_sold(N1)
|
||||||
|
sold_N2 = read_sold(N2)
|
||||||
|
if tx_type == '-':
|
||||||
|
sold_N1 -= montant_without_commission
|
||||||
|
sold_N2 += montant_without_commission
|
||||||
|
elif tx_type == '+':
|
||||||
|
sold_N1 -= montant_without_commission
|
||||||
|
sold_N2 -= montant_without_commission
|
||||||
|
write_sold(N1, sold_N1)
|
||||||
|
write_sold(N2, sold_N2)
|
||||||
|
N0_sold = read_sold('N0')
|
||||||
|
write_sold('N0',N0_sold+0.1)
|
||||||
|
|
||||||
|
|
||||||
|
def tx_generator():
|
||||||
|
file_path = './tx_list.txt'
|
||||||
|
try:
|
||||||
|
with open(file_path, 'w') as file:
|
||||||
|
for i in range(1, 1000):
|
||||||
|
n_i = random.randint(1, 10)
|
||||||
|
n_i_plus_1 = random.randint(1, 10)
|
||||||
|
n_demandeur = random.randint(1, 10)
|
||||||
|
montant = random.randint(1, 10)
|
||||||
|
tx_type = random.choice(['-', '+'])
|
||||||
|
if i == 999:
|
||||||
|
line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}"
|
||||||
|
else:
|
||||||
|
line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}\n"
|
||||||
|
file.write(line)
|
||||||
|
|
||||||
|
print(f"Content successfully written to '{file_path}'.")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"An error occurred: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
def reset_account():
|
||||||
|
for i in range(0, 11):
|
||||||
|
with open(f'./LACHAINE/N{i}.txt', 'w') as file:
|
||||||
|
if i == 0:
|
||||||
|
file.write('0')
|
||||||
|
else:
|
||||||
|
file.write('100')
|
||||||
|
print('Reset done')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
tx_generator()
|
||||||
|
reset_account()
|
||||||
|
main()
|
|
@ -0,0 +1,999 @@
|
||||||
|
1,N1,N10,+,9,N10
|
||||||
|
2,N10,N6,-,7,N5
|
||||||
|
3,N5,N6,-,5,N10
|
||||||
|
4,N4,N3,+,3,N5
|
||||||
|
5,N2,N3,-,1,N9
|
||||||
|
6,N10,N7,+,2,N1
|
||||||
|
7,N7,N2,+,10,N6
|
||||||
|
8,N9,N10,+,6,N1
|
||||||
|
9,N4,N2,+,4,N9
|
||||||
|
10,N6,N1,+,9,N8
|
||||||
|
11,N8,N1,+,10,N2
|
||||||
|
12,N8,N1,+,3,N9
|
||||||
|
13,N7,N1,+,8,N10
|
||||||
|
14,N3,N1,+,8,N8
|
||||||
|
15,N10,N1,-,1,N1
|
||||||
|
16,N9,N1,-,9,N6
|
||||||
|
17,N2,N1,+,7,N9
|
||||||
|
18,N6,N1,-,5,N8
|
||||||
|
19,N9,N1,+,7,N5
|
||||||
|
20,N5,N1,-,3,N5
|
||||||
|
21,N4,N1,+,2,N2
|
||||||
|
22,N8,N1,-,2,N4
|
||||||
|
23,N10,N1,+,9,N1
|
||||||
|
24,N10,N1,-,2,N3
|
||||||
|
25,N4,N1,+,5,N3
|
||||||
|
26,N6,N1,-,9,N2
|
||||||
|
27,N8,N1,+,1,N2
|
||||||
|
28,N7,N1,+,10,N8
|
||||||
|
29,N2,N1,-,6,N10
|
||||||
|
30,N6,N1,-,8,N7
|
||||||
|
31,N7,N1,+,8,N3
|
||||||
|
32,N4,N1,+,1,N7
|
||||||
|
33,N5,N1,-,5,N7
|
||||||
|
34,N10,N1,+,5,N3
|
||||||
|
35,N3,N1,+,4,N3
|
||||||
|
36,N3,N1,+,5,N1
|
||||||
|
37,N5,N1,-,6,N9
|
||||||
|
38,N1,N1,+,4,N9
|
||||||
|
39,N3,N1,+,1,N4
|
||||||
|
40,N7,N1,+,1,N8
|
||||||
|
41,N2,N1,+,1,N7
|
||||||
|
42,N9,N1,+,8,N8
|
||||||
|
43,N8,N1,-,5,N6
|
||||||
|
44,N8,N1,+,10,N5
|
||||||
|
45,N3,N1,+,10,N2
|
||||||
|
46,N9,N1,+,7,N9
|
||||||
|
47,N3,N1,+,2,N3
|
||||||
|
48,N7,N1,+,5,N5
|
||||||
|
49,N6,N1,+,8,N8
|
||||||
|
50,N10,N1,-,1,N5
|
||||||
|
51,N2,N1,+,2,N3
|
||||||
|
52,N8,N1,+,4,N10
|
||||||
|
53,N7,N1,-,4,N8
|
||||||
|
54,N4,N1,-,9,N6
|
||||||
|
55,N4,N1,-,6,N9
|
||||||
|
56,N2,N1,+,8,N3
|
||||||
|
57,N5,N1,-,8,N4
|
||||||
|
58,N2,N1,-,8,N7
|
||||||
|
59,N8,N1,-,9,N6
|
||||||
|
60,N5,N1,+,4,N2
|
||||||
|
61,N8,N1,-,4,N6
|
||||||
|
62,N10,N1,+,5,N1
|
||||||
|
63,N1,N1,+,10,N4
|
||||||
|
64,N4,N1,+,9,N4
|
||||||
|
65,N1,N1,-,2,N4
|
||||||
|
66,N1,N1,-,8,N2
|
||||||
|
67,N7,N1,-,10,N5
|
||||||
|
68,N4,N1,+,8,N6
|
||||||
|
69,N10,N1,-,10,N9
|
||||||
|
70,N3,N1,-,10,N7
|
||||||
|
71,N4,N1,-,4,N10
|
||||||
|
72,N6,N1,-,9,N7
|
||||||
|
73,N4,N1,+,7,N6
|
||||||
|
74,N7,N1,-,5,N1
|
||||||
|
75,N10,N1,+,9,N9
|
||||||
|
76,N5,N1,+,9,N6
|
||||||
|
77,N9,N1,-,10,N7
|
||||||
|
78,N2,N1,+,8,N4
|
||||||
|
79,N7,N1,-,1,N1
|
||||||
|
80,N7,N1,+,1,N5
|
||||||
|
81,N9,N1,+,10,N3
|
||||||
|
82,N1,N1,-,6,N9
|
||||||
|
83,N3,N1,+,4,N5
|
||||||
|
84,N9,N1,+,7,N8
|
||||||
|
85,N1,N1,-,7,N9
|
||||||
|
86,N5,N1,-,1,N1
|
||||||
|
87,N10,N1,+,10,N7
|
||||||
|
88,N3,N1,-,8,N1
|
||||||
|
89,N5,N1,+,6,N2
|
||||||
|
90,N7,N1,+,3,N6
|
||||||
|
91,N8,N1,-,8,N9
|
||||||
|
92,N8,N1,+,10,N2
|
||||||
|
93,N8,N1,+,3,N10
|
||||||
|
94,N6,N1,-,8,N6
|
||||||
|
95,N7,N1,+,1,N1
|
||||||
|
96,N10,N1,+,5,N2
|
||||||
|
97,N4,N1,-,7,N10
|
||||||
|
98,N7,N1,-,4,N7
|
||||||
|
99,N6,N1,+,3,N7
|
||||||
|
100,N9,N1,+,3,N4
|
||||||
|
101,N5,N1,-,3,N6
|
||||||
|
102,N4,N1,-,6,N4
|
||||||
|
103,N1,N1,+,2,N7
|
||||||
|
104,N8,N1,-,2,N6
|
||||||
|
105,N2,N1,-,3,N2
|
||||||
|
106,N9,N1,-,9,N1
|
||||||
|
107,N4,N1,-,7,N10
|
||||||
|
108,N4,N1,+,3,N10
|
||||||
|
109,N8,N1,+,3,N7
|
||||||
|
110,N6,N1,+,2,N6
|
||||||
|
111,N3,N1,-,4,N6
|
||||||
|
112,N10,N1,-,7,N10
|
||||||
|
113,N4,N1,-,8,N4
|
||||||
|
114,N4,N1,-,2,N6
|
||||||
|
115,N7,N1,-,2,N2
|
||||||
|
116,N2,N1,+,4,N4
|
||||||
|
117,N8,N1,-,9,N6
|
||||||
|
118,N6,N1,+,7,N6
|
||||||
|
119,N6,N1,+,5,N1
|
||||||
|
120,N4,N1,+,10,N1
|
||||||
|
121,N7,N1,-,3,N10
|
||||||
|
122,N3,N1,+,10,N8
|
||||||
|
123,N7,N1,+,7,N6
|
||||||
|
124,N8,N1,+,10,N9
|
||||||
|
125,N4,N1,+,10,N3
|
||||||
|
126,N2,N1,+,1,N7
|
||||||
|
127,N1,N1,+,2,N4
|
||||||
|
128,N2,N1,+,6,N8
|
||||||
|
129,N5,N1,-,10,N2
|
||||||
|
130,N1,N1,+,2,N6
|
||||||
|
131,N9,N1,+,4,N2
|
||||||
|
132,N2,N1,+,2,N1
|
||||||
|
133,N4,N1,+,9,N4
|
||||||
|
134,N9,N1,+,4,N10
|
||||||
|
135,N5,N1,+,6,N9
|
||||||
|
136,N10,N1,+,3,N9
|
||||||
|
137,N3,N1,-,3,N5
|
||||||
|
138,N7,N1,-,5,N8
|
||||||
|
139,N6,N1,+,8,N6
|
||||||
|
140,N2,N1,-,2,N2
|
||||||
|
141,N2,N1,+,4,N9
|
||||||
|
142,N3,N1,-,6,N7
|
||||||
|
143,N1,N1,+,9,N7
|
||||||
|
144,N2,N1,-,6,N8
|
||||||
|
145,N4,N1,+,8,N3
|
||||||
|
146,N7,N1,+,1,N2
|
||||||
|
147,N6,N1,-,8,N6
|
||||||
|
148,N10,N1,-,10,N6
|
||||||
|
149,N1,N1,+,8,N5
|
||||||
|
150,N6,N1,+,2,N1
|
||||||
|
151,N7,N1,-,3,N2
|
||||||
|
152,N4,N1,-,9,N5
|
||||||
|
153,N8,N1,+,5,N7
|
||||||
|
154,N7,N1,+,10,N5
|
||||||
|
155,N4,N1,+,1,N4
|
||||||
|
156,N8,N1,+,5,N10
|
||||||
|
157,N10,N1,+,10,N1
|
||||||
|
158,N2,N1,-,1,N3
|
||||||
|
159,N4,N1,-,10,N9
|
||||||
|
160,N2,N1,-,3,N10
|
||||||
|
161,N1,N1,-,6,N7
|
||||||
|
162,N2,N1,+,8,N3
|
||||||
|
163,N3,N1,-,7,N3
|
||||||
|
164,N6,N1,+,3,N6
|
||||||
|
165,N6,N1,+,9,N4
|
||||||
|
166,N1,N1,-,5,N3
|
||||||
|
167,N2,N1,-,3,N3
|
||||||
|
168,N5,N1,+,1,N6
|
||||||
|
169,N6,N1,-,10,N8
|
||||||
|
170,N3,N1,+,10,N9
|
||||||
|
171,N8,N1,+,3,N3
|
||||||
|
172,N6,N1,+,5,N2
|
||||||
|
173,N2,N1,-,8,N3
|
||||||
|
174,N4,N1,-,6,N10
|
||||||
|
175,N6,N1,-,10,N2
|
||||||
|
176,N4,N1,-,9,N9
|
||||||
|
177,N1,N1,-,10,N5
|
||||||
|
178,N4,N1,-,2,N7
|
||||||
|
179,N1,N1,+,3,N8
|
||||||
|
180,N6,N1,-,9,N4
|
||||||
|
181,N8,N1,+,8,N2
|
||||||
|
182,N9,N1,+,2,N3
|
||||||
|
183,N10,N1,+,1,N4
|
||||||
|
184,N1,N1,-,8,N3
|
||||||
|
185,N9,N1,-,3,N2
|
||||||
|
186,N1,N1,-,1,N6
|
||||||
|
187,N5,N1,-,10,N10
|
||||||
|
188,N8,N1,+,5,N4
|
||||||
|
189,N5,N1,-,10,N10
|
||||||
|
190,N10,N1,+,6,N9
|
||||||
|
191,N7,N1,+,4,N9
|
||||||
|
192,N8,N1,-,2,N4
|
||||||
|
193,N10,N1,+,3,N3
|
||||||
|
194,N6,N1,-,6,N6
|
||||||
|
195,N10,N1,-,7,N10
|
||||||
|
196,N9,N1,+,4,N3
|
||||||
|
197,N4,N1,-,7,N7
|
||||||
|
198,N2,N1,+,9,N9
|
||||||
|
199,N4,N1,-,2,N5
|
||||||
|
200,N10,N1,+,9,N6
|
||||||
|
201,N2,N1,+,3,N6
|
||||||
|
202,N8,N1,-,5,N5
|
||||||
|
203,N4,N1,+,1,N8
|
||||||
|
204,N7,N1,+,5,N2
|
||||||
|
205,N5,N1,+,5,N10
|
||||||
|
206,N3,N1,+,9,N7
|
||||||
|
207,N6,N1,+,5,N1
|
||||||
|
208,N7,N1,-,3,N3
|
||||||
|
209,N2,N1,-,4,N9
|
||||||
|
210,N5,N1,-,4,N6
|
||||||
|
211,N9,N1,+,4,N6
|
||||||
|
212,N10,N1,+,9,N2
|
||||||
|
213,N3,N1,-,1,N1
|
||||||
|
214,N5,N1,+,10,N7
|
||||||
|
215,N4,N1,-,3,N6
|
||||||
|
216,N1,N1,+,5,N8
|
||||||
|
217,N7,N1,-,10,N6
|
||||||
|
218,N8,N1,+,1,N6
|
||||||
|
219,N3,N1,+,8,N10
|
||||||
|
220,N9,N1,-,2,N8
|
||||||
|
221,N6,N1,+,7,N6
|
||||||
|
222,N8,N1,+,4,N6
|
||||||
|
223,N6,N1,-,2,N5
|
||||||
|
224,N8,N1,+,7,N9
|
||||||
|
225,N7,N1,+,3,N7
|
||||||
|
226,N1,N1,+,5,N9
|
||||||
|
227,N8,N1,-,8,N2
|
||||||
|
228,N3,N1,+,8,N8
|
||||||
|
229,N8,N1,+,7,N7
|
||||||
|
230,N2,N1,+,2,N7
|
||||||
|
231,N3,N1,+,9,N2
|
||||||
|
232,N4,N1,-,3,N7
|
||||||
|
233,N6,N1,+,10,N9
|
||||||
|
234,N3,N1,+,1,N2
|
||||||
|
235,N5,N1,+,2,N7
|
||||||
|
236,N4,N1,+,2,N2
|
||||||
|
237,N3,N1,+,10,N6
|
||||||
|
238,N7,N1,-,7,N3
|
||||||
|
239,N4,N1,+,2,N8
|
||||||
|
240,N9,N1,+,9,N1
|
||||||
|
241,N10,N1,+,7,N9
|
||||||
|
242,N4,N1,-,10,N6
|
||||||
|
243,N9,N1,-,2,N3
|
||||||
|
244,N6,N1,+,9,N2
|
||||||
|
245,N10,N1,+,4,N3
|
||||||
|
246,N1,N1,+,3,N10
|
||||||
|
247,N9,N1,-,9,N8
|
||||||
|
248,N2,N1,-,1,N10
|
||||||
|
249,N6,N1,-,4,N8
|
||||||
|
250,N5,N1,-,10,N5
|
||||||
|
251,N6,N1,+,7,N7
|
||||||
|
252,N2,N1,-,9,N10
|
||||||
|
253,N10,N1,+,10,N8
|
||||||
|
254,N2,N1,+,7,N8
|
||||||
|
255,N8,N1,+,2,N4
|
||||||
|
256,N6,N1,+,1,N3
|
||||||
|
257,N4,N1,+,6,N8
|
||||||
|
258,N1,N1,-,7,N4
|
||||||
|
259,N6,N1,-,10,N1
|
||||||
|
260,N6,N1,-,6,N5
|
||||||
|
261,N3,N1,-,8,N3
|
||||||
|
262,N9,N1,-,1,N4
|
||||||
|
263,N4,N1,+,9,N6
|
||||||
|
264,N9,N1,+,7,N10
|
||||||
|
265,N7,N1,+,10,N3
|
||||||
|
266,N10,N1,-,7,N5
|
||||||
|
267,N4,N1,+,7,N5
|
||||||
|
268,N7,N1,+,8,N4
|
||||||
|
269,N2,N1,-,4,N10
|
||||||
|
270,N5,N1,+,5,N9
|
||||||
|
271,N3,N1,+,9,N7
|
||||||
|
272,N4,N1,-,3,N4
|
||||||
|
273,N8,N1,-,7,N1
|
||||||
|
274,N7,N1,-,8,N6
|
||||||
|
275,N8,N1,-,1,N8
|
||||||
|
276,N3,N1,-,7,N3
|
||||||
|
277,N1,N1,+,5,N9
|
||||||
|
278,N6,N1,-,9,N9
|
||||||
|
279,N8,N1,-,7,N6
|
||||||
|
280,N8,N1,+,2,N5
|
||||||
|
281,N6,N1,+,4,N1
|
||||||
|
282,N8,N1,+,5,N7
|
||||||
|
283,N2,N1,-,7,N5
|
||||||
|
284,N2,N1,-,2,N2
|
||||||
|
285,N1,N1,-,7,N8
|
||||||
|
286,N7,N1,+,5,N5
|
||||||
|
287,N10,N1,+,9,N7
|
||||||
|
288,N7,N1,-,4,N7
|
||||||
|
289,N10,N1,-,5,N10
|
||||||
|
290,N4,N1,+,10,N9
|
||||||
|
291,N10,N1,+,7,N6
|
||||||
|
292,N4,N1,+,10,N7
|
||||||
|
293,N6,N1,-,4,N1
|
||||||
|
294,N2,N1,+,8,N7
|
||||||
|
295,N4,N1,+,9,N4
|
||||||
|
296,N8,N1,+,10,N10
|
||||||
|
297,N8,N1,+,7,N5
|
||||||
|
298,N8,N1,+,5,N1
|
||||||
|
299,N4,N1,+,5,N8
|
||||||
|
300,N8,N1,+,7,N6
|
||||||
|
301,N3,N1,-,9,N1
|
||||||
|
302,N7,N1,-,1,N1
|
||||||
|
303,N9,N1,-,10,N10
|
||||||
|
304,N4,N1,+,3,N6
|
||||||
|
305,N10,N1,-,3,N2
|
||||||
|
306,N1,N1,+,7,N1
|
||||||
|
307,N5,N1,+,5,N3
|
||||||
|
308,N6,N1,-,3,N10
|
||||||
|
309,N7,N1,+,6,N7
|
||||||
|
310,N4,N1,+,9,N4
|
||||||
|
311,N7,N1,-,6,N2
|
||||||
|
312,N3,N1,+,6,N5
|
||||||
|
313,N1,N1,-,4,N10
|
||||||
|
314,N6,N1,+,9,N3
|
||||||
|
315,N4,N1,+,7,N8
|
||||||
|
316,N4,N1,+,2,N5
|
||||||
|
317,N2,N1,-,6,N4
|
||||||
|
318,N10,N1,-,8,N10
|
||||||
|
319,N10,N1,-,3,N7
|
||||||
|
320,N4,N1,-,5,N6
|
||||||
|
321,N9,N1,+,7,N2
|
||||||
|
322,N8,N1,-,10,N4
|
||||||
|
323,N2,N1,+,1,N1
|
||||||
|
324,N8,N1,+,2,N3
|
||||||
|
325,N8,N1,+,6,N9
|
||||||
|
326,N10,N1,+,4,N6
|
||||||
|
327,N10,N1,-,1,N4
|
||||||
|
328,N8,N1,+,3,N7
|
||||||
|
329,N4,N1,-,8,N2
|
||||||
|
330,N2,N1,-,7,N5
|
||||||
|
331,N8,N1,+,1,N3
|
||||||
|
332,N6,N1,-,1,N1
|
||||||
|
333,N9,N1,-,4,N2
|
||||||
|
334,N9,N1,-,3,N8
|
||||||
|
335,N4,N1,-,9,N2
|
||||||
|
336,N5,N1,+,5,N4
|
||||||
|
337,N2,N1,-,3,N10
|
||||||
|
338,N8,N1,-,2,N5
|
||||||
|
339,N8,N1,+,10,N4
|
||||||
|
340,N10,N1,+,9,N5
|
||||||
|
341,N10,N1,-,1,N10
|
||||||
|
342,N8,N1,-,3,N7
|
||||||
|
343,N9,N1,+,9,N5
|
||||||
|
344,N3,N1,-,10,N7
|
||||||
|
345,N10,N1,+,1,N4
|
||||||
|
346,N3,N1,-,7,N10
|
||||||
|
347,N1,N1,+,5,N7
|
||||||
|
348,N6,N1,-,5,N6
|
||||||
|
349,N4,N1,-,4,N10
|
||||||
|
350,N8,N1,-,3,N5
|
||||||
|
351,N3,N1,+,9,N10
|
||||||
|
352,N9,N1,+,4,N7
|
||||||
|
353,N2,N1,+,6,N8
|
||||||
|
354,N2,N1,+,5,N3
|
||||||
|
355,N3,N1,+,4,N8
|
||||||
|
356,N4,N1,+,4,N3
|
||||||
|
357,N10,N1,-,5,N5
|
||||||
|
358,N7,N1,-,6,N3
|
||||||
|
359,N9,N1,-,7,N2
|
||||||
|
360,N4,N1,-,5,N7
|
||||||
|
361,N8,N1,+,5,N10
|
||||||
|
362,N5,N1,-,10,N6
|
||||||
|
363,N4,N1,-,10,N4
|
||||||
|
364,N2,N1,+,8,N3
|
||||||
|
365,N4,N1,+,1,N10
|
||||||
|
366,N6,N1,-,10,N2
|
||||||
|
367,N4,N1,+,6,N6
|
||||||
|
368,N2,N1,+,4,N1
|
||||||
|
369,N10,N1,+,3,N3
|
||||||
|
370,N8,N1,+,9,N7
|
||||||
|
371,N5,N1,-,4,N7
|
||||||
|
372,N3,N1,-,9,N9
|
||||||
|
373,N6,N1,-,4,N8
|
||||||
|
374,N9,N1,-,10,N1
|
||||||
|
375,N9,N1,+,4,N10
|
||||||
|
376,N9,N1,-,10,N3
|
||||||
|
377,N8,N1,+,7,N2
|
||||||
|
378,N3,N1,+,9,N2
|
||||||
|
379,N5,N1,-,10,N6
|
||||||
|
380,N10,N1,-,5,N2
|
||||||
|
381,N7,N1,+,8,N7
|
||||||
|
382,N3,N1,+,5,N5
|
||||||
|
383,N3,N1,+,10,N3
|
||||||
|
384,N1,N1,+,3,N10
|
||||||
|
385,N3,N1,+,10,N10
|
||||||
|
386,N4,N1,-,2,N10
|
||||||
|
387,N4,N1,-,5,N7
|
||||||
|
388,N1,N1,-,8,N3
|
||||||
|
389,N8,N1,-,7,N7
|
||||||
|
390,N4,N1,+,5,N5
|
||||||
|
391,N6,N1,-,7,N9
|
||||||
|
392,N7,N1,+,4,N3
|
||||||
|
393,N1,N1,+,8,N10
|
||||||
|
394,N9,N1,+,7,N6
|
||||||
|
395,N6,N1,-,1,N5
|
||||||
|
396,N9,N1,+,3,N9
|
||||||
|
397,N10,N1,+,9,N6
|
||||||
|
398,N2,N1,-,3,N6
|
||||||
|
399,N9,N1,+,1,N2
|
||||||
|
400,N6,N1,-,6,N8
|
||||||
|
401,N1,N1,+,4,N8
|
||||||
|
402,N1,N1,+,1,N7
|
||||||
|
403,N3,N1,+,10,N6
|
||||||
|
404,N1,N1,-,9,N7
|
||||||
|
405,N10,N1,-,6,N2
|
||||||
|
406,N2,N1,+,2,N5
|
||||||
|
407,N10,N1,+,6,N8
|
||||||
|
408,N3,N1,+,5,N10
|
||||||
|
409,N9,N1,+,1,N7
|
||||||
|
410,N8,N1,-,10,N1
|
||||||
|
411,N5,N1,+,2,N1
|
||||||
|
412,N6,N1,-,2,N1
|
||||||
|
413,N3,N1,-,5,N8
|
||||||
|
414,N9,N1,+,5,N8
|
||||||
|
415,N7,N1,-,9,N10
|
||||||
|
416,N5,N1,-,9,N2
|
||||||
|
417,N6,N1,-,7,N5
|
||||||
|
418,N1,N1,-,5,N8
|
||||||
|
419,N5,N1,-,9,N4
|
||||||
|
420,N3,N1,+,4,N4
|
||||||
|
421,N9,N1,-,2,N7
|
||||||
|
422,N9,N1,+,1,N9
|
||||||
|
423,N1,N1,+,9,N9
|
||||||
|
424,N9,N1,-,1,N10
|
||||||
|
425,N10,N1,+,8,N3
|
||||||
|
426,N4,N1,-,6,N6
|
||||||
|
427,N9,N1,-,2,N5
|
||||||
|
428,N2,N1,+,3,N10
|
||||||
|
429,N3,N1,+,3,N1
|
||||||
|
430,N7,N1,-,1,N9
|
||||||
|
431,N7,N1,+,8,N1
|
||||||
|
432,N2,N1,+,9,N1
|
||||||
|
433,N3,N1,-,5,N6
|
||||||
|
434,N3,N1,+,4,N4
|
||||||
|
435,N6,N1,+,3,N6
|
||||||
|
436,N8,N1,-,1,N10
|
||||||
|
437,N2,N1,+,7,N9
|
||||||
|
438,N10,N1,+,2,N1
|
||||||
|
439,N4,N1,-,1,N9
|
||||||
|
440,N3,N1,-,10,N2
|
||||||
|
441,N9,N1,+,3,N6
|
||||||
|
442,N2,N1,+,10,N3
|
||||||
|
443,N9,N1,+,7,N9
|
||||||
|
444,N8,N1,+,10,N10
|
||||||
|
445,N6,N1,-,10,N4
|
||||||
|
446,N4,N1,+,3,N6
|
||||||
|
447,N10,N1,-,5,N4
|
||||||
|
448,N8,N1,+,9,N7
|
||||||
|
449,N10,N1,-,3,N1
|
||||||
|
450,N9,N1,-,5,N9
|
||||||
|
451,N3,N1,+,9,N9
|
||||||
|
452,N10,N1,+,7,N5
|
||||||
|
453,N10,N1,-,4,N3
|
||||||
|
454,N10,N1,+,6,N1
|
||||||
|
455,N1,N1,+,9,N9
|
||||||
|
456,N7,N1,+,4,N10
|
||||||
|
457,N5,N1,+,5,N5
|
||||||
|
458,N10,N1,+,5,N7
|
||||||
|
459,N4,N1,-,8,N4
|
||||||
|
460,N9,N1,-,9,N4
|
||||||
|
461,N7,N1,-,6,N1
|
||||||
|
462,N1,N1,-,1,N7
|
||||||
|
463,N2,N1,-,10,N10
|
||||||
|
464,N6,N1,+,8,N5
|
||||||
|
465,N10,N1,+,1,N4
|
||||||
|
466,N5,N1,+,10,N6
|
||||||
|
467,N5,N1,-,5,N4
|
||||||
|
468,N1,N1,+,6,N2
|
||||||
|
469,N1,N1,+,9,N4
|
||||||
|
470,N4,N1,+,6,N4
|
||||||
|
471,N4,N1,-,4,N5
|
||||||
|
472,N3,N1,-,5,N1
|
||||||
|
473,N1,N1,+,7,N5
|
||||||
|
474,N1,N1,+,7,N3
|
||||||
|
475,N8,N1,-,3,N9
|
||||||
|
476,N9,N1,-,1,N9
|
||||||
|
477,N7,N1,-,3,N2
|
||||||
|
478,N10,N1,-,10,N9
|
||||||
|
479,N5,N1,-,4,N5
|
||||||
|
480,N9,N1,-,6,N7
|
||||||
|
481,N7,N1,+,4,N7
|
||||||
|
482,N3,N1,+,9,N5
|
||||||
|
483,N1,N1,-,10,N9
|
||||||
|
484,N5,N1,-,6,N4
|
||||||
|
485,N3,N1,-,2,N4
|
||||||
|
486,N1,N1,+,5,N9
|
||||||
|
487,N4,N1,+,1,N7
|
||||||
|
488,N1,N1,+,7,N4
|
||||||
|
489,N6,N1,-,10,N10
|
||||||
|
490,N4,N1,-,5,N6
|
||||||
|
491,N3,N1,-,4,N3
|
||||||
|
492,N8,N1,-,9,N1
|
||||||
|
493,N6,N1,-,4,N10
|
||||||
|
494,N2,N1,-,10,N6
|
||||||
|
495,N2,N1,+,4,N1
|
||||||
|
496,N4,N1,-,8,N1
|
||||||
|
497,N2,N1,-,6,N9
|
||||||
|
498,N8,N1,-,9,N2
|
||||||
|
499,N8,N1,-,7,N10
|
||||||
|
500,N10,N1,-,3,N5
|
||||||
|
501,N10,N1,+,7,N4
|
||||||
|
502,N2,N1,-,10,N8
|
||||||
|
503,N1,N1,+,1,N9
|
||||||
|
504,N5,N1,-,8,N6
|
||||||
|
505,N5,N1,-,3,N1
|
||||||
|
506,N4,N1,-,7,N2
|
||||||
|
507,N1,N1,-,6,N1
|
||||||
|
508,N7,N1,+,9,N5
|
||||||
|
509,N2,N1,+,2,N9
|
||||||
|
510,N5,N1,-,7,N7
|
||||||
|
511,N9,N1,+,10,N8
|
||||||
|
512,N2,N1,-,7,N6
|
||||||
|
513,N8,N1,-,2,N3
|
||||||
|
514,N4,N1,+,5,N9
|
||||||
|
515,N2,N1,+,2,N8
|
||||||
|
516,N1,N1,+,8,N6
|
||||||
|
517,N4,N1,-,7,N9
|
||||||
|
518,N9,N1,-,2,N9
|
||||||
|
519,N7,N1,-,3,N5
|
||||||
|
520,N6,N1,+,3,N10
|
||||||
|
521,N10,N1,-,4,N8
|
||||||
|
522,N6,N1,-,6,N3
|
||||||
|
523,N8,N1,-,9,N8
|
||||||
|
524,N2,N1,+,3,N2
|
||||||
|
525,N2,N1,-,8,N4
|
||||||
|
526,N4,N1,+,1,N2
|
||||||
|
527,N7,N1,+,2,N6
|
||||||
|
528,N7,N1,-,2,N3
|
||||||
|
529,N5,N1,+,8,N6
|
||||||
|
530,N6,N1,-,4,N2
|
||||||
|
531,N3,N1,+,4,N7
|
||||||
|
532,N3,N1,-,3,N7
|
||||||
|
533,N6,N1,-,6,N8
|
||||||
|
534,N7,N1,-,5,N2
|
||||||
|
535,N2,N1,-,5,N8
|
||||||
|
536,N5,N1,-,5,N6
|
||||||
|
537,N7,N1,-,3,N10
|
||||||
|
538,N4,N1,+,2,N2
|
||||||
|
539,N6,N1,+,5,N6
|
||||||
|
540,N10,N1,-,6,N9
|
||||||
|
541,N1,N1,-,5,N2
|
||||||
|
542,N5,N1,+,4,N10
|
||||||
|
543,N5,N1,-,2,N1
|
||||||
|
544,N10,N1,+,5,N1
|
||||||
|
545,N1,N1,+,9,N2
|
||||||
|
546,N4,N1,-,2,N3
|
||||||
|
547,N7,N1,-,3,N3
|
||||||
|
548,N7,N1,+,9,N5
|
||||||
|
549,N6,N1,-,5,N9
|
||||||
|
550,N1,N1,-,8,N7
|
||||||
|
551,N1,N1,+,5,N3
|
||||||
|
552,N8,N1,-,7,N1
|
||||||
|
553,N9,N1,+,6,N5
|
||||||
|
554,N10,N1,+,8,N7
|
||||||
|
555,N9,N1,-,5,N8
|
||||||
|
556,N6,N1,+,5,N5
|
||||||
|
557,N5,N1,+,3,N7
|
||||||
|
558,N1,N1,+,3,N1
|
||||||
|
559,N4,N1,+,3,N2
|
||||||
|
560,N8,N1,+,10,N6
|
||||||
|
561,N5,N1,+,4,N6
|
||||||
|
562,N6,N1,-,10,N2
|
||||||
|
563,N5,N1,+,3,N9
|
||||||
|
564,N6,N1,-,8,N7
|
||||||
|
565,N5,N1,+,10,N3
|
||||||
|
566,N5,N1,+,2,N1
|
||||||
|
567,N5,N1,+,3,N6
|
||||||
|
568,N5,N1,-,6,N5
|
||||||
|
569,N2,N1,+,2,N4
|
||||||
|
570,N7,N1,-,9,N5
|
||||||
|
571,N2,N1,+,9,N4
|
||||||
|
572,N6,N1,-,7,N1
|
||||||
|
573,N7,N1,+,4,N7
|
||||||
|
574,N5,N1,+,6,N5
|
||||||
|
575,N9,N1,+,2,N2
|
||||||
|
576,N4,N1,-,2,N2
|
||||||
|
577,N3,N1,+,6,N10
|
||||||
|
578,N2,N1,+,9,N1
|
||||||
|
579,N9,N1,+,7,N9
|
||||||
|
580,N1,N1,-,7,N3
|
||||||
|
581,N6,N1,-,8,N5
|
||||||
|
582,N7,N1,+,9,N10
|
||||||
|
583,N2,N1,-,3,N1
|
||||||
|
584,N4,N1,-,8,N10
|
||||||
|
585,N8,N1,+,3,N3
|
||||||
|
586,N6,N1,-,9,N3
|
||||||
|
587,N10,N1,+,9,N1
|
||||||
|
588,N8,N1,-,8,N5
|
||||||
|
589,N8,N1,-,2,N3
|
||||||
|
590,N9,N1,+,1,N8
|
||||||
|
591,N6,N1,+,5,N10
|
||||||
|
592,N7,N1,-,7,N6
|
||||||
|
593,N8,N1,+,1,N7
|
||||||
|
594,N2,N1,+,5,N3
|
||||||
|
595,N3,N1,+,5,N6
|
||||||
|
596,N6,N1,-,4,N5
|
||||||
|
597,N9,N1,+,7,N8
|
||||||
|
598,N1,N1,-,8,N7
|
||||||
|
599,N7,N1,-,4,N4
|
||||||
|
600,N1,N1,+,1,N3
|
||||||
|
601,N8,N1,-,4,N6
|
||||||
|
602,N8,N1,-,1,N4
|
||||||
|
603,N5,N1,-,2,N1
|
||||||
|
604,N10,N1,+,8,N1
|
||||||
|
605,N5,N1,-,5,N7
|
||||||
|
606,N6,N1,-,7,N6
|
||||||
|
607,N9,N1,-,9,N1
|
||||||
|
608,N8,N1,+,1,N5
|
||||||
|
609,N3,N1,+,10,N2
|
||||||
|
610,N5,N1,-,8,N10
|
||||||
|
611,N5,N1,+,2,N6
|
||||||
|
612,N1,N1,+,8,N1
|
||||||
|
613,N4,N1,-,1,N8
|
||||||
|
614,N8,N1,-,6,N5
|
||||||
|
615,N1,N1,+,8,N7
|
||||||
|
616,N10,N1,-,6,N2
|
||||||
|
617,N5,N1,-,10,N1
|
||||||
|
618,N5,N1,+,3,N10
|
||||||
|
619,N6,N1,+,8,N1
|
||||||
|
620,N9,N1,+,3,N3
|
||||||
|
621,N4,N1,-,3,N2
|
||||||
|
622,N6,N1,+,7,N2
|
||||||
|
623,N4,N1,+,2,N8
|
||||||
|
624,N7,N1,-,8,N4
|
||||||
|
625,N3,N1,-,1,N3
|
||||||
|
626,N2,N1,-,4,N10
|
||||||
|
627,N2,N1,+,4,N3
|
||||||
|
628,N6,N1,+,4,N9
|
||||||
|
629,N3,N1,+,10,N4
|
||||||
|
630,N1,N1,-,6,N3
|
||||||
|
631,N6,N1,+,1,N2
|
||||||
|
632,N4,N1,-,2,N7
|
||||||
|
633,N1,N1,+,5,N9
|
||||||
|
634,N6,N1,+,3,N7
|
||||||
|
635,N9,N1,+,7,N4
|
||||||
|
636,N10,N1,-,7,N2
|
||||||
|
637,N6,N1,-,9,N3
|
||||||
|
638,N3,N1,-,2,N6
|
||||||
|
639,N4,N1,-,6,N4
|
||||||
|
640,N9,N1,+,10,N9
|
||||||
|
641,N1,N1,+,10,N4
|
||||||
|
642,N4,N1,-,8,N9
|
||||||
|
643,N8,N1,+,4,N2
|
||||||
|
644,N6,N1,+,3,N1
|
||||||
|
645,N8,N1,+,4,N8
|
||||||
|
646,N6,N1,+,4,N3
|
||||||
|
647,N5,N1,-,7,N5
|
||||||
|
648,N1,N1,-,10,N3
|
||||||
|
649,N2,N1,-,6,N9
|
||||||
|
650,N1,N1,-,2,N2
|
||||||
|
651,N2,N1,+,7,N6
|
||||||
|
652,N8,N1,-,6,N9
|
||||||
|
653,N5,N1,+,2,N1
|
||||||
|
654,N2,N1,+,7,N9
|
||||||
|
655,N8,N1,+,3,N1
|
||||||
|
656,N1,N1,-,4,N7
|
||||||
|
657,N1,N1,+,6,N8
|
||||||
|
658,N1,N1,+,1,N8
|
||||||
|
659,N4,N1,-,10,N1
|
||||||
|
660,N2,N1,+,7,N2
|
||||||
|
661,N9,N1,-,10,N9
|
||||||
|
662,N6,N1,-,8,N5
|
||||||
|
663,N10,N1,+,8,N5
|
||||||
|
664,N1,N1,+,3,N3
|
||||||
|
665,N5,N1,-,7,N8
|
||||||
|
666,N10,N1,-,10,N1
|
||||||
|
667,N5,N1,-,7,N7
|
||||||
|
668,N10,N1,-,5,N5
|
||||||
|
669,N9,N1,+,6,N4
|
||||||
|
670,N9,N1,+,9,N8
|
||||||
|
671,N5,N1,-,2,N1
|
||||||
|
672,N1,N1,+,5,N7
|
||||||
|
673,N8,N1,+,3,N9
|
||||||
|
674,N2,N1,-,2,N5
|
||||||
|
675,N2,N1,-,2,N4
|
||||||
|
676,N4,N1,+,4,N1
|
||||||
|
677,N4,N1,-,2,N5
|
||||||
|
678,N6,N1,-,5,N3
|
||||||
|
679,N2,N1,+,3,N6
|
||||||
|
680,N6,N1,-,3,N7
|
||||||
|
681,N1,N1,+,1,N6
|
||||||
|
682,N4,N1,+,5,N1
|
||||||
|
683,N6,N1,+,1,N6
|
||||||
|
684,N3,N1,+,3,N4
|
||||||
|
685,N2,N1,+,5,N9
|
||||||
|
686,N7,N1,-,7,N7
|
||||||
|
687,N1,N1,-,7,N10
|
||||||
|
688,N10,N1,+,8,N3
|
||||||
|
689,N6,N1,+,5,N7
|
||||||
|
690,N4,N1,+,9,N5
|
||||||
|
691,N4,N1,-,1,N1
|
||||||
|
692,N2,N1,+,8,N1
|
||||||
|
693,N9,N1,-,7,N10
|
||||||
|
694,N2,N1,-,7,N1
|
||||||
|
695,N10,N1,+,8,N4
|
||||||
|
696,N4,N1,+,10,N6
|
||||||
|
697,N4,N1,+,1,N5
|
||||||
|
698,N5,N1,-,2,N6
|
||||||
|
699,N5,N1,+,1,N1
|
||||||
|
700,N2,N1,+,5,N3
|
||||||
|
701,N6,N1,-,5,N5
|
||||||
|
702,N9,N1,+,8,N3
|
||||||
|
703,N10,N1,+,1,N2
|
||||||
|
704,N5,N1,-,2,N7
|
||||||
|
705,N3,N1,-,7,N10
|
||||||
|
706,N7,N1,+,4,N6
|
||||||
|
707,N7,N1,+,7,N4
|
||||||
|
708,N1,N1,-,6,N7
|
||||||
|
709,N5,N1,+,3,N8
|
||||||
|
710,N4,N1,+,3,N5
|
||||||
|
711,N6,N1,-,6,N8
|
||||||
|
712,N4,N1,-,5,N8
|
||||||
|
713,N5,N1,-,5,N6
|
||||||
|
714,N5,N1,+,8,N1
|
||||||
|
715,N10,N1,-,4,N5
|
||||||
|
716,N6,N1,+,5,N9
|
||||||
|
717,N2,N1,+,4,N5
|
||||||
|
718,N4,N1,-,3,N4
|
||||||
|
719,N10,N1,-,1,N7
|
||||||
|
720,N8,N1,-,9,N4
|
||||||
|
721,N4,N1,+,3,N5
|
||||||
|
722,N3,N1,-,6,N2
|
||||||
|
723,N8,N1,-,3,N6
|
||||||
|
724,N5,N1,-,9,N7
|
||||||
|
725,N2,N1,-,6,N4
|
||||||
|
726,N9,N1,+,8,N9
|
||||||
|
727,N4,N1,-,2,N1
|
||||||
|
728,N6,N1,-,4,N4
|
||||||
|
729,N7,N1,-,9,N8
|
||||||
|
730,N1,N1,+,7,N3
|
||||||
|
731,N3,N1,+,10,N2
|
||||||
|
732,N3,N1,-,10,N9
|
||||||
|
733,N7,N1,+,9,N4
|
||||||
|
734,N4,N1,+,8,N4
|
||||||
|
735,N7,N1,-,8,N6
|
||||||
|
736,N2,N1,+,5,N9
|
||||||
|
737,N4,N1,+,10,N4
|
||||||
|
738,N4,N1,+,6,N4
|
||||||
|
739,N6,N1,-,5,N2
|
||||||
|
740,N5,N1,+,6,N4
|
||||||
|
741,N7,N1,-,7,N7
|
||||||
|
742,N10,N1,+,5,N6
|
||||||
|
743,N8,N1,-,6,N8
|
||||||
|
744,N7,N1,+,9,N6
|
||||||
|
745,N8,N1,-,2,N2
|
||||||
|
746,N2,N1,+,2,N8
|
||||||
|
747,N3,N1,+,4,N3
|
||||||
|
748,N7,N1,-,6,N4
|
||||||
|
749,N9,N1,+,4,N9
|
||||||
|
750,N7,N1,+,10,N3
|
||||||
|
751,N1,N1,+,5,N7
|
||||||
|
752,N3,N1,-,2,N5
|
||||||
|
753,N4,N1,+,6,N2
|
||||||
|
754,N1,N1,-,6,N8
|
||||||
|
755,N6,N1,+,4,N4
|
||||||
|
756,N3,N1,+,9,N2
|
||||||
|
757,N6,N1,-,9,N4
|
||||||
|
758,N4,N1,+,9,N8
|
||||||
|
759,N7,N1,-,1,N8
|
||||||
|
760,N4,N1,+,4,N8
|
||||||
|
761,N1,N1,-,6,N2
|
||||||
|
762,N10,N1,+,9,N1
|
||||||
|
763,N1,N1,-,2,N4
|
||||||
|
764,N8,N1,+,6,N3
|
||||||
|
765,N6,N1,+,1,N6
|
||||||
|
766,N3,N1,+,4,N2
|
||||||
|
767,N7,N1,+,7,N2
|
||||||
|
768,N10,N1,-,6,N3
|
||||||
|
769,N4,N1,-,9,N8
|
||||||
|
770,N10,N1,+,3,N9
|
||||||
|
771,N5,N1,+,7,N5
|
||||||
|
772,N7,N1,-,8,N2
|
||||||
|
773,N4,N1,-,5,N2
|
||||||
|
774,N4,N1,+,9,N7
|
||||||
|
775,N8,N1,+,7,N9
|
||||||
|
776,N7,N1,+,4,N4
|
||||||
|
777,N7,N1,-,1,N5
|
||||||
|
778,N10,N1,+,7,N2
|
||||||
|
779,N1,N1,-,8,N4
|
||||||
|
780,N5,N1,+,8,N8
|
||||||
|
781,N7,N1,-,5,N10
|
||||||
|
782,N1,N1,+,8,N6
|
||||||
|
783,N5,N1,+,6,N1
|
||||||
|
784,N7,N1,-,8,N9
|
||||||
|
785,N9,N1,-,6,N10
|
||||||
|
786,N10,N1,-,8,N9
|
||||||
|
787,N3,N1,+,7,N10
|
||||||
|
788,N10,N1,+,9,N10
|
||||||
|
789,N6,N1,+,2,N4
|
||||||
|
790,N10,N1,+,10,N1
|
||||||
|
791,N5,N1,-,8,N7
|
||||||
|
792,N9,N1,-,5,N5
|
||||||
|
793,N5,N1,+,9,N7
|
||||||
|
794,N10,N1,+,6,N3
|
||||||
|
795,N7,N1,-,8,N8
|
||||||
|
796,N8,N1,-,6,N6
|
||||||
|
797,N7,N1,+,5,N2
|
||||||
|
798,N8,N1,+,4,N10
|
||||||
|
799,N2,N1,-,7,N1
|
||||||
|
800,N3,N1,+,10,N3
|
||||||
|
801,N7,N1,+,7,N6
|
||||||
|
802,N8,N1,-,2,N10
|
||||||
|
803,N7,N1,+,9,N2
|
||||||
|
804,N3,N1,-,5,N2
|
||||||
|
805,N1,N1,+,8,N8
|
||||||
|
806,N2,N1,-,6,N1
|
||||||
|
807,N8,N1,+,5,N5
|
||||||
|
808,N2,N1,+,10,N1
|
||||||
|
809,N8,N1,+,4,N1
|
||||||
|
810,N10,N1,-,4,N1
|
||||||
|
811,N4,N1,+,6,N4
|
||||||
|
812,N1,N1,-,6,N8
|
||||||
|
813,N4,N1,+,9,N10
|
||||||
|
814,N6,N1,-,7,N4
|
||||||
|
815,N7,N1,-,2,N10
|
||||||
|
816,N10,N1,-,3,N3
|
||||||
|
817,N7,N1,-,3,N1
|
||||||
|
818,N5,N1,-,9,N2
|
||||||
|
819,N3,N1,-,5,N10
|
||||||
|
820,N8,N1,+,4,N1
|
||||||
|
821,N2,N1,+,9,N2
|
||||||
|
822,N9,N1,+,4,N7
|
||||||
|
823,N5,N1,+,5,N8
|
||||||
|
824,N1,N1,-,7,N9
|
||||||
|
825,N8,N1,+,5,N5
|
||||||
|
826,N1,N1,+,9,N1
|
||||||
|
827,N2,N1,-,3,N4
|
||||||
|
828,N7,N1,-,10,N7
|
||||||
|
829,N7,N1,+,4,N6
|
||||||
|
830,N9,N1,-,10,N6
|
||||||
|
831,N3,N1,+,9,N5
|
||||||
|
832,N7,N1,-,4,N3
|
||||||
|
833,N3,N1,+,8,N2
|
||||||
|
834,N8,N1,+,4,N1
|
||||||
|
835,N7,N1,+,6,N6
|
||||||
|
836,N1,N1,+,4,N5
|
||||||
|
837,N7,N1,+,6,N7
|
||||||
|
838,N10,N1,+,4,N7
|
||||||
|
839,N6,N1,+,5,N8
|
||||||
|
840,N7,N1,-,4,N10
|
||||||
|
841,N4,N1,+,10,N8
|
||||||
|
842,N6,N1,-,9,N4
|
||||||
|
843,N2,N1,-,9,N2
|
||||||
|
844,N3,N1,+,5,N7
|
||||||
|
845,N2,N1,+,5,N4
|
||||||
|
846,N10,N1,+,5,N7
|
||||||
|
847,N1,N1,-,10,N3
|
||||||
|
848,N2,N1,-,5,N7
|
||||||
|
849,N4,N1,+,3,N1
|
||||||
|
850,N3,N1,+,4,N4
|
||||||
|
851,N3,N1,+,4,N4
|
||||||
|
852,N10,N1,-,10,N9
|
||||||
|
853,N4,N1,-,2,N5
|
||||||
|
854,N9,N1,+,8,N5
|
||||||
|
855,N6,N1,+,4,N9
|
||||||
|
856,N7,N1,-,6,N8
|
||||||
|
857,N1,N1,+,1,N5
|
||||||
|
858,N10,N1,+,1,N3
|
||||||
|
859,N3,N1,+,6,N4
|
||||||
|
860,N8,N1,+,2,N6
|
||||||
|
861,N6,N1,+,6,N6
|
||||||
|
862,N7,N1,+,3,N7
|
||||||
|
863,N1,N1,+,9,N6
|
||||||
|
864,N7,N1,-,3,N2
|
||||||
|
865,N6,N1,+,5,N3
|
||||||
|
866,N10,N1,-,2,N1
|
||||||
|
867,N10,N1,-,3,N5
|
||||||
|
868,N4,N1,+,3,N10
|
||||||
|
869,N6,N1,+,7,N5
|
||||||
|
870,N5,N1,+,2,N5
|
||||||
|
871,N7,N1,+,1,N10
|
||||||
|
872,N8,N1,+,10,N2
|
||||||
|
873,N9,N1,+,6,N6
|
||||||
|
874,N1,N1,+,3,N4
|
||||||
|
875,N3,N1,+,7,N5
|
||||||
|
876,N4,N1,-,8,N4
|
||||||
|
877,N9,N1,-,6,N2
|
||||||
|
878,N5,N1,-,10,N9
|
||||||
|
879,N1,N1,+,9,N8
|
||||||
|
880,N3,N1,-,3,N8
|
||||||
|
881,N4,N1,+,6,N4
|
||||||
|
882,N10,N1,-,5,N5
|
||||||
|
883,N1,N1,+,10,N7
|
||||||
|
884,N8,N1,+,4,N8
|
||||||
|
885,N2,N1,-,5,N5
|
||||||
|
886,N3,N1,-,3,N8
|
||||||
|
887,N9,N1,+,1,N9
|
||||||
|
888,N6,N1,-,2,N9
|
||||||
|
889,N1,N1,-,7,N10
|
||||||
|
890,N10,N1,+,3,N10
|
||||||
|
891,N2,N1,-,2,N9
|
||||||
|
892,N9,N1,+,2,N2
|
||||||
|
893,N10,N1,-,4,N9
|
||||||
|
894,N1,N1,+,6,N1
|
||||||
|
895,N6,N1,-,7,N2
|
||||||
|
896,N5,N1,+,1,N10
|
||||||
|
897,N7,N1,+,5,N10
|
||||||
|
898,N6,N1,+,6,N5
|
||||||
|
899,N1,N1,+,9,N2
|
||||||
|
900,N2,N1,-,10,N8
|
||||||
|
901,N2,N1,+,4,N8
|
||||||
|
902,N9,N1,-,8,N4
|
||||||
|
903,N5,N1,-,10,N8
|
||||||
|
904,N1,N1,+,2,N1
|
||||||
|
905,N8,N1,-,9,N10
|
||||||
|
906,N8,N1,+,5,N6
|
||||||
|
907,N2,N1,-,1,N8
|
||||||
|
908,N3,N1,-,2,N4
|
||||||
|
909,N7,N1,+,6,N2
|
||||||
|
910,N8,N1,-,7,N3
|
||||||
|
911,N2,N1,+,7,N9
|
||||||
|
912,N5,N1,+,2,N8
|
||||||
|
913,N9,N1,+,2,N3
|
||||||
|
914,N1,N1,+,6,N6
|
||||||
|
915,N1,N1,+,5,N4
|
||||||
|
916,N8,N1,+,10,N3
|
||||||
|
917,N4,N1,-,8,N3
|
||||||
|
918,N10,N1,+,2,N3
|
||||||
|
919,N2,N1,+,2,N3
|
||||||
|
920,N3,N1,+,5,N6
|
||||||
|
921,N9,N1,-,2,N5
|
||||||
|
922,N1,N1,+,4,N1
|
||||||
|
923,N4,N1,+,10,N10
|
||||||
|
924,N2,N1,+,6,N10
|
||||||
|
925,N3,N1,+,6,N4
|
||||||
|
926,N4,N1,-,10,N2
|
||||||
|
927,N6,N1,+,4,N8
|
||||||
|
928,N7,N1,-,4,N9
|
||||||
|
929,N2,N1,-,8,N8
|
||||||
|
930,N9,N1,-,10,N2
|
||||||
|
931,N2,N1,+,3,N4
|
||||||
|
932,N6,N1,+,9,N7
|
||||||
|
933,N9,N1,-,1,N10
|
||||||
|
934,N1,N1,+,3,N9
|
||||||
|
935,N3,N1,+,7,N1
|
||||||
|
936,N10,N1,-,2,N5
|
||||||
|
937,N9,N1,-,7,N10
|
||||||
|
938,N10,N1,+,9,N4
|
||||||
|
939,N9,N1,-,7,N2
|
||||||
|
940,N2,N1,-,5,N4
|
||||||
|
941,N6,N1,-,6,N8
|
||||||
|
942,N4,N1,+,6,N3
|
||||||
|
943,N10,N1,+,7,N4
|
||||||
|
944,N10,N1,+,5,N9
|
||||||
|
945,N1,N1,+,5,N10
|
||||||
|
946,N3,N1,+,8,N10
|
||||||
|
947,N5,N1,-,3,N10
|
||||||
|
948,N3,N1,+,6,N1
|
||||||
|
949,N8,N1,-,4,N6
|
||||||
|
950,N6,N1,-,1,N8
|
||||||
|
951,N1,N1,-,2,N8
|
||||||
|
952,N6,N1,-,9,N2
|
||||||
|
953,N2,N1,-,10,N4
|
||||||
|
954,N5,N1,+,10,N7
|
||||||
|
955,N10,N1,+,1,N8
|
||||||
|
956,N1,N1,-,5,N1
|
||||||
|
957,N2,N1,-,5,N8
|
||||||
|
958,N7,N1,+,8,N9
|
||||||
|
959,N7,N1,-,2,N8
|
||||||
|
960,N3,N1,-,7,N9
|
||||||
|
961,N3,N1,+,4,N1
|
||||||
|
962,N10,N1,+,10,N4
|
||||||
|
963,N2,N1,+,10,N8
|
||||||
|
964,N10,N1,+,5,N8
|
||||||
|
965,N3,N1,+,8,N2
|
||||||
|
966,N2,N1,+,9,N5
|
||||||
|
967,N1,N1,-,3,N6
|
||||||
|
968,N10,N1,-,3,N6
|
||||||
|
969,N6,N1,-,10,N4
|
||||||
|
970,N7,N1,+,6,N9
|
||||||
|
971,N1,N1,+,9,N2
|
||||||
|
972,N5,N1,+,5,N2
|
||||||
|
973,N8,N1,+,4,N2
|
||||||
|
974,N8,N1,-,5,N2
|
||||||
|
975,N9,N1,+,6,N6
|
||||||
|
976,N8,N1,-,1,N6
|
||||||
|
977,N6,N1,+,7,N4
|
||||||
|
978,N6,N1,+,2,N8
|
||||||
|
979,N5,N1,-,6,N3
|
||||||
|
980,N5,N1,-,3,N7
|
||||||
|
981,N9,N1,-,2,N10
|
||||||
|
982,N4,N1,+,3,N8
|
||||||
|
983,N10,N1,+,1,N8
|
||||||
|
984,N9,N1,-,7,N1
|
||||||
|
985,N8,N1,+,6,N8
|
||||||
|
986,N4,N1,+,1,N1
|
||||||
|
987,N8,N1,-,8,N10
|
||||||
|
988,N9,N1,+,4,N3
|
||||||
|
989,N2,N1,-,5,N3
|
||||||
|
990,N4,N1,-,8,N1
|
||||||
|
991,N9,N1,+,5,N4
|
||||||
|
992,N2,N1,+,5,N3
|
||||||
|
993,N1,N1,+,5,N7
|
||||||
|
994,N1,N1,-,4,N1
|
||||||
|
995,N4,N1,-,10,N3
|
||||||
|
996,N5,N1,+,10,N4
|
||||||
|
997,N5,N1,-,10,N8
|
||||||
|
998,N2,N1,-,5,N7
|
||||||
|
999,N2,N1,-,9,N4
|
|
@ -16,6 +16,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
ME="${0##*/}"
|
ME="${0##*/}"
|
||||||
###################################################################
|
###################################################################
|
||||||
### CREER VOTRE PROPRE VERSION DU JEU
|
### CREER VOTRE PROPRE VERSION DU JEU
|
||||||
|
|
||||||
### List games/E@MAIL/ directories
|
### List games/E@MAIL/ directories
|
||||||
## ADD PROPOSAL ON THE METHOD
|
## ADD PROPOSAL ON THE METHOD
|
||||||
GAMES_DIR="games"
|
GAMES_DIR="games"
|
||||||
|
@ -90,4 +91,4 @@ cd "$homefolder"
|
||||||
rm -r $HOME/.zen/adventure/$newplayer
|
rm -r $HOME/.zen/adventure/$newplayer
|
||||||
|
|
||||||
echo "To continue..."
|
echo "To continue..."
|
||||||
exit
|
exit
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,48 @@
|
||||||
|
# SCRIPT01.CYBSEC
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
Loading... hRXUD1VyXh/rooms/start.sh
|
||||||
|
|
||||||
|
Résolvez 16 + 17 : 33
|
||||||
|
Correct !
|
||||||
|
Bravo !
|
||||||
|
Résolvez 17 - 2 : 15
|
||||||
|
Correct !
|
||||||
|
Bravo !
|
||||||
|
```
|
||||||
|
|
||||||
|
+ 9 : game engine
|
||||||
|
+ 2 : multigame compatibility
|
||||||
|
+1 : shellcheck
|
||||||
|
+1 : arithmetic
|
||||||
|
|
||||||
|
> final 13
|
||||||
|
|
||||||
|
## "GameShell" LEVEL ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
Seulement dans ../_votre jeu/: adventure.sh
|
||||||
|
Seulement dans ../_votre jeu/: art
|
||||||
|
Seulement dans ../_votre jeu/: logic
|
||||||
|
Seulement dans ../_votre jeu/rooms: bigroom.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: brown.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: end.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: gameroom.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: green.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: grue.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: kroo2.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: kroo.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: magic8.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: mainroom.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: meteofrance.sh
|
||||||
|
Seulement dans ../_votre jeu/rooms: red.sh
|
||||||
|
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
|
||||||
|
Seulement dans ../_votre jeu/rooms: white.sh
|
||||||
|
Seulement dans ../_votre jeu/: script
|
||||||
|
|
||||||
|
```
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
# SCRIPT01.CYBSEC
|
||||||
|
|
||||||
|
valhalla
|
||||||
|
|
||||||
|
+ 11 : game engine
|
||||||
|
+ 2 : multigame compatibility
|
||||||
|
|
||||||
|
> final 13
|
||||||
|
|
||||||
|
## "GameShell" LEVEL ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
diff --recursive --brief ./ ../_votre\ jeu/
|
||||||
|
Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents
|
||||||
|
Seulement dans ./: note
|
||||||
|
Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents
|
||||||
|
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
|
||||||
|
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
|
||||||
|
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
|
||||||
|
Seulement dans ./rooms: valhalla.sh
|
||||||
|
Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
Searching for valhalla.sh recursively. Please Wait...
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
./rooms/white.sh: ./valhalla.sh;;
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
```
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
secret level
|
secret level
|
||||||
|
|
||||||
+ 12 : game engine
|
+ 11 : game engine
|
||||||
+ 2 : multigame compatibility
|
+ 2 : multigame compatibility
|
||||||
|
|
||||||
> final 14
|
> final 13
|
||||||
|
|
||||||
## "GameShell" LEVEL ?
|
## "GameShell" LEVEL ?
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
#!/bin/bash
|
||||||
|
###################################################################
|
||||||
|
# This Launch script is based on BashVenture.
|
||||||
|
#
|
||||||
|
# Remember, kids - sharing is caring! Keep it open. Spread the love.
|
||||||
|
# - @BenNunney
|
||||||
|
# Thanks and gratitude to all living creatures and the whole creation.
|
||||||
|
# - @Fred
|
||||||
|
# $AGE×365,25×24×60×60×9,807÷299792458 = RELATIVE LIGHT GRAVITY SPEED
|
||||||
|
###################################################################
|
||||||
|
# Guide avancé d'écriture des scripts Bash : https://abs.traduc.org/abs-fr/
|
||||||
|
# GAMESHELL : https://github.com/phyver/GameShell/
|
||||||
|
###################################################################
|
||||||
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
ME="${0##*/}"
|
||||||
|
###################################################################
|
||||||
|
### CREER VOTRE PROPRE VERSION DU JEU
|
||||||
|
### CHOISIR SCENARIO
|
||||||
|
###################################################################
|
||||||
|
if hash uuidgen 2>/dev/null; then
|
||||||
|
homefolder=$(pwd)
|
||||||
|
newplayer=$(uuidgen)
|
||||||
|
## Copy Player Game Files
|
||||||
|
mkdir -p "$HOME/.zen/adventure/$newplayer"
|
||||||
|
if [ -d "$MY_PATH/rooms" ]; then
|
||||||
|
cp -r "$MY_PATH/rooms" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/rooms does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/art" ]; then
|
||||||
|
cp -r "$MY_PATH/art" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/art does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/script" ]; then
|
||||||
|
cp -r "$MY_PATH/script" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/script does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/logic" ]; then
|
||||||
|
cp -r "$MY_PATH/logic" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/logic does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
echo "Loading..."
|
||||||
|
echo
|
||||||
|
###################################################################
|
||||||
|
if hash uuidgen 2>/dev/null; then
|
||||||
|
cd $HOME/.zen/adventure/$newplayer/rooms
|
||||||
|
else
|
||||||
|
cd rooms
|
||||||
|
fi
|
||||||
|
./start.sh
|
||||||
|
###################################################################
|
||||||
|
if hash uuidgen 2>/dev/null; then
|
||||||
|
cd "$homefolder"
|
||||||
|
rm -r $HOME/.zen/adventure/$newplayer
|
||||||
|
fi
|
||||||
|
echo "To continue..."
|
||||||
|
exit
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
|
||||||
|
.';:llllc;'.
|
||||||
|
.:xXWX;.,ll;.:XWXx;.
|
||||||
|
;0MMMMMMKl;'',l0MMMMMWO,
|
||||||
|
,0MMMMMMW0dc;,,;cd0WMMMMMMO.
|
||||||
|
dWMMMMM0; ;OMMMMMN:
|
||||||
|
dMMMMMN: .,'. cWMMMMMc
|
||||||
|
,WMMMMX. .xNMMMMNx,'lONMMMMMMN.
|
||||||
|
oMMMMM: :WMMMMMMMMMMMMMMMMMMMMc
|
||||||
|
xMMMMM' xMMMMMMOlllllllloNMMMMo
|
||||||
|
oMMMMMc ,NMMMMMWd. KMMMM:
|
||||||
|
.WMMMMN, .l0NWWWKc KMMMX.
|
||||||
|
cMMMMMWo .. KMMW;
|
||||||
|
cWMMMMMXo' .lKd. KMK'
|
||||||
|
.xWMMMMMMN0dlllldONMMMMWOXd
|
||||||
|
.xNMMMMMMMd''lWMMMMMMXo.
|
||||||
|
'lONWMW, .XMWXOl.
|
||||||
|
..,,..,,..
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
.':cdxxxxxoc;.
|
||||||
|
.:x00dc;'..:..,:lk00o'
|
||||||
|
;0Xd, oMo :OXx.
|
||||||
|
:KK; cMMMl .oNk.
|
||||||
|
.kN: ;MMMMMc xNl
|
||||||
|
.0K. ,WMMMMMW; ;Wo
|
||||||
|
OX. ,WMMMMMMMW; ;Wc
|
||||||
|
cM; .WMMMMMMMMMW, kX.
|
||||||
|
OX .NMMMMMMMMMMMW' ,Mc
|
||||||
|
O0 .NMMMMMMMMMMMMMW' .Mc
|
||||||
|
ON .XMMMMM0kkkkKMMMMN. ,M:
|
||||||
|
:M; KMMMMM: .,,;dMMMMMN. kX.
|
||||||
|
ON. 0MMMMMl ,WMMMMMMMMMMX. ;Wc
|
||||||
|
.0K. 0MMMMMd 'WMMMMMMMMMMMMX. :Wo
|
||||||
|
.xN: kMMMMMO .XWWWWNNNNNXXKKKd xNc
|
||||||
|
;0Xl. .oXx.
|
||||||
|
,OXx, .cOKd.
|
||||||
|
;d00xl:,....';coO0Ol'
|
||||||
|
.;:odddddl:,.
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
MMMMMMMMMMMMMMMMMMMl xxlxxxd . KNNMNl. 'd0xdddkXKxc. ,dNMMMMMMMMMMMMMMM
|
||||||
|
MMMMMMMMMMMWKOl:cc' .NNOMXNX .ld; ,lxXMMMMMMMMMMM
|
||||||
|
MMMMMMMMNo. ,,' .KKWMOXX .. .dWMMMMMMMM
|
||||||
|
MMMMMMWc cdddc .NNNMXNX .do '' ' .:,:k; l, .KMMMMMMM
|
||||||
|
MMMMMW, ;ll: .,:ddddd .KKOM0XX .do '0MMXMo . dMMMMMMXOMX0: XMMMMMM
|
||||||
|
MMMMMo xc:d 'ddddddd .XXWMK00' .do .oo. .dMMMMMMO;lWNMMMMMMWXMMMX: :MMMMMM
|
||||||
|
MMMMW. .cXKKXWooK0kk0d0Oxxkkx .XXNM0Ok; .:ol:'do,0MMK ... 'XMMMMMMMMMMMMMMMMMWWMMMMx .dkONMM
|
||||||
|
MKNK. NMWooOWllKKoMNll0MM0x0 xNXXOMKOkKOoM0kkkOkWMMMM0NWWXXMMMMMMMMMMW:WkWk0OKMWdOMNxd0O. .KM
|
||||||
|
l dkkMMWloOWcc0KoMNccOMMxl0cMMXXWM0KOMMMM0OkkOKMMMMMMMMMMMMMMMMMMMMM0 : o.. 'll.lMMMMMMx .O
|
||||||
|
;kMMMMMWlckWooKXdMNccOMMxlXk0MMMNMMMMMMMM0OkkOWMMMMMMMMMMMMMMMMMMMMMMo0OWW,xNWKcooMM0NN0Oc
|
||||||
|
.NMMMMMMNllkWllKKoMNll0MMxlNxOMMMOMMMMMMMM0OkOOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMMNdxMMMk
|
||||||
|
;WMMMMMMMMMMMNNWWNMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWx.
|
||||||
|
:MMkxxxWMMMWkxxxxxxxWXxxxxxxxxKWxxxxxxxxxWMMKxxxxxxKMMKxxxxxxxxKMMXxxxxxx0MMkxxxxxxxxNMXxdlloodO:
|
||||||
|
:N, OMM0. 'N. 0: :Mc XK Nx kl ,N. ;'
|
||||||
|
x..M0xddddKMMOddddddddKKddddddddxNxdddddddddOWoooooooooN0ddddddddddNdoooooooo0xdddddddddkKdddddddox.
|
||||||
|
MWKK ,MN. .,XMMMMl ;MMMM' xc 'MMd .Mx ;x .NMO N; dMMMl ,W
|
||||||
|
MMMK NM:. 'MMMW. xMMMO dW. oMM. lM' .:N, ;MM; ;K oMMMW. dO
|
||||||
|
MMMMMMMo xXXXXXk .MMMO NMMM; .WWN. 00 XM0 KK 0WWWWMMW OMX kc .WWW. OMMMO Nc
|
||||||
|
MMMMMMMX dMMM; ;MMMN dMMk N0 .. oMl .MMMMMMMN ... :W. lMM0 XMMM; ;M' .c
|
||||||
|
MMMMMMMM, .xMMMW. kMMMx .NMM: cMMd. .;0MM. oMMMMMMMMk. .,kMO XMMl :MMMW. kMOKMM
|
||||||
|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
|
|
@ -0,0 +1,21 @@
|
||||||
|
.,'.
|
||||||
|
.,,;,'',;,'',,.'.
|
||||||
|
.;;,,.. .........'
|
||||||
|
.l:. ............cc.
|
||||||
|
.c, .................:c.
|
||||||
|
.lc ................... .l;
|
||||||
|
l' ... .............. c:
|
||||||
|
:: .. ........... l'
|
||||||
|
d . .''...... 'o
|
||||||
|
.o .. ''''''. l
|
||||||
|
.d . ......''''''' l
|
||||||
|
o . .,,,,,,'''''' 'l
|
||||||
|
;: . ',,,,''''', l.
|
||||||
|
l, .. .,,,''''', oc
|
||||||
|
.lc .',,,''',. .c,
|
||||||
|
'l, .,,''',..:c.
|
||||||
|
';;. .,,',,:;.
|
||||||
|
':;;'. .;:,,,.
|
||||||
|
.,,'''''','..;,,.
|
||||||
|
,:.
|
||||||
|
.,
|
|
@ -0,0 +1,9 @@
|
||||||
|
_______ _ ______ _
|
||||||
|
|__ __| | | ____| | |
|
||||||
|
| | | |__ ___ | |__ _ __ __| |
|
||||||
|
| | | '_ \ / _ \ | __| | '_ \ / _` |
|
||||||
|
| | | | | | __/ | |____| | | | (_| |_
|
||||||
|
|_| |_| |_|\___| |______|_| |_|\__,_(_)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
|
||||||
|
.:dO0NNkNX0ko,.
|
||||||
|
.:OWMMMMMMc cWMMMMMXd,
|
||||||
|
'kWMMMMMMMMc cWMMMMMMMNo.
|
||||||
|
.kMMMMMMMMMMo lMMMMMMMMMWl
|
||||||
|
.KMMMMMMMMMMd oMMMMMMMMMMx
|
||||||
|
.XMMMMMMMMMMk dMMMMMMMMMMx
|
||||||
|
xMMMMMMMMMM0 OMMMMMMMMMM,
|
||||||
|
.NMMMMMMMMMK. OMMMMMMMMMk
|
||||||
|
'MMMMMMMMMK. OMMMMMMMMK
|
||||||
|
.NMMMMMMMK. ,;;;;' OMMMMMMMx
|
||||||
|
dMMMMMMX. kMKkxxc 0MMMMMM,
|
||||||
|
.KMMMMN. dMx .KMMMMd
|
||||||
|
.0MMN. cMx .KMMd
|
||||||
|
xW' 'W0. ......:Xc
|
||||||
|
.lXNNWNWMMMMMMMMMMMMMMMMXl
|
||||||
|
;xXMMMMMMMMMMMMMMWKo'
|
||||||
|
.,lxkKKKK0kdc'
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
_____ _ _
|
||||||
|
/ ____| (_) | |
|
||||||
|
| (___ _ _ _ __ _ __ _ __ _ ___ ___| |
|
||||||
|
\___ \| | | | '__| '_ \| '__| / __|/ _ \ |
|
||||||
|
____) | |_| | | | |_) | | | \__ \ __/_|
|
||||||
|
|_____/ \__,_|_| | .__/|_| |_|___/\___(_)
|
||||||
|
| |
|
||||||
|
|_|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
_ _ _ ____ ___ _ ____
|
||||||
|
/ \ ___| |_ _ __ ___ _ __ ___ _ __| |_ |___ \ / _ \ _ / |___ \
|
||||||
|
/ _ \ / __| __| '__/ _ \| '_ \ / _ \| '__| __| __) | | | | (_) | | __) |
|
||||||
|
/ ___ \\__ \ |_| | | (_) | |_) | (_) | | | |_ / __/| |_| | _ | |/ __/
|
||||||
|
/_/ \_\___/\__|_| \___/| .__/ \___/|_| \__| |_____|\___/ (_) |_|_____|
|
||||||
|
|_|
|
||||||
|
|
||||||
|
--- Un JEu de Forêt Jardin en Monnaie Libre sur IPFS ---
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,75 @@
|
||||||
|
# ATTENTION POUR VOIR LES IMAGES OUVRIR LE DOCX !
|
||||||
|
|
||||||
|
|
||||||
|
Adventure.sh avec WSL
|
||||||
|
|
||||||
|
Dans un premier temps, trouver le projet cloné qui pour moi ce situe sur le bureau.
|
||||||
|
Passer par /mnt une fois l’environnement wsl lancé pour accéder au répertoire de mon windows
|
||||||
|
|
||||||
|
Résolution des bugs :
|
||||||
|
|
||||||
|
Supprimer le saut de ligne (ligne 20) pour la première erreur
|
||||||
|
Puis installer dos2unix pour la 2eme :
|
||||||
|
sudo apt install dos2unix
|
||||||
|
|
||||||
|
Si l’installation ne fonctionne pas, n’oubliez pas de faire :
|
||||||
|
sudo apt update
|
||||||
|
Et
|
||||||
|
sudo apt upgrade
|
||||||
|
|
||||||
|
Une fois dos2unix installé, faites dos2unix adventure.sh pour convertir le fichier.
|
||||||
|
Maintenant nous avons ces erreurs :
|
||||||
|
|
||||||
|
Pour régler ça j’ai dû modifier un peu la partie des PATH dans adventure.sh :
|
||||||
|
|
||||||
|
'''
|
||||||
|
if hash uuidgen 2>/dev/null; then
|
||||||
|
homefolder=$(pwd)
|
||||||
|
newplayer=$(uuidgen)
|
||||||
|
## Copy Player Game Files
|
||||||
|
mkdir -p "$HOME/.zen/adventure/$newplayer"
|
||||||
|
if [ -d "$MY_PATH/rooms" ]; then
|
||||||
|
cp -r "$MY_PATH/rooms" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/rooms does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/art" ]; then
|
||||||
|
cp -r "$MY_PATH/art" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/art does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/script" ]; then
|
||||||
|
cp -r "$MY_PATH/script" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/script does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$MY_PATH/logic" ]; then
|
||||||
|
cp -r "$MY_PATH/logic" "$HOME/.zen/adventure/$newplayer/"
|
||||||
|
else
|
||||||
|
echo "Source directory $MY_PATH/logic does not exist or is not a directory."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
'''
|
||||||
|
|
||||||
|
Autre erreur me dit que :
|
||||||
|
|
||||||
|
Ça traduit une erreur d’interprétation dans le fichier « start.sh » que j’ai réglé en utilisant la commande ''' dos2unix *.sh ''' dans le dossier « rooms » pour convertir tous les fichiers :
|
||||||
|
|
||||||
|
BRAVO :
|
||||||
|
|
||||||
|
Dans le jeu on se rend compte que cette erreur apparaît :
|
||||||
|
|
||||||
|
|
||||||
|
Il faut installer ''' sudo apt install xdg-utils ''' ainsi que ''' sudo apt install firefox ''' pour résoudre ça
|
||||||
|
|
||||||
|
Le levier ne fonctionne pas, « ACTIVATION STATION » mais rien ne se passe.
|
||||||
|
|
||||||
|
c'est parce que le script ne se souvient que du premiere appel du levier donc il faut le lui rappeller juste après l'action avec :
|
||||||
|
|
||||||
|
leverstate=$(cat $MY_PATH/../logic/leverlogic.ben)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
off
|
|
@ -0,0 +1 @@
|
||||||
|
off
|
|
@ -0,0 +1,36 @@
|
||||||
|
# SCRIPT01.CYBSEC
|
||||||
|
|
||||||
|
SNAKe
|
||||||
|
|
||||||
|
+ 12 : game engine
|
||||||
|
+ 2 : multigame compatibility
|
||||||
|
|
||||||
|
> final 14
|
||||||
|
|
||||||
|
## "GameShell" LEVEL ?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
Les fichiers ./adventure.sh et ../_votre jeu/adventure.sh sont différents
|
||||||
|
Seulement dans ./: debug_wsl.docx
|
||||||
|
Seulement dans ./: debug_wsl.md
|
||||||
|
Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents
|
||||||
|
Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents
|
||||||
|
Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents
|
||||||
|
Les fichiers ./rooms/kroo2.sh et ../_votre jeu/rooms/kroo2.sh sont différents
|
||||||
|
Les fichiers ./rooms/kroo.sh et ../_votre jeu/rooms/kroo.sh sont différents
|
||||||
|
Les fichiers ./rooms/mainroom.sh et ../_votre jeu/rooms/mainroom.sh sont différents
|
||||||
|
Les fichiers ./rooms/meteofrance.sh et ../_votre jeu/rooms/meteofrance.sh sont différents
|
||||||
|
Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
geany ./rooms/meteofrance.sh
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
|
||||||
|
# This is close to the endgame, but affords the player a last set of things to try and do.
|
||||||
|
# Obviously if you use this framework to create a game of your own, you can extend this massively.
|
||||||
|
|
||||||
|
echo
|
||||||
|
sleep 1
|
||||||
|
echo "Vous décidez de sortir de la Sation Astroport."
|
||||||
|
echo
|
||||||
|
echoleverstate=`cat ../logic/stationlogic.ben`
|
||||||
|
if [ "$leverstate" = "on" ]; then
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
echo "Il ne dépend que de vous d'explorer ce nouveau futur."
|
||||||
|
echo "Le Visa MadeInZion inaugure un monde sans territoire, sans frontière, transnationnal, interplanétaire, à vous de voir?"
|
||||||
|
sleep 2
|
||||||
|
echo "Avant de nous rejoindre. Visitez notre 'bon coin' https://gchange.fr "
|
||||||
|
echo
|
||||||
|
sleep 3
|
||||||
|
echo "Ouvrez une ambassade? Installez IPFS, devenons hébergeur, fournisseur d'accès de nos Internets."
|
||||||
|
echo
|
||||||
|
sleep 4
|
||||||
|
echo "Ouvrez votre propriété au futur en commun, activez Astroport."
|
||||||
|
echo "Nous organisons des formations habitats posés, vissés et cousus. Eau potable. Biogaz, Marmite Norvégienne..."
|
||||||
|
echo "Comment nourrir le sol, reconnaitre les plantes... Redevenir ceuilleur, créateur."
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "Aucune entrée n'est visible."
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
sleep 5
|
||||||
|
echo
|
||||||
|
echo "Que voulez vous faire?"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Pas moyen de se déplacer." ;;
|
||||||
|
s ) echo ".Pas le choix." ;;
|
||||||
|
e ) echo "Pas par là." ;;
|
||||||
|
w ) echo "Plus à l'ouest que ça? Y'a pas!" ;;
|
||||||
|
u ) ./end.sh
|
||||||
|
exit ;;
|
||||||
|
h ) echo "Comment refuser une telle proposition..." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
ME="${0##*/}"
|
||||||
|
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="$MY_PATH/../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Here's this room's script.
|
||||||
|
|
||||||
|
echo "Sur la direction du sud, vous traversez une zone plus sombre et humide."
|
||||||
|
echo "Le sol est glissant à cause de l'argile qui colle sous vos bottes"
|
||||||
|
echo "Vous finissez par croiser un chemin qui traverse la forêt d'Est en Ouest"
|
||||||
|
echo
|
||||||
|
echo "Un terminal informatique est installé là."
|
||||||
|
echo
|
||||||
|
echo "Il ressemble à une grosse calculatrice"
|
||||||
|
|
||||||
|
|
||||||
|
# Here we tell the player whether the lever is on or off.
|
||||||
|
leverstate=$(cat $MY_PATH/../logic/leverlogic.ben)
|
||||||
|
if [ "$leverstate" = "on" ]; then
|
||||||
|
echo "'VISA SVP' clignote sur l'écran..."
|
||||||
|
else
|
||||||
|
echo "La machine affiche l'heure : 20:12"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo "Il est tard pour explorer le chemin à pied, vous devriez retourner d'où vous venez."
|
||||||
|
echo
|
||||||
|
echo "Que faites vous?"
|
||||||
|
|
||||||
|
# In this set of actons lies the logic switch used later in the game.
|
||||||
|
# You have to set this switch to reach the endgame.
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) ./mainroom.sh
|
||||||
|
exit ;;
|
||||||
|
s ) echo "Si vous continuez à marcher dans la forêt. Vous allez vous perdre. Demi tour." ;;
|
||||||
|
e ) echo "Le chemin qui part à l'Est est plein de boue... Impossble d'aller par là." ;;
|
||||||
|
w ) echo "Une rivière vous empêche de passer." ;;
|
||||||
|
u ) if [ "$leverstate" = "on" ]; then
|
||||||
|
echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'."
|
||||||
|
else
|
||||||
|
sed -i -e '${/^$/d;}' -e 's/off/on/' $MY_PATH/../logic/leverlogic.ben
|
||||||
|
echo "Vous pianotez sur l'appareil..."
|
||||||
|
echo "A moment où vous touchez la touche '#' L'écran se met à clignoter..."
|
||||||
|
echo "Puis le message 'ACTIVATION STATION' défile sur les caractères lumineux."
|
||||||
|
fi
|
||||||
|
leverstate=$(cat $MY_PATH/../logic/leverlogic.ben)
|
||||||
|
;;
|
||||||
|
h ) echo "Le terminal comporte un clavier numérique. Un petit écran.. Il est réalisé avec un mini ordinateur Raspberry Pi. Il porte l'adresse G1TAG [https://g1sms.fr]" ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,71 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
|
||||||
|
# This is the endgame. This file does nothing but give you the final bit of storyline.
|
||||||
|
# Use (over-use) of 'sleep' is for dramatic effect - play around with it, see how it reads.
|
||||||
|
|
||||||
|
# Let's reset the lever, now that we're done with it.
|
||||||
|
sed -i='' 's/on/off/' ../logic/leverlogic.ben
|
||||||
|
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
sleep 1
|
||||||
|
echo "Voici la fin de cette petite aventure."
|
||||||
|
echo
|
||||||
|
sleep 4
|
||||||
|
echo "Vous venez de visiter la forêt où s'est posé Astroport ONE."
|
||||||
|
sleep 3
|
||||||
|
echo
|
||||||
|
echo "Une oeuvre habitable. Un jardin sur sol vivant. Un progamme pair à pair interplanétaire"
|
||||||
|
sleep 4
|
||||||
|
echo
|
||||||
|
echo "Les terraformeurs"
|
||||||
|
echo "En quête de la meilleure façon de vivre sur le vaisseau spatial Terre..."
|
||||||
|
echo
|
||||||
|
sleep 5
|
||||||
|
echo "Vous aussi ouvrez votre Ambassade."
|
||||||
|
echo "Activez le JEu. Invitez vos visiteurs à rêver d'un monde meilleur"
|
||||||
|
echo "Reproduisez, améliorez, partagez les plans pour y parvenir."
|
||||||
|
echo
|
||||||
|
sleep 7
|
||||||
|
echo "Il est l'heure de laisser derrière vous la civilisation thermo industrielle."
|
||||||
|
echo "Gagnez en autonomie, en convivialité, en optimisme, en conscience."
|
||||||
|
echo
|
||||||
|
sleep 5
|
||||||
|
echo
|
||||||
|
echo "EMBARQUEZ VERS LE FUTUR"
|
||||||
|
echo
|
||||||
|
sleep 9
|
||||||
|
echo
|
||||||
|
file1="../art/bigfinish.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
read -p "Appuyez sur [ENTER] pour terminer..."
|
||||||
|
echo
|
||||||
|
clear
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
echo "Merci d'avoir joué le jeu"
|
||||||
|
echo "Je suis heureux de vous avoir fait partager le rêve des astronautes terraformeurs."
|
||||||
|
echo
|
||||||
|
echo "Le futur ne se prédit pas, il se construit. Il se vit."
|
||||||
|
echo
|
||||||
|
echo " - @Fred"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# That's all, folks!
|
||||||
|
|
||||||
|
exit
|
|
@ -0,0 +1,88 @@
|
||||||
|
#!/bin/bash
|
||||||
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
ME="${0##*/}"
|
||||||
|
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# This room gives the player a typical poisoned apple style scenaro.
|
||||||
|
# Just because something looks shiny and fun, doesn't make it any
|
||||||
|
# less deadly.
|
||||||
|
sleep 1
|
||||||
|
echo "Dans une cabine, un écran est disposé en coin. Un tout petit ordinateur"
|
||||||
|
echo "y est raccordé... D'autres fils sortent de l'appareil. Une webcam. Une imprimante."
|
||||||
|
echo
|
||||||
|
echo "Que voulez vous faire?"
|
||||||
|
myIP=$(hostname -I | awk '{print $1}' | head -n 1)
|
||||||
|
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
|
||||||
|
[[ ! $myIP || $isLAN ]] && myIP="127.0.1.1"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Vous êtes dans une cabine. Des QRCode sont collés à la parois nord" ;;
|
||||||
|
s ) echo "Cette paroie comporte un miroir. Pour se faire une beauté avant d'enregistrer une capsule vidéo." ;;
|
||||||
|
w ) ./kroo.sh
|
||||||
|
exit ;;
|
||||||
|
e ) echo "Vous êtes face à l'écran. Au dessus des hauts parleurs, une webcam" ;;
|
||||||
|
u ) leverstate=`cat ../logic/stationlogic.ben`
|
||||||
|
if [ "$leverstate" = "on" ]; then
|
||||||
|
echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'."
|
||||||
|
else
|
||||||
|
sed -i='' 's/off/on/' ../logic/stationlogic.ben
|
||||||
|
echo "Vous appuyez sur l'interupteur de l'écran. Y apparaît alors :"
|
||||||
|
sleep 3
|
||||||
|
echo "AMBASSADE MadeInZion - TerraPi4 - 2 To -"
|
||||||
|
echo ""
|
||||||
|
echo
|
||||||
|
sleep 2
|
||||||
|
echo "INTERNET est dangereux. il vend vos information personnelles pour que vous deveniez un produit. "
|
||||||
|
sleep 2
|
||||||
|
echo
|
||||||
|
echo "Rebootez INTERNET. Activez votre TW sur le Système de Fichiers Interplanétaire (IPFS)."
|
||||||
|
sleep 2
|
||||||
|
echo
|
||||||
|
echo "On y échange en pair à pair. La monnaie y est Libre."
|
||||||
|
sleep 4
|
||||||
|
file1="../art/astrored.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
echo "____ Astroport déclenche à 20:12 la synchronisation de ses ambassades..."
|
||||||
|
echo "Rapport 2022 : https://ipfs.asycn.io/ipfs/QmUtGpGeMZvwp47ftqebVmoFWCmvroy5wEtWsKvWvDWJpR"
|
||||||
|
sleep 3
|
||||||
|
echo
|
||||||
|
echo "ASTROPORT ONE"
|
||||||
|
echo "VISA pour le vaisseau spatial TERRE."
|
||||||
|
if [[ -d ~/.zen/Astroport.ONE ]]; then
|
||||||
|
read -p "Appuyez sur [ENTER] pour activer votre Station Astroport.ONE"
|
||||||
|
espeak "Astroport Command" > /dev/null 2>&1
|
||||||
|
|
||||||
|
~/.zen/Astroport.ONE/command.sh
|
||||||
|
else
|
||||||
|
espeak "Please Install Astroport" > /dev/null 2>&1
|
||||||
|
echo "Install Astroport.ONE ..."
|
||||||
|
echo "bash <(wget -qO- https://raw.githubusercontent.com/papiche/Astroport.ONE/master/install.sh)"
|
||||||
|
./end.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
|
||||||
|
h ) echo "'DEMARRER API http://$myIP:1234 ... Une Station Astroport.ONE.?." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Everybody clap your hands. I mean, here is the script.
|
||||||
|
sleep 1
|
||||||
|
echo "Vous atteignez une zone remplie de jeunes épineux"
|
||||||
|
echo "Vous reconnaissez des prunus, des aubépines."
|
||||||
|
echo "Quelques génévriers dont vous remarquez les baies noires."
|
||||||
|
echo "Un peu plus loin ce sont les ronces."
|
||||||
|
echo
|
||||||
|
echo "Plus vous progressez plus vous souffrez des épines. Existe-t-il un passage? Qui sait."
|
||||||
|
echo
|
||||||
|
echo "Que voulez vous faire?"
|
||||||
|
|
||||||
|
# And here's what you could have won...
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Un énorme roncier vous barre la route. Ca ne passe pas." ;;
|
||||||
|
s ) echo "Vers le sud, aucun passage en vue." ;;
|
||||||
|
e ) ./mainroom.sh
|
||||||
|
exit ;;
|
||||||
|
w ) echo "Vous voyez le même paysage à perte de vue" ;;
|
||||||
|
u ) echo "Vous cueillez une baie de genèvrier. Vous la portez à la bouche. Croquez. La saveur est délicieuse. La force de la plante vous envahi." ;;
|
||||||
|
h ) echo "Ce type de terrain est caractéritique des zones déboisées. La nature sort ses épines pour protéger les arbres qui poussent en dessous." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# I like this room. There is no way to get out of it alive.
|
||||||
|
sleep 1
|
||||||
|
echo "Un évier derrière une fenère, une ancienne porte d'armoire comme table."
|
||||||
|
echo "Un meuble fait de planches de bois cousues rempli de bocaux"
|
||||||
|
echo "Une glacière recouverte d'une couche d'isolant Un bruleur à gaz."
|
||||||
|
echo "C'est un espace pour cuisiner."
|
||||||
|
sleep 3
|
||||||
|
echo
|
||||||
|
echo "Vous avez soif. Un filtre à eau gravitationnel vous fait face"
|
||||||
|
echo "vous attraper un gobelet et le remplissez à raz bord du liquide de la bombone"
|
||||||
|
echo "Vous portez le verre à vos lèvres..."
|
||||||
|
echo
|
||||||
|
sleep 5
|
||||||
|
echo "A la première gorgée vous vous sentez ramolir. Comment savoir combien vous avez bu"
|
||||||
|
echo "quand votre corps devenu impossible à garder droit s'est éffondré sur le sol."
|
||||||
|
echo "Simplement le temps de vous demander pourquoi?"
|
||||||
|
echo
|
||||||
|
echo "Vous sombrez dans l'inconscience."
|
||||||
|
sleep 4
|
||||||
|
echo "VOUS VOUS SENTEZ DECOLLER."
|
||||||
|
echo
|
||||||
|
read -p "Appuyez sur [ENTER] pour revenir..."
|
||||||
|
./mainroom.sh
|
||||||
|
|
||||||
|
exit
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
|
||||||
|
# This room gets a little artsy with sleep commands, to help with the
|
||||||
|
# narrative of the story. This is why there are two versions - foyer and foyer2.
|
||||||
|
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# It's script time again...
|
||||||
|
echo "Vous pénétrez à l'intérieur de l'Astroport."
|
||||||
|
echo
|
||||||
|
echo "Une voix synthétique vous accueille."
|
||||||
|
espeak "Welcome. Please Identify." > /dev/null 2>&1
|
||||||
|
echo
|
||||||
|
echo "Vous parcourez l'espace du regard"
|
||||||
|
echo "Au nord, face à vous se trouve un foyer où brule un feu."
|
||||||
|
echo
|
||||||
|
echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?"
|
||||||
|
echo "A l'est il y a un genre de 'photomaton' "
|
||||||
|
echo
|
||||||
|
echo "Derrière vous, la porte par où vous êtes entré est encore ouverte."
|
||||||
|
echo
|
||||||
|
echo "Que voulez vous faire?"
|
||||||
|
echo
|
||||||
|
echo "Il y a également un ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'"
|
||||||
|
|
||||||
|
# And once again the room logic.
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant."
|
||||||
|
./magic8.sh
|
||||||
|
;;
|
||||||
|
s ) ./bigroom.sh
|
||||||
|
exit ;;
|
||||||
|
e ) ./gameroom.sh
|
||||||
|
exit ;;
|
||||||
|
w ) ./grue.sh
|
||||||
|
exit ;;
|
||||||
|
u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?"
|
||||||
|
./meteofrance.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
h ) echo "La pièce est spacieuse. La chaleur du feu agréable, à gauche on dirait une cuisine explosée, à droite une chaise moletonnée fait face à un écran." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
|
||||||
|
# This room gets a little artsy with sleep commands, to help with the
|
||||||
|
# narrative of the story. This is why there are two versions - foyer and foyer2.
|
||||||
|
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# It's script time again...
|
||||||
|
echo "Vous parcourez l'espace du regard"
|
||||||
|
echo "Au nord, face à vous se trouve un foyer où brule un feu."
|
||||||
|
echo
|
||||||
|
echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?"
|
||||||
|
echo "A l'est il y a un genre de 'photomaton' "
|
||||||
|
echo
|
||||||
|
echo "Derrière vous, la porte par où vous êtes entré est encore ouverte."
|
||||||
|
echo
|
||||||
|
echo "Que voulez vous faire?"
|
||||||
|
echo
|
||||||
|
echo "Il y a toujours l'ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'"
|
||||||
|
|
||||||
|
# And once again the room logic.
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant."
|
||||||
|
./magic8.sh
|
||||||
|
;;
|
||||||
|
s ) ./bigroom.sh
|
||||||
|
exit ;;
|
||||||
|
e ) ./gameroom.sh
|
||||||
|
exit ;;
|
||||||
|
w ) ./grue.sh
|
||||||
|
exit ;;
|
||||||
|
u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?"
|
||||||
|
./meteofrance.sh
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
h ) echo "La pièce est spacieuse. La chaleur du feu agréable, à gauche on dirait une cuisine explosée, à droite une chaise moletonnée fait face à un écran." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# magic 8 ball. Yup. Pick a random number, output message
|
||||||
|
# source: https://www.linuxjournal.com/content/bash-shell-games-lets-play-go-fish
|
||||||
|
|
||||||
|
answers=("Oui c'est certain." "C'est carrément ça."
|
||||||
|
"Sans aucun doute." "Oui - assurément."
|
||||||
|
"Comptez la dessus." "Comme je le vois, oui." "Très probablement."
|
||||||
|
"Bonne perspective." "Oui." "Les signes indiquent que oui."
|
||||||
|
"Réponse floue, essayez à nouveau." "Redemandez plus tard."
|
||||||
|
"Il vaut mieux ne pas vous le dire maintenant.." "Impossible de prédire maintenant."
|
||||||
|
"Concentrez-vous et demandez à nouveau." "N'y comptez pas."
|
||||||
|
"Ma réponse est non." "Mes sources disent que non."
|
||||||
|
"Rien de bon." "Très douteux.")
|
||||||
|
|
||||||
|
echo "Oh ! Boule magique, dis-moi la vérité, s'il te plaît...." ; echo ""
|
||||||
|
/bin/echo -n "Quelle est votre question ? "
|
||||||
|
read question
|
||||||
|
|
||||||
|
answer=$(( $RANDOM % 20 ))
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "J'ai regardé dans le futur et je dis: "
|
||||||
|
echo " ${answers[$answer]}" ; echo ""
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
./mainroom.sh
|
||||||
|
|
||||||
|
exit
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
|
||||||
|
# This is a repeat of the opening room in the start.sh file - if the player
|
||||||
|
# wants to go back to the main room, this saves going through the whole
|
||||||
|
# start script over again.
|
||||||
|
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Shakesphere wrote this, honest.
|
||||||
|
echo "Vous êtes de retour à votre point de départ."
|
||||||
|
echo "La forêt qui vous entoure est immense."
|
||||||
|
echo "Vous ne pouvez pas vraiment en imaginer la taille,"
|
||||||
|
echo
|
||||||
|
echo "Vous pouvez vous diriger au nord, à l'est, au sud et à l'ouest."
|
||||||
|
echo
|
||||||
|
echo "Que voulez-vous faire ?"
|
||||||
|
|
||||||
|
# And the room logic once again.
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) ./white.sh
|
||||||
|
exit ;;
|
||||||
|
s ) ./brown.sh
|
||||||
|
exit ;;
|
||||||
|
e ) ./red.sh
|
||||||
|
exit ;;
|
||||||
|
w ) ./green.sh
|
||||||
|
exit ;;
|
||||||
|
u ) echo "Il n'y a rien que vous puissiez utiliser ici." ;;
|
||||||
|
h ) echo "Vous observez votre montre, il est 20:12" ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,216 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Fonction pour afficher l'interface du jeu
|
||||||
|
draw_game() {
|
||||||
|
clear
|
||||||
|
for ((i = 0; i < height; i++)); do
|
||||||
|
for ((j = 0; j < width; j++)); do
|
||||||
|
if [[ $i -eq 0 || $i -eq $((height - 1)) || $j -eq 0 || $j -eq $((width - 1)) ]]; then
|
||||||
|
echo -e "\033[1;34m#\033[0m\c"
|
||||||
|
elif [[ $i -eq $fruit_row && $j -eq $fruit_col ]]; then
|
||||||
|
echo -e "\033[1;31m@\033[0m\c"
|
||||||
|
else
|
||||||
|
local is_snake_segment=false
|
||||||
|
for ((k = 0; k < ${#snake_body_rows[@]}; k++)); do
|
||||||
|
if [[ $i -eq ${snake_body_rows[$k]} && $j -eq ${snake_body_cols[$k]} ]]; then
|
||||||
|
echo -e "\033[1;32m#\033[0m\c"
|
||||||
|
is_snake_segment=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $is_snake_segment == false ]]; then
|
||||||
|
echo -e " \c"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialisation des variables
|
||||||
|
height=20
|
||||||
|
width=40
|
||||||
|
snake_body_rows=()
|
||||||
|
snake_body_cols=()
|
||||||
|
snake_length=1
|
||||||
|
direction="RIGHT"
|
||||||
|
fruit_row=$((RANDOM % (height - 2) + 1))
|
||||||
|
fruit_col=$((RANDOM % (width - 2) + 1))
|
||||||
|
|
||||||
|
# Position initiale du serpent
|
||||||
|
snake_body_rows[0]=$((height / 2))
|
||||||
|
snake_body_cols[0]=$((width / 2))
|
||||||
|
|
||||||
|
# Fonction pour déplacer le serpent
|
||||||
|
move_snake() {
|
||||||
|
local i
|
||||||
|
for ((i = ${#snake_body_rows[@]} - 1; i > 0; i--)); do
|
||||||
|
snake_body_rows[$i]=${snake_body_rows[$((i - 1))]}
|
||||||
|
snake_body_cols[$i]=${snake_body_cols[$((i - 1))]}
|
||||||
|
done
|
||||||
|
|
||||||
|
case $direction in
|
||||||
|
"UP")
|
||||||
|
snake_body_rows[0]=$((snake_body_rows[0] - 1))
|
||||||
|
;;
|
||||||
|
"DOWN")
|
||||||
|
snake_body_rows[0]=$((snake_body_rows[0] + 1))
|
||||||
|
;;
|
||||||
|
"LEFT")
|
||||||
|
snake_body_cols[0]=$((snake_body_cols[0] - 1))
|
||||||
|
;;
|
||||||
|
"RIGHT")
|
||||||
|
snake_body_cols[0]=$((snake_body_cols[0] + 1))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour vérifier les collisions
|
||||||
|
check_collision() {
|
||||||
|
if [[ ${snake_body_rows[0]} -le 0 || ${snake_body_rows[0]} -ge $((height - 1)) || ${snake_body_cols[0]} -le 0 || ${snake_body_cols[0]} -ge $((width - 1)) ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for ((i = 1; i < ${#snake_body_rows[@]}; i++)); do
|
||||||
|
if [[ ${snake_body_rows[0]} -eq ${snake_body_rows[$i]} && ${snake_body_cols[0]} -eq ${snake_body_cols[$i]} ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${snake_body_rows[0]} -eq $fruit_row && ${snake_body_cols[0]} -eq $fruit_col ]]; then
|
||||||
|
generate_fruit
|
||||||
|
grow_snake
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour faire grandir le serpent
|
||||||
|
grow_snake() {
|
||||||
|
local last_index=$(( ${#snake_body_rows[@]} - 1 ))
|
||||||
|
local last_row=${snake_body_rows[$last_index]}
|
||||||
|
local last_col=${snake_body_cols[$last_index]}
|
||||||
|
snake_body_rows+=($last_row)
|
||||||
|
snake_body_cols+=($last_col)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour générer un nouveau fruit
|
||||||
|
generate_fruit() {
|
||||||
|
fruit_row=$((RANDOM % (height - 2) + 1))
|
||||||
|
fruit_col=$((RANDOM % (width - 2) + 1))
|
||||||
|
}
|
||||||
|
|
||||||
|
# Boucle principale du jeu
|
||||||
|
while true; do
|
||||||
|
draw_game
|
||||||
|
echo "Score: ${#snake_body_rows[@]}"
|
||||||
|
|
||||||
|
# Appel à la fonction move_snake pour que le serpent avance automatiquement
|
||||||
|
move_snake
|
||||||
|
|
||||||
|
read -s -t 0.2 -n 1 action
|
||||||
|
|
||||||
|
case $action in
|
||||||
|
"z")
|
||||||
|
if [[ $direction != "DOWN" ]]; then
|
||||||
|
direction="UP"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"s")
|
||||||
|
if [[ $direction != "UP" ]]; then
|
||||||
|
direction="DOWN"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"q")
|
||||||
|
if [[ $direction != "RIGHT" ]]; then
|
||||||
|
direction="LEFT"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"d")
|
||||||
|
if [[ $direction != "LEFT" ]]; then
|
||||||
|
direction="RIGHT"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Vérifier les collisions après le déplacement
|
||||||
|
check_collision
|
||||||
|
if [[ $? -eq 1 ]]; then
|
||||||
|
echo "Bravo ! Vous avez eu le score de ${#snake_body_rows[@]} ! Appuyez sur \"q\" pour quitter le jeu ou sur \"r\" pour rejouer"
|
||||||
|
read -n 1 -s choice
|
||||||
|
case $choice in
|
||||||
|
q)
|
||||||
|
./kroo2.sh
|
||||||
|
;;
|
||||||
|
r)
|
||||||
|
./meteofrance.sh
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Choix non reconnu."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# #!/bin/bash
|
||||||
|
# ################################################################################
|
||||||
|
# # Author: Fred (support@qo-op.com)
|
||||||
|
# # Version: 0.1
|
||||||
|
# # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
|
# ################################################################################
|
||||||
|
# MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
|
# mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
|
# ################################################################################
|
||||||
|
# # Choisir la source de capture
|
||||||
|
# # https://fr.sat24.com/image?type=visual5HDComplete®ion=fr
|
||||||
|
|
||||||
|
# MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
# MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
# ME="${0##*/}"
|
||||||
|
|
||||||
|
# ## TEST IPFS
|
||||||
|
# [[ ! $(which ipfs) ]] && echo "Missing IPFS. Please install... https://ipfs.tech" && exit 1
|
||||||
|
|
||||||
|
# ## PREPARE FILE SYSTEM CACHE
|
||||||
|
# mkdir -p ~/.zen/adventure/meteo.anim.eu
|
||||||
|
# rm -f ~/.zen/adventure/meteo.anim.eu/meteo.png
|
||||||
|
|
||||||
|
# ## SCRAPING meteo.png
|
||||||
|
# curl -m 20 --output ~/.zen/adventure/meteo.anim.eu/meteo.png https://s.w-x.co/staticmaps/wu/wu/satir1200_cur/europ/animate.png
|
||||||
|
|
||||||
|
# if [[ ! -f ~/.zen/adventure/meteo.anim.eu/meteo.png ]]; then
|
||||||
|
|
||||||
|
# echo "Impossible de se connecter au service meteo"
|
||||||
|
# exit 1
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# echo "Mise à jour archive meteo : ${MOATS}"
|
||||||
|
# echo ${MOATS} > ~/.zen/adventure/meteo.anim.eu/.moats
|
||||||
|
|
||||||
|
# OLDID=$(cat ~/.zen/adventure/.meteo.index 2>/dev/null)
|
||||||
|
# # TODO : COMPARE SIMILAR OR NOT
|
||||||
|
# # ipfs get "/ipfs/$OLDID/meteo.anim.eu/meteo.png"
|
||||||
|
|
||||||
|
# ## PREPARE NEW index.html
|
||||||
|
# sed "s/_OLDID_/$OLDID/g" ${MY_PATH}/../templates/meteo_chain.html > /tmp/index.html
|
||||||
|
# sed -i "s/_IPFSID_/$IPFSID/g" /tmp/index.html
|
||||||
|
# sed -i "s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g" /tmp/index.html
|
||||||
|
# sed "s/_PSEUDO_/${USER}/g" /tmp/index.html > ~/.zen/adventure/index.html
|
||||||
|
|
||||||
|
# # Copy style css
|
||||||
|
# cp -r ${MY_PATH}/../templates/styles ~/.zen/adventure/
|
||||||
|
|
||||||
|
# INDEXID=$(ipfs add -rHq ~/.zen/adventure/* | tail -n 1)
|
||||||
|
# echo $INDEXID > ~/.zen/adventure/.meteo.index
|
||||||
|
# echo "METEO INDEX : http://127.0.0.1:8080/ipfs/$INDEXID"
|
||||||
|
|
||||||
|
# IPFS=$(ipfs add -q ~/.zen/adventure/meteo.anim.eu/meteo.png | tail -n 1)
|
||||||
|
# echo $IPFS > ~/.zen/adventure/meteo.anim.eu/.chain
|
||||||
|
|
||||||
|
# fi
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Set up the script for this room. It's a simple one!
|
||||||
|
sleep 1
|
||||||
|
echo "Vous entrez dans l'ancienne bergerie."
|
||||||
|
echo "Un canapé mauve est installé au milieu de l'espace"
|
||||||
|
echo "Une bache transparente vous sépare du ciel."
|
||||||
|
echo
|
||||||
|
echo "Vous êtes dans une serre."
|
||||||
|
echo "Une seule sortie. A l'Ouest, d'où vous venez."
|
||||||
|
echo
|
||||||
|
echo "Que voulez-vous faire?"
|
||||||
|
|
||||||
|
# And the choices go here.
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Une fente dans le mur vous laisse observer une carcasse de voiture. Une vieille 2cv. Un grillage vous empêche de passer." ;;
|
||||||
|
s ) echo "L'emplacement d'un grand feu se trouve la. Il ne reste que de la cendre." ;;
|
||||||
|
e ) echo "Une autre pièce remplie de gravats et d'éboulis se trouve devant vous. Impossible d'y accéder." ;;
|
||||||
|
w ) ./mainroom.sh
|
||||||
|
exit ;;
|
||||||
|
u ) echo "Vous vous asseyez dans le canapé. Vous vous sentez immédiatement happé par un nuage."
|
||||||
|
sleep 2
|
||||||
|
xdg-open "https://www.copylaradio.com/blog/blog-1/post/le-pas-a-pas-qui-libere-du-grand-mechant-cloud-36#scrollTop=0"
|
||||||
|
;;
|
||||||
|
h ) echo "Aucun détail particulier si ce n'est une tache sur le sofa." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
|
ME="${0##*/}"
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
# Logic in the game is stored in .ben files. This sample has just one 'logic' file.
|
||||||
|
# You can add more logic files by simply adding a 'sed' command and appropriate .ben file.
|
||||||
|
# First off, let us reset the game logic. Use this as an example.
|
||||||
|
|
||||||
|
sed -i '' 's/on/off/' ../logic/leverlogic.ben
|
||||||
|
|
||||||
|
# Who doen't love ASCII text, right?
|
||||||
|
# Next up, let's initialise the Title Art
|
||||||
|
file1="$MY_PATH/../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Next up, let's load in the initial introduction. Script is also stored in .ben files.
|
||||||
|
file2="$MY_PATH/../script/opening.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file2"
|
||||||
|
read -p "Pressez sur [ENTER] pour démarrer..."
|
||||||
|
|
||||||
|
#Okay, now that the introduction is out of the way, we can start the first room!
|
||||||
|
clear
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Here's where you introduce the room to the player. Be sure to tell them if there
|
||||||
|
# Are exits - but don't give too much away. Make it fun for them to explore!
|
||||||
|
echo
|
||||||
|
echo "La téléportation vous a placé debout au centre d'une clairière."
|
||||||
|
echo "Vous vous trouvez près d'une ancienne bergerie aux gros murs de pierres."
|
||||||
|
echo "Le toit et une bonne partie des murs sont effondrés."
|
||||||
|
echo
|
||||||
|
echo "Tout autour la forêt. Des feuillus. Quelques arbustres épineux."
|
||||||
|
echo "Sous vos pieds. Le sol est rouge parsemé de cailloux blancs."
|
||||||
|
echo
|
||||||
|
echo "Vous pouvez vous diriger selon les points cardinaux."
|
||||||
|
echo "Au nord un chemin remonte, au sud un passage descend, à l'est, la bergerie, à l'ouest, des traces d'animaux"
|
||||||
|
echo
|
||||||
|
echo "Que voulez-vous faire? Les commandes sont : n, e, s, w, u et h."
|
||||||
|
|
||||||
|
# Now we wait for their response - and send them somewhere accordingly.
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) ./white.sh
|
||||||
|
exit ;; # These lines will take the player to a new room - a new script file.
|
||||||
|
s ) ./brown.sh
|
||||||
|
exit ;; # Be sure to include 'exit' otherwise the game won't quit properly!
|
||||||
|
e ) ./red.sh
|
||||||
|
exit ;;
|
||||||
|
w ) ./green.sh
|
||||||
|
exit ;;
|
||||||
|
u ) echo "Vous ouvrez votre sac il contient une tente, des vêtements, un thermos, une scie pliante et un couteau" ;; # Something to say? You can also just echo.
|
||||||
|
h ) echo "Comment avez-vous pu arriver ici.? Des souvenirs vous reviennent... https://ipfs.copylaradio.com/ipfs/QmWyCFvvvrE1xWudCnc14oDvaztLaRZ4guvQFVkkDLwa23#JOUR%201.%20PLANETE%201." ;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/bin/bash
|
||||||
|
clear
|
||||||
|
# Initialise the Title Art
|
||||||
|
file1="../art/titleart.ben"
|
||||||
|
while IFS= read -r line
|
||||||
|
do
|
||||||
|
echo "$line"
|
||||||
|
done <"$file1"
|
||||||
|
echo
|
||||||
|
|
||||||
|
#Setting up the room...
|
||||||
|
sleep 1
|
||||||
|
echo "Vous parcourez un chemin qui monte en direction du nord.."
|
||||||
|
echo "Au sommet de cette petite colline vous découvrez un magestueux chêne"
|
||||||
|
echo "trônant au centre d'une clairière lumineuse. La forêt à cet endroit"
|
||||||
|
echo "forme un cercle tout autour..."
|
||||||
|
echo
|
||||||
|
echo "Un Astroport fait de vitres, de planches, de tôles et de chevrons"
|
||||||
|
echo "est posé là. Eclairé par les rayons du soleil."
|
||||||
|
echo
|
||||||
|
# Here we're going to check to see if the lever - the only logic we are using in this game - is on or off.
|
||||||
|
leverstate=`cat ../logic/leverlogic.ben`
|
||||||
|
if [ "$leverstate" = "on" ]; then
|
||||||
|
echo "Une poignée est apparue sur la porte de la façade..."
|
||||||
|
else
|
||||||
|
echo "Vous en faites le tour..."
|
||||||
|
echo "Aucune entrée n'est visible."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Pas d'autre chemin praticable que celui d'où vous venez."
|
||||||
|
echo
|
||||||
|
echo "Que voulez-vous faire ?"
|
||||||
|
|
||||||
|
# Now lets capture this room's actions. Note that here, the actions change depending on whether or not
|
||||||
|
# the lever is on or off. If it's on, you go elsewhere. If it's off, you don't.
|
||||||
|
while true; do
|
||||||
|
read -p "> " nsewuh
|
||||||
|
case $nsewuh in
|
||||||
|
n ) echo "Vous vous aventurez dans la forêt plus au nord. Sans boussole, vous allez vous perdre rapidement... " ;;
|
||||||
|
s ) ./mainroom.sh
|
||||||
|
exit ;;
|
||||||
|
e ) echo "Une corniche surplombe un ruisseau qui coule dans le fond de la ravine. Impossible de passer sans équipement" ;;
|
||||||
|
w ) echo "Vous voilà face à un Jardin luxuriant. Une cloture électrique le délimite et en empêche l'accès." ;;
|
||||||
|
h ) echo "Vous voyez à l'interieur de la Station une video en cours de projection..."
|
||||||
|
sleep 2
|
||||||
|
xdg-open "https://www.youtube.com/embed/Yk-WRXKysXM"
|
||||||
|
;;
|
||||||
|
u ) leverstate=`cat ../logic/leverlogic.ben`
|
||||||
|
if [ "$leverstate" = "on" ]; then
|
||||||
|
./kroo.sh
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
echo "Vous cherchez une ouverture... Pas la moindre. Impossible d'entrer sans commettre une effraction..."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
* ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
esac
|
||||||
|
exit
|
|
@ -0,0 +1,23 @@
|
||||||
|
Message de la Confédération Interplanétaire
|
||||||
|
|
||||||
|
La planète où vous vous trouvez est en danger. Les menaces sont nombreuses.
|
||||||
|
Vos gouvernements se disputent les dernières ressources. Le cycle du vivant est perturbé !
|
||||||
|
Le "contrat social" des 'pays civilisés' vascille. Les technocrates réclament plus de contrôle.
|
||||||
|
|
||||||
|
La commission extraterrestre est formelle. Vous êtes en danger.
|
||||||
|
|
||||||
|
Heureusement la monnaie libre a été découverte sur votre planète!
|
||||||
|
Elle s'utilise dans un jeu 'grandeur nature'. Astroport 20:12
|
||||||
|
Bienvenue dans l'aventure du changement de civilisation.
|
||||||
|
|
||||||
|
Les commandes pour vous déplacer et interagir sont
|
||||||
|
'n' aller au nord,
|
||||||
|
's' aller au sud,
|
||||||
|
'e' aller à l'est,
|
||||||
|
'w' aller à l'ouest,
|
||||||
|
'u' utiliser,
|
||||||
|
'h' observer plus en détail.
|
||||||
|
|
||||||
|
Ctrl-C pour quitter.
|
||||||
|
|
||||||
|
- - -
|
|
@ -1 +0,0 @@
|
||||||
ici
|
|
|
@ -32,7 +32,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
# REMOVE GtkDialog errors for zenity
|
# REMOVE GtkDialog errors for zenity
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
alias zenity='zenity 2> >(grep -v GtkDialog >&2)'
|
alias zenity='zenity 2> >(grep -v GtkDialog >&2)'
|
||||||
alias espeak='espeak 1>&2>/dev/null'
|
alias espeak='espeak >/dev/null 2>&1'
|
||||||
|
|
||||||
## CHECK IF IPFS DAEMON IS STARTS WELL
|
## CHECK IF IPFS DAEMON IS STARTS WELL
|
||||||
floop=0
|
floop=0
|
||||||
|
@ -71,7 +71,7 @@ if [[ ${PLAYER} == "" ]]; then
|
||||||
players=($(ls ~/.zen/game/players | grep "@" 2>/dev/null))
|
players=($(ls ~/.zen/game/players | grep "@" 2>/dev/null))
|
||||||
|
|
||||||
if [[ ${#players[@]} -ge 1 ]]; then
|
if [[ ${#players[@]} -ge 1 ]]; then
|
||||||
espeak "SELECT YOUR PLAYER" 2>/dev/null
|
espeak "SELECT YOUR PLAYER"
|
||||||
OUTPUT=$(zenity --list --width 480 --height 200 --title="Choix du PLAYER" --column="Astronaute" "${players[@]}")
|
OUTPUT=$(zenity --list --width 480 --height 200 --title="Choix du PLAYER" --column="Astronaute" "${players[@]}")
|
||||||
[[ ${OUTPUT} == "" ]] && espeak "No player selected. EXIT" && exit 1
|
[[ ${OUTPUT} == "" ]] && espeak "No player selected. EXIT" && exit 1
|
||||||
else
|
else
|
||||||
|
|
139
command.sh
139
command.sh
|
@ -12,6 +12,13 @@ TS=$(date -u +%s%N | cut -b1-13)
|
||||||
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
#~ mkdir -p ~/.zen/tmp/${MOATS}
|
#~ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
|
|
||||||
|
### CHECK and CORRECT .current
|
||||||
|
CURRENT=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
|
||||||
|
[[ ${CURRENT} == "" ]] \
|
||||||
|
&& lastplayer=$(ls -t ~/.zen/game/players 2>/dev/null | grep "@" | head -n 1) \
|
||||||
|
&& [[ ${lastplayer} ]] \
|
||||||
|
&& ln -s ~/.zen/game/players/${lastplayer} ~/.zen/game/players/.current && CURRENT=${lastplayer}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
_ ____ _____ ____ ___ ____ ___ ____ _____ ___ _ _ _____
|
_ ____ _____ ____ ___ ____ ___ ____ _____ ___ _ _ _____
|
||||||
/ \ / ___|_ _| _ \ / _ \| _ \ / _ \| _ \_ _| / _ \| \ | | ____|
|
/ \ / ___|_ _| _ \ / _ \| _ \ / _ \| _ \_ _| / _ \| \ | | ____|
|
||||||
|
@ -19,14 +26,11 @@ echo '
|
||||||
/ ___ \ ___) || | | _ <| |_| | __/| |_| | _ < | | | |_| | |\ | |___
|
/ ___ \ ___) || | | _ <| |_| | __/| |_| | _ < | | | |_| | |\ | |___
|
||||||
/_/ \_\____/ |_| |_| \_\\___/|_| \___/|_| \_\|_| \___/|_| \_|_____|
|
/_/ \_\____/ |_| |_| \_\\___/|_| \___/|_| \_\|_| \___/|_| \_|_____|
|
||||||
|
|
||||||
Ambassade numérique pair à pair sur IPFS.
|
Astroport is a Web3 engine running UPlanet hosting TW5s on IPFS, and more...
|
||||||
|
|
||||||
@@@@@@@@@@@@@@@@@@
|
@@@@@@@@@@@@@@@@@@
|
||||||
ASTROPORT
|
ADMIN = '${CURRENT}'
|
||||||
VISA : MadeInZion
|
|
||||||
@@@@@@@@@@@@@@@@@@'
|
@@@@@@@@@@@@@@@@@@'
|
||||||
CURRENT=$(cat ~/.zen/game/players/.current/.player)
|
|
||||||
echo "CURRENT = ${CURRENT}"
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
## VERIFY SOFTWARE DEPENDENCIES
|
## VERIFY SOFTWARE DEPENDENCIES
|
||||||
|
@ -37,66 +41,75 @@ YOU=$(myIpfsApi);
|
||||||
echo 'PRESS ENTER... '; read
|
echo 'PRESS ENTER... '; read
|
||||||
|
|
||||||
## CREATE AND OR CONNECT USER
|
## CREATE AND OR CONNECT USER
|
||||||
PS3='Astronaute connectez votre PLAYER ___ '
|
PS3=' ____ Select ___ ? '
|
||||||
players=( "PRINT ZENCARD" "CREATE PLAYER" "IMPORT PLAYER" $(ls ~/.zen/game/players | grep "@" 2>/dev/null))
|
players=( "CREATE PLAYER" "PRINT QRCARD" $(ls ~/.zen/game/players | grep "@" 2>/dev/null))
|
||||||
## MULTIPLAYER
|
## MULTIPLAYER
|
||||||
|
|
||||||
|
select fav in "${players[@]}"; do
|
||||||
|
case $fav in
|
||||||
|
"PRINT QRCARD")
|
||||||
|
## DIRECT VISA.print.sh
|
||||||
|
echo "'Email ?'"
|
||||||
|
read EMAIL
|
||||||
|
[[ ${EMAIL} == "" ]] && EMAIL=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
|
||||||
|
echo "'Secret 1 ?'"
|
||||||
|
read SALT
|
||||||
|
[[ ${SALT} == "" ]] && SALT=$(${MY_PATH}/tools/diceware.sh 4 | xargs)
|
||||||
|
echo "'Secret 2?'"
|
||||||
|
read PEPPER
|
||||||
|
[[ ${PEPPER} == "" ]] && PEPPER=$(${MY_PATH}/tools/diceware.sh 4 | xargs)
|
||||||
|
echo "'PIN ?'"
|
||||||
|
read PASS
|
||||||
|
echo "${MY_PATH}/tools/VISA.print.sh" "${EMAIL}" "'"$SALT"'" "'"$PEPPER"'" "'"$PASS"'"
|
||||||
|
${MY_PATH}/tools/VISA.print.sh "${EMAIL}" "$SALT" "$PEPPER" "$PASS" ##
|
||||||
|
|
||||||
select fav in "${players[@]}"; do
|
[[ ${EMAIL} != "" && ${EMAIL} != $(cat ~/.zen/game/players/.current/.player 2>/dev/null) ]] && rm -Rf ~/.zen/game/players/${EMAIL}/
|
||||||
case $fav in
|
|
||||||
"PRINT ZENCARD")
|
|
||||||
## DIRECT VISA.print.sh
|
|
||||||
echo "'Email ?'"
|
|
||||||
read EMAIL
|
|
||||||
[[ ${EMAIL} == "" ]] && EMAIL=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
|
|
||||||
echo "'Secret 1 ?'"
|
|
||||||
read SALT
|
|
||||||
[[ ${SALT} == "" ]] && SALT=$(${MY_PATH}/tools/diceware.sh 4 | xargs)
|
|
||||||
echo "'Secret 2?'"
|
|
||||||
read PEPPER
|
|
||||||
[[ ${PEPPER} == "" ]] && PEPPER=$(${MY_PATH}/tools/diceware.sh 4 | xargs)
|
|
||||||
echo "'PIN ?'"
|
|
||||||
read PASS
|
|
||||||
echo "${MY_PATH}/tools/VISA.print.sh" "${EMAIL}" "'"$SALT"'" "'"$PEPPER"'" "'"$PASS"'"
|
|
||||||
${MY_PATH}/tools/VISA.print.sh "${EMAIL}" "$SALT" "$PEPPER" "$PASS" ##
|
|
||||||
|
|
||||||
[[ ${EMAIL} != "" && ${EMAIL} != $(cat ~/.zen/game/players/.current/.player 2>/dev/null) ]] && rm -Rf ~/.zen/game/players/${EMAIL}/
|
exit
|
||||||
|
;;
|
||||||
exit
|
"CREATE PLAYER")
|
||||||
;;
|
echo "'Email ?'"
|
||||||
"CREATE PLAYER")
|
read EMAIL
|
||||||
${MY_PATH}/RUNTIME/VISA.new.sh
|
[[ ${EMAIL} == "" ]] && break
|
||||||
fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO
|
echo "'Secret 1'"
|
||||||
echo "Astronaute $fav bienvenue sur UPlanet. Set TW GPS position..."
|
read PPASS
|
||||||
exit
|
[[ ${PPASS} == "" ]] \
|
||||||
;;
|
&& PPASS=$(${MY_PATH}/tools/diceware.sh $(${MY_PATH}/tools/getcoins_from_gratitude_box.sh) | xargs)
|
||||||
"IMPORT PLAYER")
|
echo "'Secret 2'"
|
||||||
echo "'Secret 1'"
|
read NPASS
|
||||||
read SALT
|
[[ ${NPASS} == "" ]] \
|
||||||
echo "'Secret 2'"
|
&& NPASS=$(${MY_PATH}/tools/diceware.sh $(${MY_PATH}/tools/getcoins_from_gratitude_box.sh) | xargs)
|
||||||
read PEPPER
|
echo "'Latitude ?'"
|
||||||
echo "'Adresse Email'"
|
read LAT
|
||||||
read EMAIL
|
[[ ${LAT} == "" ]] && LAT="0.00"
|
||||||
${MY_PATH}/RUNTIME/VISA.new.sh "$SALT" "$PEPPER" "$EMAIL"
|
echo "'Longitude ?'"
|
||||||
fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO
|
read LON
|
||||||
echo "Astronaute $fav WELCOME"
|
[[ ${LON} == "" ]] && LON="0.00"
|
||||||
exit
|
echo "${MY_PATH}/RUNTIME/VISA.new.sh" "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "_URL_" "${LAT}" "${LON}"
|
||||||
;;
|
${MY_PATH}/RUNTIME/VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "_URL_" "${LAT}" "${LON}"
|
||||||
"")
|
fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO
|
||||||
echo "Choix obligatoire. exit"
|
echo "Astronaute $fav bienvenue sur UPlanet..."
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
*) echo "Salut $fav"
|
"")
|
||||||
break
|
echo "Choix obligatoire. exit"
|
||||||
;;
|
exit
|
||||||
esac
|
;;
|
||||||
done
|
*) echo "Salut $fav"
|
||||||
PLAYER=$fav
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
PLAYER=$fav
|
||||||
|
|
||||||
|
####### NO CURRENT ? PLAYER = .current
|
||||||
|
[[ ! -e ~/.zen/game/players/.current ]] \
|
||||||
|
&& rm ~/.zen/game/players/.current 2>/dev/null \
|
||||||
|
&& ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
||||||
|
|
||||||
pass=$(cat ~/.zen/game/players/$PLAYER/.pass 2>/dev/null)
|
pass=$(cat ~/.zen/game/players/$PLAYER/.pass 2>/dev/null)
|
||||||
########################################## DEVEL
|
########################################## DEVEL
|
||||||
echo "Saisissez votre PASS -- UPGRADE CRYPTO FREELY -- $pass" && read PASS
|
echo "Saisissez votre PASS -- FREE MODE -- $pass" && read PASS
|
||||||
|
|
||||||
## DECODE CURRENT PLAYER CRYPTO
|
## DECODE CURRENT PLAYER CRYPTO
|
||||||
# echo "********* DECODAGE SecuredSocketLayer *********"
|
# echo "********* DECODAGE SecuredSocketLayer *********"
|
||||||
|
@ -105,11 +118,11 @@ echo "Saisissez votre PASS -- UPGRADE CRYPTO FREELY -- $pass" && read PASS
|
||||||
[[ $PASS != $pass ]] && echo "ERROR. MAUVAIS PASS. EXIT" && exit 1
|
[[ $PASS != $pass ]] && echo "ERROR. MAUVAIS PASS. EXIT" && exit 1
|
||||||
|
|
||||||
## CURRENT CHANGE ?
|
## CURRENT CHANGE ?
|
||||||
[[ ${CURRENT} != ${PLAYER} ]] \
|
#~ [[ ${CURRENT} != ${PLAYER} ]] \
|
||||||
&& echo "BECOME ADMIN ? hit ENTER for NO, write something for YES" && read ADM \
|
#~ && echo "BECOME ADMIN ? hit ENTER for NO, write something for YES" && read ADM \
|
||||||
&& [[ ${ADM} != "" ]] \
|
#~ && [[ ${ADM} != "" ]] \
|
||||||
&& rm -f ~/.zen/game/players/.current \
|
#~ && rm -f ~/.zen/game/players/.current \
|
||||||
&& ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
#~ && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
||||||
|
|
||||||
echo "________LOGIN OK____________";
|
echo "________LOGIN OK____________";
|
||||||
echo
|
echo
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 786 KiB |
|
@ -44,7 +44,7 @@ echo "#############################################"
|
||||||
echo "######### INSTALL BASE & PYTHON3 PACKAGE ####"
|
echo "######### INSTALL BASE & PYTHON3 PACKAGE ####"
|
||||||
echo "#############################################"
|
echo "#############################################"
|
||||||
|
|
||||||
for i in git make cmake docker-compose fail2ban npm shellcheck socat netcat-traditional ncdu chromium miller inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli python3-aiohttp mpack; do
|
for i in git make cmake docker-compose fail2ban npm shellcheck multitail netcat-traditional ncdu chromium miller inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli python3-aiohttp mpack; do
|
||||||
if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||||
echo ">>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
|
echo ">>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
|
||||||
sudo apt install -y $i
|
sudo apt install -y $i
|
||||||
|
@ -116,7 +116,7 @@ fi
|
||||||
echo "#####################################"
|
echo "#####################################"
|
||||||
echo "## CRYPTO LIB & PYTHON TOOLS"
|
echo "## CRYPTO LIB & PYTHON TOOLS"
|
||||||
export PATH=$HOME/.local/bin:$PATH
|
export PATH=$HOME/.local/bin:$PATH
|
||||||
for i in pip setuptools wheel cryptography Ed25519 base58 google duniterpy silkaj pynacl pgpy pynentry SecureBytes amzqr pdf2docx pyppeteer; do
|
for i in pip setuptools wheel amzqr pdf2docx pyppeteer cryptography Ed25519 base58 google duniterpy pynacl pgpy pynentry SecureBytes; do
|
||||||
echo ">>> Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
|
echo ">>> Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
|
||||||
python -m pip install --break-system-packages -U $i
|
python -m pip install --break-system-packages -U $i
|
||||||
[[ $? != 0 ]] && echo "INSTALL $i FAILED." && echo "python -m pip install -U $i FAILED." >> /tmp/install.errors.log && continue
|
[[ $? != 0 ]] && echo "INSTALL $i FAILED." && echo "python -m pip install -U $i FAILED." >> /tmp/install.errors.log && continue
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/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
|
||||||
|
|
||||||
|
echo '
|
||||||
|
############################################################### ipfs
|
||||||
|
## __ __ ___ ____ ____ ___ _ _____ ____ ____ _____ ____
|
||||||
|
## | \/ |_ _/ ___| _ \ / _ \ | | | ____| _ \ / ___| ____| _ \
|
||||||
|
## | |\/| || | | | |_) | | | | | | | _| | | | | | _| _| | |_) |
|
||||||
|
## | | | || | |___| _ <| |_| | | |___| |___| |_| | |_| | |___| _ <
|
||||||
|
## |_| |_|___\____|_| \_\\___/ |_____|_____|____/ \____|_____|_| \_\ me
|
||||||
|
'
|
||||||
|
|
||||||
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
||||||
|
|
||||||
|
OLD=$(cat ${MY_PATH}/.chain)
|
||||||
|
[[ -z ${OLD} ]] \
|
||||||
|
&& GENESYS=$(ipfs add -rwq ${MY_PATH}/* | tail -n 1) \
|
||||||
|
&& echo ${GENESYS} > ${MY_PATH}/.chain \
|
||||||
|
&& echo "### - (^‿‿^) - " >> ${MY_PATH}/README.md \
|
||||||
|
&& echo /ipfs/${GENESYS} >> ${MY_PATH}/README.md \
|
||||||
|
&& echo "CHAIN BLOC ZERO : ${GENESYS}" \
|
||||||
|
|
||||||
|
## TIMESTAMP CHAIN SHIFTING
|
||||||
|
cp ${MY_PATH}/.chain \
|
||||||
|
${MY_PATH}/.chain.$(cat ${MY_PATH}/.moats)
|
||||||
|
|
||||||
|
IPFSME=$(ipfs add -rwHq ${MY_PATH}/* | tail -n 1)
|
||||||
|
|
||||||
|
[[ ${IPFSME} == ${OLD} ]] && echo "No change." && exit 0
|
||||||
|
|
||||||
|
## CHAIN UPGRADE
|
||||||
|
echo ${IPFSME} > ${MY_PATH}/.chain
|
||||||
|
echo ${MOATS} > ${MY_PATH}/.moats
|
||||||
|
|
||||||
|
## README UPGRADE
|
||||||
|
sed -i "s~${OLD}~${IPFSME}~g" ${MY_PATH}/README.md
|
||||||
|
|
||||||
|
## AUTO GIT
|
||||||
|
echo '# ENTER COMMENT FOR YOUR COMMIT :'
|
||||||
|
git add .
|
||||||
|
read COMMENT \
|
||||||
|
&& git commit -m "$COMMENT : https://ipfs.copylaradio.com/ipfs/${IPFSME}" \
|
||||||
|
&& git push
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#############################################################
|
||||||
|
## DISPLAY SERVER LOG FILES
|
||||||
|
#############################################################
|
||||||
|
## 1234 API ~/.zen/tmp/12345.log
|
||||||
|
############################################################
|
||||||
|
tail -f ~/.zen/tmp/12345.log -n 200
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#############################################################
|
||||||
|
## DISPLAY SERVER LOG FILES
|
||||||
|
#############################################################
|
||||||
|
## 12345 API ~/.zen/tmp/_12345.log
|
||||||
|
#############################################################
|
||||||
|
tail -f ~/.zen/tmp/_12345.log -n 200
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#############################################################
|
||||||
|
## DISPLAY SERVER LOG FILES
|
||||||
|
#############################################################
|
||||||
|
## 1234 API ~/.zen/tmp/12345.log
|
||||||
|
## 12345 API ~/.zen/tmp/_12345.log
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
[[ ! $(which multitail) ]] && sudo apt install multitail
|
||||||
|
|
||||||
|
multitail -s 2 -I ~/.zen/tmp/12345.log ~/.zen/tmp/_12345.log
|
8
start.sh
8
start.sh
|
@ -11,10 +11,12 @@ echo "ASTROPORT.ONE START
|
||||||
@@@@@@@@@@@@@@@@@@
|
@@@@@@@@@@@@@@@@@@
|
||||||
$USER@$HOSTNAME
|
$USER@$HOSTNAME
|
||||||
@@@@@@@@@@@@@@@@@@"
|
@@@@@@@@@@@@@@@@@@"
|
||||||
|
RUNLEVEL=$1
|
||||||
|
[[ ! $RUNLEVEL ]] && RUNLEVEL="ON"
|
||||||
|
|
||||||
echo "cron_VRFY.sh ON"
|
echo "cron_VRFY.sh $RUNLEVEL"
|
||||||
###################################################
|
###################################################
|
||||||
${MY_PATH}/tools/cron_VRFY.sh ON
|
${MY_PATH}/tools/cron_VRFY.sh $RUNLEVEL
|
||||||
echo "ipfs start"
|
echo "ipfs start"
|
||||||
sudo systemctl start ipfs
|
sudo systemctl start ipfs
|
||||||
sleep 5
|
sleep 5
|
||||||
|
@ -23,6 +25,8 @@ sudo systemctl start astroport
|
||||||
echo "g1billet start"
|
echo "g1billet start"
|
||||||
sudo systemctl start g1billet
|
sudo systemctl start g1billet
|
||||||
|
|
||||||
|
########################################## NO systemctl mode ########
|
||||||
|
### OLD METHOD USING SELF PID
|
||||||
#~ echo "(RE)STARTING 12345.sh"
|
#~ echo "(RE)STARTING 12345.sh"
|
||||||
#~ ###################################################
|
#~ ###################################################
|
||||||
#~ [[ -s ~/.zen/.pid ]] && kill -9 $(cat ~/.zen/.pid) \
|
#~ [[ -s ~/.zen/.pid ]] && kill -9 $(cat ~/.zen/.pid) \
|
||||||
|
|
|
@ -160,6 +160,7 @@ iframe {
|
||||||
| <a href="INFO.png" target="aframe" title="INFO"> _<img width=20 src="http://127.0.0.1:8080/ipfs/QmaeRPu6yYZ8iRACgkd4DtD1V1H8NdXT8yf5Gfxf17c9pm" ></a> |
|
| <a href="INFO.png" target="aframe" title="INFO"> _<img width=20 src="http://127.0.0.1:8080/ipfs/QmaeRPu6yYZ8iRACgkd4DtD1V1H8NdXT8yf5Gfxf17c9pm" ></a> |
|
||||||
<a href="https://transiscope.gogocarto.fr/map#/carte/@_LAT_,_LON_,12z?cat=all" target="aframe" title="- Transiscope - Le portail des alternatives"><img width=20 src="http://127.0.0.1:8080/ipfs/QmbM7PH7untyyZRYHTT1Y27rdaYNWUcBF1YAeXbFMW7GX8" ></a> |
|
<a href="https://transiscope.gogocarto.fr/map#/carte/@_LAT_,_LON_,12z?cat=all" target="aframe" title="- Transiscope - Le portail des alternatives"><img width=20 src="http://127.0.0.1:8080/ipfs/QmbM7PH7untyyZRYHTT1Y27rdaYNWUcBF1YAeXbFMW7GX8" ></a> |
|
||||||
<a href="_CESIUMIPFS_/#/app/wot/tx/_SECTORG1PUB_/" target="aframe" title="ZEN BANK ACCOUNT"><img width=20 src="http://127.0.0.1:8080/ipfs/QmQd7rNi13eHHWaEfqKLHxmY6V5HWakGsXNZH8QVoGQvNt" ></a> |
|
<a href="_CESIUMIPFS_/#/app/wot/tx/_SECTORG1PUB_/" target="aframe" title="ZEN BANK ACCOUNT"><img width=20 src="http://127.0.0.1:8080/ipfs/QmQd7rNi13eHHWaEfqKLHxmY6V5HWakGsXNZH8QVoGQvNt" ></a> |
|
||||||
|
<a href="http://127.0.0.1:8080/ipns/_ZONENS_/TWz" target="aframe" title="SOURCE TWs"><img width=20 src="http://127.0.0.1:8080/ipfs/QmaLzMFUR7QfKvxp63KkHkPco92maRSiNvPEgMoKNxM7Q8" ></a> |
|
||||||
<a href="./TW" target="aframe" title="LOCAL TW NEWS"> _<img width=20 src="http://127.0.0.1:8080/ipfs/QmZX2Titv5L488iNVHwbRNeuZh2PJULSCfxoSgF4Qzv547" ></a> |
|
<a href="./TW" target="aframe" title="LOCAL TW NEWS"> _<img width=20 src="http://127.0.0.1:8080/ipfs/QmZX2Titv5L488iNVHwbRNeuZh2PJULSCfxoSgF4Qzv547" ></a> |
|
||||||
<!--
|
<!--
|
||||||
<a href="https://minetest.dustlabs.io/?launch" target="aframe" title="- Minetest - Building Blocks on UPlanet - DEV -"><img width=20 src="http://127.0.0.1:8080/ipfs/Qmeaaee1gojMHkos4Quqqw8dwmF4SDP8kTCgAdnJiTeVgJ" ></a> |
|
<a href="https://minetest.dustlabs.io/?launch" target="aframe" title="- Minetest - Building Blocks on UPlanet - DEV -"><img width=20 src="http://127.0.0.1:8080/ipfs/Qmeaaee1gojMHkos4Quqqw8dwmF4SDP8kTCgAdnJiTeVgJ" ></a> |
|
||||||
|
|
|
@ -152,6 +152,7 @@ iframe {
|
||||||
</div>
|
</div>
|
||||||
<div id="console">
|
<div id="console">
|
||||||
| <a href="_index.p4n.html" target="aframe" title="Local POI"> <img width=20 src="http://127.0.0.1:8080/ipfs/QmNp9pTJJNqz4AA9RLvd3pTDLFhAzqxiFgtUocNuZmsef2" ></a> |
|
| <a href="_index.p4n.html" target="aframe" title="Local POI"> <img width=20 src="http://127.0.0.1:8080/ipfs/QmNp9pTJJNqz4AA9RLvd3pTDLFhAzqxiFgtUocNuZmsef2" ></a> |
|
||||||
|
<a href="_CESIUMIPFS_/#/app/wot/tx/_G1PUB_/" target="aframe" title="UMAP ACCOUNT"><img width=20 src="http://127.0.0.1:8080/ipfs/QmQd7rNi13eHHWaEfqKLHxmY6V5HWakGsXNZH8QVoGQvNt" ></a> |
|
||||||
<a href="http://127.0.0.1:8080/ipns/_ZONENS_/TW" target="aframe" title="LOCAL PLAYERs TW"><img width=20 src="http://127.0.0.1:8080/ipfs/QmaLzMFUR7QfKvxp63KkHkPco92maRSiNvPEgMoKNxM7Q8" ></a> |
|
<a href="http://127.0.0.1:8080/ipns/_ZONENS_/TW" target="aframe" title="LOCAL PLAYERs TW"><img width=20 src="http://127.0.0.1:8080/ipfs/QmaLzMFUR7QfKvxp63KkHkPco92maRSiNvPEgMoKNxM7Q8" ></a> |
|
||||||
<a href="https://minetest.dustlabs.io/?launch" target="aframe" title="Building Blocks UPlanet"><img width=20 src="http://127.0.0.1:8080/ipfs/Qmeaaee1gojMHkos4Quqqw8dwmF4SDP8kTCgAdnJiTeVgJ" ></a> |
|
<a href="https://minetest.dustlabs.io/?launch" target="aframe" title="Building Blocks UPlanet"><img width=20 src="http://127.0.0.1:8080/ipfs/Qmeaaee1gojMHkos4Quqqw8dwmF4SDP8kTCgAdnJiTeVgJ" ></a> |
|
||||||
<a href="http://127.0.0.1:8080/ipns/_UPZONENS_/TW" target="aframe" title="_UPZONE_ TW NEWS" ><img width=20 src="http://127.0.0.1:8080/ipfs/QmZX2Titv5L488iNVHwbRNeuZh2PJULSCfxoSgF4Qzv547" ></a> ♥
|
<a href="http://127.0.0.1:8080/ipns/_UPZONENS_/TW" target="aframe" title="_UPZONE_ TW NEWS" ><img width=20 src="http://127.0.0.1:8080/ipfs/QmZX2Titv5L488iNVHwbRNeuZh2PJULSCfxoSgF4Qzv547" ></a> ♥
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue