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-11-29 16:50:42 +01:00
|
|
|
# ?uplanet=EMAIL&zlat=LAT&zlon=LON&g1pub=PASS
|
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
|
|
|
|
|
|
|
|
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-12 16:46:15 +02:00
|
|
|
## GET & VERIFY PARAM
|
2023-09-01 01:25:25 +02:00
|
|
|
PLAYER=${THAT}
|
2023-11-29 16:50:42 +01:00
|
|
|
[[ ${PLAYER} == "zlat" ]] && PLAYER="@"
|
2023-09-01 01:25:25 +02:00
|
|
|
|
2023-11-29 16:50:42 +01:00
|
|
|
[[ ${AND} != "zlat" ]] \
|
2023-09-08 00:58:49 +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
|
|
|
|
|
|
|
|
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-11-29 16:50:42 +01:00
|
|
|
[[ ${APPNAME} != "zlon" ]] \
|
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-10-10 13:58:58 +02:00
|
|
|
# NOT RECEIVING PASS. WAS USED TO SECURE PLAYER UMAP KEY... (24s sectors strategy apply now)
|
|
|
|
#~ PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7)
|
|
|
|
#~ ## RECEIVED PASS ## CAN BE USED TO SELECT TW TEMPLATE
|
|
|
|
#~ VAL="$(echo ${VAL} | detox --inline)" ## DETOX VAL
|
|
|
|
#~ [[ ${OBJ} == "g1pub" && ${VAL} != "" ]] && PASS=${VAL}
|
|
|
|
#~ echo "PASS for Umap $LAT $LON is $PASS"
|
|
|
|
############################################
|
|
|
|
#### TODO USE THIS PARAMETER TO SELECT TW TEMPLATE
|
2023-10-07 16:54:08 +02:00
|
|
|
|
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-12 16:46:15 +02:00
|
|
|
################################ START WORKING WITH KEYS
|
2023-09-06 14:08:20 +02:00
|
|
|
### SESSION "$LAT" "$LON" KEY
|
2024-02-03 15:18:29 +01:00
|
|
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}"
|
2023-09-04 03:38:48 +02:00
|
|
|
UMAPNS=$(ipfs key import ${MOATS} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv)
|
2023-11-23 19:38:50 +01:00
|
|
|
ipfs key rm ${MOATS} && echo "$LAT" "$LON" "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-12 16:46:15 +02:00
|
|
|
echo "Umap : $REDIR"
|
2023-09-06 00:34:38 +02:00
|
|
|
|
2023-09-01 03:56:55 +02:00
|
|
|
## CHECK WHAT IS EMAIL
|
2023-11-24 19:21:13 +01:00
|
|
|
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-12 16:46:15 +02:00
|
|
|
|
2023-11-23 19:38:50 +01:00
|
|
|
## CHECK if PLAYER exists in SWARM
|
|
|
|
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${EMAIL}) ## export ASTROTW and more
|
|
|
|
echo "export ASTROPORT=${ASTROPORT} ASTROTW=${ASTROTW} ASTROG1=${ASTROG1} ASTROMAIL=${EMAIL} ASTROFEED=${FEEDNS}"
|
2024-01-03 00:29:44 +01:00
|
|
|
|
2023-11-23 19:38:50 +01:00
|
|
|
[[ ${ASTROTW} ]] \
|
2023-12-18 18:13:20 +01:00
|
|
|
&& (echo "$HTTPCORS <meta http-equiv=\"refresh\" content=\"0; url='${ASTROTW}'\" />" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) \
|
2023-11-23 19:38:50 +01:00
|
|
|
&& exit 0
|
2023-09-04 03:38:48 +02:00
|
|
|
|
2023-09-01 03:56:55 +02:00
|
|
|
else
|
2023-09-04 03:38:48 +02:00
|
|
|
|
2024-01-03 00:29:44 +01:00
|
|
|
echo "BAD EMAIL $EMAIL $LAT $LON"
|
|
|
|
echo "$HTTPCORS <html>BAD EMAIL $EMAIL $LAT $LON <a href=${REDIR}> - OPEN UMAP LINK - </a></html>" | 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
|
|
|
|
|
|
|
# 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"
|
2023-09-12 16:46:15 +02:00
|
|
|
echo "# CALCULATING UMAP G1PUB WALLET"
|
2023-11-27 20:40:46 +01:00
|
|
|
${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/_cesium.key "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}"
|
2023-09-04 03:38:48 +02:00
|
|
|
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
|
2023-09-12 16:46:15 +02:00
|
|
|
echo "UMAP G1PUB : ${G1PUB}"
|
2023-09-01 01:25:25 +02:00
|
|
|
|
|
|
|
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
|
2023-10-07 17:03:01 +02:00
|
|
|
|
2024-03-06 14:34:52 +01:00
|
|
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}"
|
2023-09-02 00:08:40 +02:00
|
|
|
UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv )
|
2023-10-07 17:03:01 +02:00
|
|
|
|
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-11-23 19:38:50 +01:00
|
|
|
## ALL TEST PASSED -> CREATE ZENCARD + ASTROID
|
2024-03-12 17:00:51 +01:00
|
|
|
#~ NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES
|
|
|
|
#~ 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)
|
2023-11-23 19:38:50 +01:00
|
|
|
## CREATE ASTRONAUTE TW ON CURRENT ASTROPORT
|
|
|
|
(
|
2024-03-12 17:00:51 +01:00
|
|
|
echo VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}"
|
2023-11-23 19:38:50 +01:00
|
|
|
##### (☉_☉ ) #######
|
2024-03-12 17:00:51 +01:00
|
|
|
${MY_PATH}/../RUNTIME/VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt
|
2023-09-28 14:32:20 +02:00
|
|
|
|
2023-11-23 19:38:50 +01:00
|
|
|
## TO REMOVE : MONITOR
|
2024-01-12 16:40:39 +01:00
|
|
|
${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
|
2023-10-10 19:27:04 +02:00
|
|
|
|
2023-11-23 19:38:50 +01:00
|
|
|
end=`date +%s`
|
|
|
|
echo "(TW REGISTRATION) Operation time was "`expr $end - $start` seconds.
|
|
|
|
) &
|
2023-09-12 16:46:15 +02:00
|
|
|
|
2023-09-06 14:08:20 +02:00
|
|
|
########################################
|
2023-10-10 13:52:01 +02:00
|
|
|
## Calculating TW IPNS ADDRESS
|
2024-03-12 17:00:51 +01:00
|
|
|
TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${PPASS}" "${NPASS}")
|
2023-10-10 13:52:01 +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-10 16:26:52 +02:00
|
|
|
<meta http-equiv=\"refresh\" content=\"100; url='${myIPFS}/ipns/${TWADD}#AstroID'\" />
|
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>
|
2024-03-23 00:56:13 +01:00
|
|
|
${EMAIL} (⌐■_■) AstroID DID<br>
|
2023-10-10 13:52:01 +02:00
|
|
|
<br>
|
2024-03-12 17:00:51 +01:00
|
|
|
<h2>${PPASS}</h2>
|
|
|
|
<h2>${NPASS}</h2>
|
2024-03-23 00:56:13 +01:00
|
|
|
|
|
|
|
<br>By email receive, print then delete your AstroID. Only on paper !
|
|
|
|
<br>Par email. Recevez, imprimez puis supprimer votre AstroID. Seulement sur papier !
|
2023-09-10 00:47:34 +02:00
|
|
|
---
|
2024-03-23 00:56:13 +01:00
|
|
|
<h2><a target=\"_new\" href=\"${myIPFS}/ipns/${TWADD}\">TW</a></h2>
|
2023-09-08 00:51:13 +02:00
|
|
|
<br>in
|
2023-09-07 17:43:14 +02:00
|
|
|
<h1><center><div id='countdown'></div></center></h1>
|
|
|
|
<script>
|
2023-09-10 16:26:52 +02:00
|
|
|
var timeLeft = 90;
|
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
|
|
|
---
|
2024-03-23 00:56:13 +01:00
|
|
|
<br>( ⚆_⚆) CESIUM MOBILE APP<br>
|
|
|
|
<img src='${myIPFSGW}/ipfs/Qma4dDL7G4c7AQGkwYDg34ew8amppXsHuhyXDMKcTKauuD'\>
|
|
|
|
<br>CONSOLE<br>
|
2023-09-03 00:03:05 +02:00
|
|
|
$(cat ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt 2>/dev/null)
|
2024-03-23 00:56:13 +01:00
|
|
|
<br>(☉_☉ ) use above credentials... utilisez les identiants ci-dessus<br>
|
2023-11-26 17:07:48 +01:00
|
|
|
<br><br>${EMAIL} REGISTERED on UPlanet 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
|
|
|
|
2023-11-26 17:07:48 +01:00
|
|
|
(
|
|
|
|
cat ~/.zen/tmp/${MOATS}/http.rep | nc -l -p ${PORT} -q 1 > /dev/null 2>&1
|
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-11-26 17:07:48 +01:00
|
|
|
) &
|
|
|
|
|
2023-09-01 01:25:25 +02:00
|
|
|
exit 0
|