diff --git a/API/SALT.sh b/API/SALT.sh index 4e8a57c5..7b0d2d80 100755 --- a/API/SALT.sh +++ b/API/SALT.sh @@ -88,7 +88,7 @@ PEPPER=$THIS ######################################## ############################################## -# MESSAGING +# MESSAGING : GET MESSAGE FROM GCHANGE+ ############################################## if [[ $APPNAME == "messaging" ]]; then @@ -137,29 +137,96 @@ PEPPER=$THIS ######################## MESSAGING END ######################################## -# G1PUB WITH NO EMAIL -> Open Gchange Profile & Update TW cache +# G1PUB : REDIRECT TO GCHANGE OR TW + EMAIL = CREATE PLAYER ######################################## - if [[ "$APPNAME" == "g1pub" && "$OBJ" != "email" ]]; then + if [[ "$APPNAME" == "g1pub" ]]; then - [[ ${WHAT} == "astro" ]] && REPLACE="https://$myTUBE/ipns/${ASTRONAUTENS}" \ - || REPLACE="$myGCHANGE/#/app/user/${G1PUB}" - echo ${REPLACE} + if [[ "$OBJ" != "email" ]]; then + ## WITH NO EMAIL -> Open Gchange Profile & Update TW cache + [[ ${WHAT} == "astro" ]] && REPLACE="https://$myTUBE/ipns/${ASTRONAUTENS}" \ + || REPLACE="$myGCHANGE/#/app/user/${G1PUB}" + echo ${REPLACE} - ## REDIRECT TO TW OR GCHANGE PROFILE - sed "s~_TWLINK_~${REPLACE}/~g" ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/coucou/${MOATS}.index.redirect - ## USED BY https://git.p2p.legal/La_Bureautique/zeg1jeux/src/branch/main/lib/Fred.class.php#L81 - echo "url='"${REPLACE}"'" >> ~/.zen/tmp/coucou/${MOATS}.index.redirect + ## REDIRECT TO TW OR GCHANGE PROFILE + sed "s~_TWLINK_~${REPLACE}/~g" ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/coucou/${MOATS}.index.redirect + ## USED BY https://git.p2p.legal/La_Bureautique/zeg1jeux/src/branch/main/lib/Fred.class.php#L81 + echo "url='"${REPLACE}"'" >> ~/.zen/tmp/coucou/${MOATS}.index.redirect + + ### REPONSE=$(echo $myGCHANGE/#/app/user/${G1PUB}/ | ipfs add -q) + ### ipfs name publish --allow-offline --key=${PORT} /ipfs/$REPONSE + ### echo "SESSION ${myIPFS}/ipns/$SESSIONNS " + ( + cat ~/.zen/tmp/coucou/${MOATS}.index.redirect | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 + ${MY_PATH}/../tools/TW.cache.sh ${ASTRONAUTENS} ${MOATS} + ) & + end=`date +%s` + echo $APPNAME" (0‿‿0) ${WHAT} Execution time was "`expr $end - $start` seconds. + exit 0 + + else + + # CREATE PLAYER : ?salt=PHRASE%20UNE&pepper=PHRASE%20DEUX&g1pub=on&email=EMAIL&pseudo=PROFILENAME + # WHAT can contain urlencoded FullURL + EMAIL="${VAL}" + + [[ ! ${EMAIL} ]] && (echo "$HTTPCORS ERROR - MISSING ${EMAIL} FOR ${WHAT} CONTACT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 + + ## CHECK WHAT IS EMAIL + if [[ "${EMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then + echo "VALID EMAIL OK" + else + echo "BAD EMAIL" + (echo "$HTTPCORS KO ${EMAIL} : bad '" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 0 + fi + + ## CREATE PSEUDO FROM + if [[ ! $PSEUDO ]]; then + PSEUDO=$(echo ${EMAIL} | cut -d '@' -f 1) + PSEUDO=${PSEUDO,,}; PSEUDO=${PSEUDO%%[0-9]*}${RANDOM:0:4} + fi + + if [[ ! -d ~/.zen/game/players/${EMAIL} ]]; then + + echo "# ASTRONAUT NEW VISA Create VISA.new.sh in background (~/.zen/tmp/email.${EMAIL}.${MOATS}.txt)" + + ( + startvisa=`date +%s` + [[ "$SALT" == "0" && "$PEPPER" == "0" ]] && SALT="" && PEPPER="" # "0" "0" means random salt pepper + echo "VISA.new : \"$SALT\" \"$PEPPER\" \"${EMAIL}\" \"$PSEUDO\" \"${WHAT}\"" > ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt + ${MY_PATH}/../tools/VISA.new.sh "$SALT" "$PEPPER" "${EMAIL}" "$PSEUDO" "${WHAT}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt + ${MY_PATH}/../tools/mailjet.sh "${EMAIL}" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt ## Send VISA.new log to EMAIL + + end=`date +%s` + dur=`expr $end - $startvisa` + echo ${MOATS}:${G1PUB}:${PLAYER}:VISA:$dur >> ~/.zen/tmp/${IPFSNODEID}/_timings + cat ~/.zen/tmp/${IPFSNODEID}/_timings | tail -n 1 + ) & + + echo "$HTTPCORS + +

