2023-09-01 01:25:25 +02:00
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
################################################################################
## API: UPLANET
## Dedicated to OSM2IPFS & UPlanet Client App
2023-09-02 03:50:54 +02:00
# ?uplanet=EMAIL&salt=LAT&pepper=LON
2023-09-01 01:25:25 +02:00
## https://git.p2p.legal/qo-op/OSM2IPFS
################################################################################
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
. " ${ MY_PATH } /../tools/my.sh "
start = ` date +%s`
echo " 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 "
### transfer variables according to script
QRCODE = $( echo " $THAT " | cut -d ':' -f 1) # G1nkgo compatible
HTTPCORS = " HTTP/1.1 200 OK
Access-Control-Allow-Origin: ${ myASTROPORT }
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET
Server: Astroport.ONE
Content-Type: text/html; charset = UTF-8
"
function urldecode( ) { : " ${ *//+/ } " ; echo -e " ${ _ //%/ \\ x } " ; }
2023-09-03 21:39:28 +02:00
## CHECK FOR NOT PUBLISHING ALREADY (AVOID IPNS CRUSH)
alreadypublishing = $( ps axf --sort= +utime | grep -w 'ipfs name publish --key=' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
if [ [ ${ alreadypublishing } ] ] ; then
echo " $HTTPCORS ERROR - (╥☁╥ ) - IPFS ALREADY PUBLISHING RETRY LATER " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
exit 1
fi
## START MANAGING UPLANET LAT/LON & PLAYER
2023-09-01 01:25:25 +02:00
mkdir -p ~/.zen/tmp/${ MOATS } /
2023-09-02 22:32:59 +02:00
## GET PARAM, with case uplanet="" decalage !
2023-09-01 01:25:25 +02:00
PLAYER = ${ THAT }
2023-09-02 03:50:54 +02:00
[ [ ${ PLAYER } = = "salt" ] ] && PLAYER = "@"
2023-09-01 01:25:25 +02:00
2023-09-08 00:58:49 +02:00
[ [ ${ AND } != "salt" ] ] \
&& ( 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 0
SALT = ${ THIS }
2023-09-01 03:56:55 +02:00
2023-09-02 00:43:20 +02:00
[ [ ${ SALT } = = "0" ] ] && SALT = "0.00"
2023-09-01 03:56:55 +02:00
input_number = ${ SALT }
2023-09-02 02:44:50 +02:00
if [ [ ! $input_number = ~ ^-?[ 0-9] { 1,3} ( \. [ 0-9] { 1,2} ) ?$ ] ] ; then
2023-09-01 03:56:55 +02:00
( echo " $HTTPCORS ERROR - BAD LAT $LAT " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && echo "(☓‿‿☓) Execution time was " ` expr $( date +%s) - $start ` seconds. && exit 0
else
2023-09-03 00:47:24 +02:00
# If input_number has one decimal digit, add a trailing zero
if [ [ ${ input_number } = ~ ^-?[ 0-9] +\. [ 0-9] $ ] ] ; then
input_number = " ${ input_number } 0 "
elif [ [ ${ input_number } = ~ ^-?[ 0-9] +$ ] ] ; then
# If input_number is an integer, add ".00"
input_number = " ${ input_number } .00 "
fi
# Convert input_number to LAT with two decimal digits
LAT = " ${ input_number } "
2023-09-01 03:56:55 +02:00
fi
2023-09-08 00:56:57 +02:00
PEPPER = ${ WHAT }
2023-09-08 00:54:39 +02:00
[ [ ${ APPNAME } != "pepper" ] ] \
2023-09-08 00:51:13 +02:00
&& ( 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 0
2023-09-01 01:25:25 +02:00
2023-09-02 00:43:20 +02:00
[ [ ${ PEPPER } = = "0" ] ] && PEPPER = "0.00"
2023-09-01 03:56:55 +02:00
input_number = ${ PEPPER }
2023-09-02 02:44:50 +02:00
if [ [ ! $input_number = ~ ^-?[ 0-9] { 1,3} ( \. [ 0-9] { 1,2} ) ?$ ] ] ; then
2023-09-01 03:56:55 +02:00
( echo " $HTTPCORS ERROR - BAD LON $LON " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && echo "(☓‿‿☓) Execution time was " ` expr $( date +%s) - $start ` seconds. && exit 0
else
2023-09-03 00:47:24 +02:00
# If input_number has one decimal digit, add a trailing zero
if [ [ ${ input_number } = ~ ^-?[ 0-9] +\. [ 0-9] $ ] ] ; then
input_number = " ${ input_number } 0 "
elif [ [ ${ input_number } = ~ ^-?[ 0-9] +$ ] ] ; then
# If input_number is an integer, add ".00"
input_number = " ${ input_number } .00 "
fi
# Convert input_number to LAT with two decimal digits
LON = " ${ input_number } "
2023-09-01 03:56:55 +02:00
fi
2023-09-01 01:25:25 +02:00
2023-09-01 03:56:55 +02:00
PASS = $( echo " ${ RANDOM } ${ RANDOM } ${ RANDOM } ${ RANDOM } " | tail -c-7)
2023-09-03 00:03:05 +02:00
## RECEIVED PASS
2023-09-04 00:47:04 +02:00
VAL = " $( echo ${ VAL } | detox --inline) " ## DETOX VAL
2023-09-03 00:03:05 +02:00
[ [ ${ OBJ } = = "g1pub" && ${ VAL } != "" ] ] && PASS = ${ VAL }
2023-09-08 00:51:13 +02:00
echo " PASS for Umap $LAT $LON is $PASS "
2023-09-01 03:56:55 +02:00
### CHECK PLAYER EMAIL
EMAIL = " ${ PLAYER ,, } " # lowercase
2023-09-01 01:25:25 +02:00
2023-09-01 20:15:15 +02:00
[ [ ! ${ EMAIL } ] ] && ( echo " $HTTPCORS ERROR - MISSING ${ EMAIL } FOR UPLANET LANDING " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && echo "(☓‿‿☓) Execution time was " ` expr $( date +%s) - $start ` seconds. && exit 0
2023-09-01 01:25:25 +02:00
2023-09-06 14:08:20 +02:00
### SESSION "$LAT" "$LON" KEY
2023-09-04 03:38:48 +02:00
${ MY_PATH } /../tools/keygen -t ipfs -o ~/.zen/tmp/${ MOATS } /_ipns.priv " $LAT " " $LON "
UMAPNS = $( ipfs key import ${ MOATS } -f pem-pkcs8-cleartext ~/.zen/tmp/${ MOATS } /_ipns.priv)
2023-09-08 01:02:23 +02:00
ipfs key rm ${ MOATS } && echo "IPNS key identified"
2023-09-04 03:38:48 +02:00
###
2023-09-06 14:08:20 +02:00
REDIR = " ${ myIPFS } /ipns/ ${ UMAPNS } "
2023-09-08 01:02:23 +02:00
echo " $REDIR "
2023-09-06 00:34:38 +02:00
2023-09-01 03:56:55 +02:00
## CHECK WHAT IS EMAIL
if [ [ " ${ EMAIL } " = ~ ^[ a-zA-Z0-9._%+-] +@[ a-zA-Z0-9.-] +\. [ a-zA-Z] { 2,4} $ ] ] ; then
2023-09-04 03:38:48 +02:00
2023-09-01 03:56:55 +02:00
echo " VALID ${ EMAIL } EMAIL OK "
2023-09-04 03:38:48 +02:00
###################################################
## GET NETWORK CACHE - 42s - UNLEASHED COMON BLOCKCHAIN
echo " ipfs --timeout 42s get -o ~/.zen/tmp/ ${ MOATS } / /ipns/ ${ UMAPNS } / "
ipfs --timeout 42s get -o ~/.zen/tmp/${ MOATS } / /ipns/${ UMAPNS } /
## CHECK if TW is HERE
[ [ -s ~/.zen/tmp/${ MOATS } /TW/${ EMAIL } /index.html ] ] \
2023-09-06 00:34:38 +02:00
&& ( echo " $HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url=' ${ REDIR } /TW/ ${ EMAIL } /index.html'\" /> ' " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) \
2023-09-04 03:38:48 +02:00
&& echo " TW is HERE : $EMAIL " && exit 0
2023-09-01 03:56:55 +02:00
else
2023-09-04 03:38:48 +02:00
2023-09-08 01:11:20 +02:00
echo " BAD EMAIL $LAT $LON - OPEN UMAP IPNS - "
2023-09-04 03:14:39 +02:00
( echo " $HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url=' ${ REDIR } '\" /> ' " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && exit 0
2023-09-04 03:38:48 +02:00
2023-09-01 03:56:55 +02:00
fi
2023-09-01 01:25:25 +02:00
2023-09-08 00:51:13 +02:00
###########################################
### CREATE Umap G1VISA & G1Card
2023-09-02 22:39:18 +02:00
echo " ${ MY_PATH } /../tools/VISA.print.sh " " ${ EMAIL } " "'" $LAT "'" "'" $LON "'" "'" $PASS "'" "'" $PASS "'"
${ MY_PATH } /../tools/VISA.print.sh " ${ EMAIL } " " $LAT " " $LON " " $PASS " " ${ PASS } " ##
2023-09-01 01:25:25 +02:00
[ [ ${ EMAIL } != "" && ${ EMAIL } != $( cat ~/.zen/game/players/.current/.player 2>/dev/null) ] ] && rm -Rf ~/.zen/game/players/${ EMAIL } /
# UPLANET #############################################
## OCCUPY COMMON CRYPTO KEY CYBERSPACE
2023-09-02 22:39:18 +02:00
## SALT="$LAT" PEPPER="$LON"
2023-09-01 01:25:25 +02:00
######################################################
echo " UMAP = $LAT : $LON "
echo "# CALCULATING MAP G1PUB WALLET"
2023-09-04 03:38:48 +02:00
${ MY_PATH } /../tools/keygen -t duniter -o ~/.zen/tmp/${ MOATS } /_cesium.key " $LAT " " $LON "
G1PUB = $( cat ~/.zen/tmp/${ MOATS } /_cesium.key | grep 'pub:' | cut -d ' ' -f 2)
2023-09-01 01:25:25 +02:00
[ [ ! ${ G1PUB } ] ] && ( echo " $HTTPCORS ERROR - (╥☁╥ ) - KEYGEN COMPUTATION DISFUNCTON " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && exit 1
echo " MAPG1PUB : ${ G1PUB } "
echo "# CALCULATING UMAP IPNS ADDRESS"
2023-09-02 00:08:40 +02:00
mkdir -p ~/.zen/tmp/${ MOATS } /${ G1PUB }
2023-09-02 22:39:18 +02:00
mkdir -p ~/.zen/tmp/${ MOATS } /${ LAT } _${ LON }
2023-09-02 22:32:59 +02:00
2023-09-01 01:25:25 +02:00
ipfs key rm ${ G1PUB } > /dev/null 2>& 1
2023-09-02 00:08:40 +02:00
rm ~/.zen/tmp/${ MOATS } /_ipns.priv 2>/dev/null
${ MY_PATH } /../tools/keygen -t ipfs -o ~/.zen/tmp/${ MOATS } /_ipns.priv " $LAT " " $LON "
UMAPNS = $( ipfs key import ${ G1PUB } -f pem-pkcs8-cleartext ~/.zen/tmp/${ MOATS } /_ipns.priv )
2023-09-01 01:25:25 +02:00
[ [ ! ${ UMAPNS } ] ] && ( echo " $HTTPCORS ERROR - (╥☁╥ ) - UMAPNS COMPUTATION DISFUNCTON " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && exit 1
2023-09-06 14:08:20 +02:00
echo " UMAPNS : ${ myIPFS } /ipns/ ${ UMAPNS } "
2023-09-01 01:25:25 +02:00
2023-09-01 20:15:15 +02:00
####################################### Umap.png
2023-09-02 22:39:18 +02:00
## CREATING Umap_${LAT}_${LON}.png
echo " # OSM2IPFS ~/.zen/tmp/ ${ MOATS } /Umap_ ${ LAT } _ ${ LON } .png "
2023-09-04 02:14:41 +02:00
UMAPGEN = " /ipfs/QmRG3ZAiXWvKBccPFbv4eUTZFPMsfXG25PiZQD6N8M8MMM/Umap.html?southWestLat= $LAT &southWestLon= $LON °=0.01 "
USATGEN = " /ipfs/QmRG3ZAiXWvKBccPFbv4eUTZFPMsfXG25PiZQD6N8M8MMM/Usat.html?southWestLat= $LAT &southWestLon= $LON °=0.01 "
2023-09-02 00:08:40 +02:00
echo ${ UMAPGEN }
2023-09-02 16:40:20 +02:00
echo " <meta http-equiv=\"refresh\" content=\"0; url=' ${ UMAPGEN } '\" /> " > ~/.zen/tmp/${ MOATS } /Umap.html
2023-09-04 02:14:41 +02:00
echo " <meta http-equiv=\"refresh\" content=\"0; url=' ${ USATGEN } '\" /> " > ~/.zen/tmp/${ MOATS } /Usat.html
2023-09-01 20:15:15 +02:00
2023-09-04 03:14:39 +02:00
## GET MAP ## TODO find a better crawling method (pb tiles are not fully loaded before screenshot)
2023-09-06 14:08:20 +02:00
chromium --headless --disable-gpu --screenshot= /tmp/Umap.jpg --window-size= 1200x1200 " ${ myIPFS } ${ UMAPGEN } "
chromium --headless --disable-gpu --screenshot= /tmp/Umap.png --window-size= 1200x1200 " ${ myIPFS } ${ UMAPGEN } "
2023-09-04 03:14:39 +02:00
## GET SAT
2023-09-06 14:08:20 +02:00
chromium --headless --disable-gpu --screenshot= /tmp/Usat.jpg --window-size= 1200x1200 " ${ myIPFS } ${ USATGEN } "
chromium --headless --disable-gpu --screenshot= /tmp/Usat.png --window-size= 1200x1200 " ${ myIPFS } ${ USATGEN } "
2023-09-03 01:37:10 +02:00
2023-09-04 03:14:39 +02:00
## CREATE HTML for LAST of U Keys
echo " <img src=G1Card. ${ EMAIL } .jpg \> " > ~/.zen/tmp/${ MOATS } /UCard.html
echo " <img src=G1Visa. ${ EMAIL } .jpg \> " > ~/.zen/tmp/${ MOATS } /UVisa.html
## ADD TO VISITOR LIST : UFriends
2023-09-03 01:37:10 +02:00
echo " ${ EMAIL } " >> ~/.zen/tmp/${ MOATS } /UFriends.txt
2023-09-04 03:14:39 +02:00
## COPYING FILES to PUBLISH from ABROAD
2023-09-02 16:40:20 +02:00
cp /tmp/Umap.jpg ~/.zen/tmp/${ MOATS } /
cp /tmp/Umap.png ~/.zen/tmp/${ MOATS } /
2023-09-04 02:14:41 +02:00
cp /tmp/Usat.jpg ~/.zen/tmp/${ MOATS } /
cp /tmp/Usat.png ~/.zen/tmp/${ MOATS } /
2023-09-02 22:32:59 +02:00
rm -f ~/.zen/tmp/${ MOATS } /G1*.jpg ## DELETE VISA FROM PREVIOUS VISITOR
cp ~/.zen/tmp/${ PASS } ##/G1Visa.${PASS}.jpg ~/.zen/tmp/${MOATS}/G1Visa.${EMAIL}.jpg
cp -f ~/.zen/tmp/${ PASS } ##/${PASS}.jpg ~/.zen/tmp/${MOATS}/G1Card.${EMAIL}.jpg
2023-09-01 02:12:02 +02:00
ls ~/.zen/tmp/${ MOATS } /
2023-09-01 01:25:25 +02:00
2023-09-04 03:38:48 +02:00
### SECURE UMap private keys key with PGP
cat ~/.zen/tmp/${ MOATS } /_ipns.priv | gpg --symmetric --armor --batch --passphrase " $PASS " -o ~/.zen/tmp/${ MOATS } /_ipns.priv.${ EMAIL } .asc
rm ~/.zen/tmp/${ MOATS } /_ipns.priv
cat ~/.zen/tmp/${ MOATS } /_cesium.key | gpg --symmetric --armor --batch --passphrase " $PASS " -o ~/.zen/tmp/${ MOATS } /_cesium.key.${ EMAIL } .asc
rm ~/.zen/tmp/${ MOATS } /_cesium.key
2023-09-04 03:14:39 +02:00
### CREATE A G1VISA FOR PLAYER (NO TW EXISTS YET for EMAIL)
2023-09-03 01:50:06 +02:00
if [ [ ! -f ~/.zen/tmp/${ MOATS } /TW/${ EMAIL } /index.html ] ] ; then
2023-09-06 14:40:57 +02:00
## CHECK IF TW EXISTS FOR THIS EMAIL ALREADY
$( $MY_PATH /../tools/search_for_this_email_in_players.sh ${ EMAIL } ) ## export ASTROTW and more
echo " export ASTROTW= ${ ASTRONAUTENS } ASTROG1= ${ ASTROG1 } ASTROMAIL= ${ EMAIL } ASTROFEED= ${ FEEDNS } "
2023-09-07 17:43:14 +02:00
[ [ ${ ASTROTW } ] ] && ( echo " $HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url='/ipns/ ${ ASTROTW } '\" /> " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && exit 1
2023-09-06 14:40:57 +02:00
## Create a redirection to PLAYER (EMAIL/PASS) TW
2023-09-03 01:50:06 +02:00
mkdir -p ~/.zen/tmp/${ MOATS } /TW/${ EMAIL }
2023-09-04 03:14:39 +02:00
## CREATE TW LINK /ipns/TWADD
2023-09-07 14:26:16 +02:00
NPASS = $( echo " ${ RANDOM } ${ RANDOM } ${ RANDOM } ${ RANDOM } " | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES
${ MY_PATH } /../tools/keygen -t ipfs -o ~/.zen/tmp/${ MOATS } .priv " $EMAIL " " $NPASS "
2023-09-04 03:14:39 +02:00
TWADD = $( ipfs key import ${ MOATS } -f pem-pkcs8-cleartext ~/.zen/tmp/${ MOATS } .priv)
ipfs key rm ${ MOATS } && rm ~/.zen/tmp/${ MOATS } .priv
2023-09-07 14:54:24 +02:00
echo " <meta http-equiv=\"refresh\" content=\"0; url='/ipns/ ${ TWADD } '\" /> " > ~/.zen/tmp/${ MOATS } /TW/${ EMAIL } /index.html
2023-09-06 14:40:57 +02:00
## CREATE OR TRANSFER TW ON CURRENT ASTROPORT
(
${ MY_PATH } /../tools/VISA.new.sh " ${ EMAIL } " " ${ NPASS } " " ${ EMAIL } " "UPlanet" " /ipns/ ${ UMAPNS } " " ${ LAT } " " ${ LON } " >> ~/.zen/tmp/email.${ EMAIL } .${ MOATS } .txt
${ MY_PATH } /../tools/mailjet.sh " ${ EMAIL } " ~/.zen/tmp/email.${ EMAIL } .${ MOATS } .txt ## Send VISA.new log to EMAIL
) &
2023-09-03 00:47:24 +02:00
fi
2023-09-03 01:33:16 +02:00
## MAKE A MESSAGE
echo " <html>
2023-09-03 01:24:42 +02:00
<head>
<title>[ Astroport] $LAT $LON WELCOME ${ EMAIL } </title>
2023-09-04 00:01:27 +02:00
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f0f0;
padding: 20px;
}
h1 {
color: #0077cc;
}
h2 {
color: #333;
}
img {
cursor: pointer;
}
</style>
2023-09-08 01:22:41 +02:00
</head><body>
<button id = 'printButton' >Print</button>
2023-09-08 00:51:13 +02:00
<h1>U U Planet ID registration : $LAT /$LON </h1>
2023-09-04 13:04:03 +02:00
<h2>${ EMAIL } </h2>
2023-09-04 02:14:41 +02:00
<br> <img width = '300' height = '300' src = 'Umap.jpg' alt = 'UPlanet map Image' \> <img width = '300' height = '300' src = 'Usat.jpg' alt = 'UPlanet sat Image' \>
2023-09-04 13:04:03 +02:00
<br> <a href = 'Umap.html' >MAP</a> | <a href = 'Usat.html' >SAT</a>
2023-09-08 00:51:13 +02:00
<br> UMap Key Drive <br>
2023-09-06 14:08:20 +02:00
<a target = localhost href = http://ipfs.localhost:8080/ipns/${ UMAPNS } >LOCAL</a> | <a target = localhost href = ${ myIPFS } /ipns/${ UMAPNS } >GLOBAL</a>
2023-09-06 01:09:15 +02:00
2023-09-04 13:04:03 +02:00
<h2>Umap Visa</h2>
2023-09-04 03:45:23 +02:00
<br> <img src = G1Visa.${ EMAIL } .jpg alt = 'Umap G1Visa' \>
2023-09-04 13:04:03 +02:00
<h2>Umap Card</h2>
2023-09-04 03:45:23 +02:00
<br> <img src = G1Card.${ EMAIL } .jpg alt = 'Umap G1Card' \>
2023-09-03 01:57:25 +02:00
<br>
2023-09-04 00:01:27 +02:00
<script>
function printPage( ) {
window.print( ) ;
}
document.getElementById( 'printButton' ) .addEventListener( 'click' , printPage) ;
</script>
2023-09-03 21:25:48 +02:00
<h2>See <a href = './TW' >TW' s</a> here</h2>
2023-09-03 01:33:16 +02:00
2023-09-04 12:12:35 +02:00
<br> Can you <a href = './_ipns.priv.${EMAIL}.asc' >decode this key</a>? Want to know how to use a private key in a browser? <a href = 'mailto:support@qo-op.com' >Contact us</a>. Let' s enhance UPLANET.sh together
2023-09-03 01:24:42 +02:00
<br><br>ASTROPORT REGISTERED Crypto Commons : $LAT $LON : ${ MOATS } : $( date)
2023-09-03 01:50:06 +02:00
</body></html>" > ~/.zen/tmp/ ${ MOATS } /MESSAGE.html
2023-09-03 01:24:42 +02:00
2023-09-04 12:12:35 +02:00
## HERE YOU PLUG INDEX
# echo "BOO" > ~/.zen/tmp/${MOATS}/index.html
## WHO WILL BE THE G1 WINNER OF THE AREA
# SHOW G1 STATION WALLETS
2023-09-01 20:15:15 +02:00
## TAKING CARE OF THE CHAIN
########################################
IPFSROOT = $( ipfs add -rwHq ~/.zen/tmp/${ MOATS } /* | tail -n 1)
########################################
2023-09-02 00:08:40 +02:00
ZCHAIN = $( cat ~/.zen/tmp/${ MOATS } /${ G1PUB } /_chain 2>/dev/null)
ZMOATS = $( cat ~/.zen/tmp/${ MOATS } /${ G1PUB } /_moats 2>/dev/null)
2023-09-02 02:52:36 +02:00
[ [ ${ ZCHAIN } && ${ ZMOATS } ] ] \
&& cp ~/.zen/tmp/${ MOATS } /${ G1PUB } /_chain ~/.zen/tmp/${ MOATS } /${ G1PUB } /_chain.${ ZMOATS } \
&& echo "UPDATING MOATS"
## UPDATE HPASS last G1Visa PASS
HPASS = $( echo $PASS | sha512sum | cut -d ' ' -f 1)
2023-09-02 22:32:59 +02:00
echo " ${ HPASS } " > ~/.zen/tmp/${ MOATS } /${ G1PUB } /_${ EMAIL } .HPASS
2023-09-02 02:52:36 +02:00
2023-09-02 00:08:40 +02:00
## DOES CHAIN CHANGED or INIT ?
2023-09-01 20:15:15 +02:00
[ [ ${ ZCHAIN } != ${ IPFSROOT } || ${ ZCHAIN } = = "" ] ] \
2023-09-02 00:08:40 +02:00
&& echo " ${ IPFSROOT } " > ~/.zen/tmp/${ MOATS } /${ G1PUB } /_chain \
&& echo " ${ MOATS } " > ~/.zen/tmp/${ MOATS } /${ G1PUB } /_moats \
&& IPFSROOT = $( ipfs add -rwHq ~/.zen/tmp/${ MOATS } /* | tail -n 1) && echo " ROOT was ${ ZCHAIN } "
2023-09-06 14:08:20 +02:00
########################################
2023-09-03 20:11:54 +02:00
################################################################################
## WRITE INTO 12345 SWARM CACHE LAYER
2023-09-03 21:25:48 +02:00
mkdir -p ~/.zen/tmp/${ IPFSNODEID } /UPLANET/_${ LAT } _${ LON } /_visitors
2023-09-03 20:11:54 +02:00
echo " <meta http-equiv=\"refresh\" content=\"0; url='/ipns/ ${ UMAPNS } '\" /> " > ~/.zen/tmp/${ IPFSNODEID } /UPLANET/_${ LAT } _${ LON } /index.html
2023-09-03 21:25:48 +02:00
echo " ${ EMAIL } : ${ IPFSROOT } : ${ MOATS } " >> ~/.zen/tmp/${ IPFSNODEID } /UPLANET/_${ LAT } _${ LON } /_visitors/${ EMAIL } .log
2023-09-06 14:08:20 +02:00
################################################################################
2023-09-03 20:11:54 +02:00
########################################
2023-09-06 14:08:20 +02:00
2023-09-01 20:15:15 +02:00
########################################
2023-09-08 00:51:13 +02:00
echo " PUBLISHING NEW IPFSROOT : http://ipfs.localhost:8080/ipfs/ ${ IPFSROOT } "
2023-09-01 20:15:15 +02:00
(
ipfs name publish --key= ${ G1PUB } /ipfs/${ IPFSROOT }
end = ` date +%s`
2023-09-04 13:24:49 +02:00
ipfs key rm ${ G1PUB } ## REMOVE IPNS KEY
2023-09-04 03:45:23 +02:00
echo "(IPNS) PUBLISH time was " ` expr $end - $start ` seconds.
2023-09-01 20:15:15 +02:00
) &
2023-09-01 02:12:02 +02:00
2023-09-02 00:08:40 +02:00
## HTTP nc ON PORT RESPONSE
2023-09-01 20:15:15 +02:00
echo " $HTTPCORS
<html>
<head>
2023-09-07 17:43:14 +02:00
<title>[ Astroport] $LAT $LON + ${ EMAIL } </title>
2023-09-08 01:20:18 +02:00
<meta http-equiv= \" refresh\" content = \" 42; url = '${myIPFS}/ipns/${TWADD}' \" />
2023-09-07 17:43:14 +02:00
<style>
#countdown { display: flex; justify-content: center; align-items: center; color: #0e2c4c; font-size: 20px; width: 60px; height: 60px; background-color: #e7d9fc; border-radius: 50%;}
</style>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f0f0;
padding: 20px;
}
h1 {
color: #0077cc;
}
h2 {
color: #333;
}
img {
cursor: pointer;
}
</style>
2023-09-01 20:15:15 +02:00
</head><body>
2023-09-08 00:51:13 +02:00
<h1>UPlanet Registration</h1>
2023-09-08 01:22:41 +02:00
<br><h2>${ EMAIL } <br> your TW PASS is <br></h2>
<h1>${ NPASS } </h1>
<button id = 'printButton' >Print</button>
<script>
function printPage( ) {
window.print( ) ;
}
document.getElementById( 'printButton' ) .addEventListener( 'click' , printPage) ;
</script>
2023-09-07 17:43:14 +02:00
---<br>
2023-09-08 00:51:13 +02:00
TELEPORTATION
<br>in
2023-09-07 17:43:14 +02:00
<h1><center><div id = 'countdown' ></div></center></h1>
<script>
2023-09-08 01:20:18 +02:00
var timeLeft = 42;
2023-09-07 17:43:14 +02:00
var elem = document.getElementById( 'countdown' ) ;
var timerId = setInterval( countdown, 1000) ;
function countdown( ) {
if ( timeLeft = = -1) {
clearTimeout( timerId) ;
doSomething( ) ;
} else {
elem.innerHTML = timeLeft + ' s' ;
timeLeft--;
}
}
</script>
2023-09-03 01:24:42 +02:00
---
2023-09-01 20:15:15 +02:00
<br>
2023-09-07 17:43:14 +02:00
( ⚆_⚆) <br>CONSOLE<br>
2023-09-03 00:03:05 +02:00
$( cat ~/.zen/tmp/email.${ EMAIL } .${ MOATS } .txt 2>/dev/null)
2023-09-07 17:43:14 +02:00
<br>( ☉_☉ ) <br>
2023-09-08 00:51:13 +02:00
<br><br>${ EMAIL } REGISTERED on UMAP : $LAT /$LON : ${ MOATS } : $( date)
2023-09-07 17:43:14 +02:00
</body>
</html>" > ~/.zen/tmp/ ${ MOATS } /http.rep
2023-09-01 01:25:25 +02:00
cat ~/.zen/tmp/${ MOATS } /http.rep | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
2023-09-07 17:43:14 +02:00
2023-09-01 01:25:25 +02:00
end = ` date +%s`
2023-09-06 14:08:20 +02:00
echo "(UPLANET) Operation time was " ` expr $end - $start ` seconds.
2023-09-01 01:25:25 +02:00
exit 0