ASTRONAUTE $PSEUDO

+
KEY : $SALT:$PEPPER:${EMAIL} +
TW : ${myIPFS}/ipns/${ASTRONAUTENS} +
STATION : ${myIPFS}/ipns/$IPFSNODEID

please wait....
+ export ASTROTW=/ipns/${ASTRONAUTENS} ASTROG1=${G1PUB} ASTROMAIL=${EMAIL} ASTROIPFS=${myIPFS}" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 & + + exit 0 + + else + + # ASTRONAUT EXISTING ${EMAIL} + CHECK=$(cat ~/.zen/game/players/${EMAIL}/secret.june | grep -w "$SALT") + [[ $CHECK ]] && CHECK=$(cat ~/.zen/game/players/${EMAIL}/secret.june | grep -w "$PEPPER") + [[ ! $CHECK ]] && (echo "$HTTPCORS - WARNING - PLAYER ${EMAIL} ALREADY HERE" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 + + fi + + ################################################################################################### + end=`date +%s` + echo " (☓‿‿☓) Execution time was "`expr $end - $start` seconds. + + fi - ### REPONSE=$(echo $myGCHANGE/#/app/user/${G1PUB}/ | ipfs add -q) - ### ipfs name publish --allow-offline --key=${PORT} /ipfs/$REPONSE - ### echo "SESSION ${myIPFS}/ipns/$SESSIONNS " - ( - cat ~/.zen/tmp/coucou/${MOATS}.index.redirect | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 - ${MY_PATH}/../tools/TW.cache.sh ${ASTRONAUTENS} ${MOATS} - ) & - end=`date +%s` - echo $APPNAME" (0‿‿0) ${WHAT} Execution time was "`expr $end - $start` seconds. - exit 0 fi ######################################## @@ -297,73 +364,38 @@ echo "" > ~/.zen/tmp/.ipfsgw.bad.twt # TODO move in 20h12.sh fi +############################################## +# LOGOUT +############################################## + if [[ $APPNAME == "logout" ]]; then + + ## REMOVE PLAYER IPNS KEY FROM STATION + PLAYER=${WHAT} + + if [[ -d ~/.zen/game/players/${PLAYER}/ipfs ]]; then + + ipfs key rm ${G1PUB} > /dev/null 2>&1 + ipfs key rm ${PLAYER} > /dev/null 2>&1 + REP="OK" + + else + + REP="ERROR UNKNOW ${PLAYER}" + + fi + + echo ${REP} + echo "$HTTPCORS ${REP}"| nc -l -p ${PORT} -q 1 > /dev/null 2>&1 & + end=`date +%s` + echo $APPNAME "(☉_☉ ) Execution time was "`expr $end - $start` seconds. + exit 0 + + fi + + ################################################################################################### ################################################################################################### - # API ONE : ?salt=PHRASE%20UNE&pepper=PHRASE%20DEUX&g1pub=on&email=EMAIL&pseudo=PROFILENAME - if [[ ${OBJ} == "email" && "${VAL}" != "" ]]; then - [[ $APPNAME != "g1pub" ]] && (echo "$HTTPCORS ERROR - BAD COMMAND $APPNAME" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 - - # WHAT can contain urlencoded FullURL - EMAIL="${VAL}" - - [[ ! ${EMAIL} ]] && (echo "$HTTPCORS ERROR - MISSING ${EMAIL} FOR ${WHAT} CONTACT" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 - - ## CHECK WHAT IS EMAIL - if [[ "${EMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then - echo "VALID EMAIL OK" - else - echo "BAD EMAIL" - (echo "$HTTPCORS KO ${EMAIL} : bad '" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 0 - fi - - ## CREATE PSEUDO FROM - if [[ ! $PSEUDO ]]; then - PSEUDO=$(echo ${EMAIL} | cut -d '@' -f 1) - PSEUDO=${PSEUDO,,}; PSEUDO=${PSEUDO%%[0-9]*}${RANDOM:0:4} - fi - - if [[ ! -d ~/.zen/game/players/${EMAIL} ]]; then - - echo "# ASTRONAUT NEW VISA Create VISA.new.sh in background (~/.zen/tmp/email.${EMAIL}.${MOATS}.txt)" - - ( - startvisa=`date +%s` - [[ "$SALT" == "0" && "$PEPPER" == "0" ]] && SALT="" && PEPPER="" # "0" "0" means random salt pepper - echo "VISA.new : \"$SALT\" \"$PEPPER\" \"${EMAIL}\" \"$PSEUDO\" \"${WHAT}\"" > ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt - ${MY_PATH}/../tools/VISA.new.sh "$SALT" "$PEPPER" "${EMAIL}" "$PSEUDO" "${WHAT}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt - ${MY_PATH}/../tools/mailjet.sh "${EMAIL}" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt ## Send VISA.new log to EMAIL - - end=`date +%s` - dur=`expr $end - $startvisa` - echo ${MOATS}:${G1PUB}:${PLAYER}:VISA:$dur >> ~/.zen/tmp/${IPFSNODEID}/_timings - cat ~/.zen/tmp/${IPFSNODEID}/_timings | tail -n 1 - ) & - - echo "$HTTPCORS - -

ASTRONAUTE $PSEUDO

-
KEY : $SALT:$PEPPER:${EMAIL} -
TW : ${myIPFS}/ipns/${ASTRONAUTENS} -
STATION : ${myIPFS}/ipns/$IPFSNODEID

please wait....
- export ASTROTW=/ipns/${ASTRONAUTENS} ASTROG1=${G1PUB} ASTROMAIL=${EMAIL} ASTROIPFS=${myIPFS}" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 & - - exit 0 - - else - - # ASTRONAUT EXISTING ${EMAIL} - CHECK=$(cat ~/.zen/game/players/${EMAIL}/secret.june | grep -w "$SALT") - [[ $CHECK ]] && CHECK=$(cat ~/.zen/game/players/${EMAIL}/secret.june | grep -w "$PEPPER") - [[ ! $CHECK ]] && (echo "$HTTPCORS - WARNING - PLAYER ${EMAIL} ALREADY HERE" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 - - fi - - ################################################################################################### - end=`date +%s` - echo " (☓‿‿☓) Execution time was "`expr $end - $start` seconds. - - fi ## RESPONDING @@ -375,3 +407,4 @@ echo "" > ~/.zen/tmp/.ipfsgw.bad.twt # TODO move in 20h12.sh end=`date +%s` echo $type" (J‿‿J) Execution time was "`expr $end - $start` seconds. +exit 0 diff --git a/README.md b/README.md index b60d5519..ad69caff 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,17 @@ GET /?salt=${SALT}&pepper=${PEPPER}&g1pub=${URLENCODEDURL}&email=${PLAYER} | `g1pub` | `string` | **Required**. Your prefered _URL_ | | `email` | `email` | **Required**. Your email one token | +### LOGOUT PLAYER (remove IPNS keys from Station) +```http +GET /?salt=${SALT}&pepper=${PEPPER}&g1pub=${PLAYER} +``` + +| Parameter | Type | Description | +| :-------- | :------- | :-------------------------------- | +| `salt` | `string` | **Required**. Your passphrase one token | +| `pepper` | `string` | **Required**. Your passphrase two token | +| `g1pub` | `string` | **Required**. Your email one token | + ### Lire Messagerie Gchange ```http diff --git a/ajouter_media.sh b/ajouter_media.sh index 422213ea..5366c26b 100755 --- a/ajouter_media.sh +++ b/ajouter_media.sh @@ -45,7 +45,7 @@ CHOICE="$3" players=($(ls ~/.zen/game/players | grep -Ev "localhost" 2>/dev/null)) [[ ${#players[@]} -ge 1 ]] \ -&& espeak "SELECT YOUR PLAYER" && OUTPUT=$(zenity --entry --width 640 --title="=> Astroport" --text="ASTRONAUTE ?" --entry-text=${players[@]}) \ +&& espeak "SELECT YOUR PLAYER" && OUTPUT=$(zenity --entry --width 640 --title="Astroport" --text="ASTRONAUTE" --entry-text="${players[@]}") \ || OUTPUT="${players}" PLAYER=$OUTPUT