2022-10-04 23:10:31 +02:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
################################################################################
2022-11-26 19:36:54 +01:00
## ASTROPORT API SERVER http://${myHOST}:1234
2022-10-30 19:32:56 +01:00
## ATOMIC GET REDIRECT TO ONE SHOT WEB SERVICE THROUGH PORTS
## ASYNCHRONOUS IPFS API
2022-10-22 13:01:46 +02:00
################################################################################
2022-10-04 23:10:31 +02:00
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
ME = " ${ 0 ##*/ } "
MOATS = $( date -u +"%Y%m%d%H%M%S%4N" )
IPFSNODEID = $( cat ~/.ipfs/config | jq -r .Identity.PeerID)
2022-10-22 12:20:29 +02:00
myIP = $( hostname -I | awk '{print $1}' | head -n 1)
2022-12-18 20:45:43 +01:00
isLAN = $( route -n | awk '$1 == "0.0.0.0" {print $2}' | grep -E " /(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1 $)|(^[fF][cCdD])/ " )
2022-11-25 15:29:20 +01:00
2022-12-19 18:26:03 +01:00
myDOMAINName = $( hostname -d 2>/dev/null) && [ -z " $myDOMAINName " ] && myDOMAINName = $( domainname 2>/dev/null) && [ [ " $myDOMAINName " = = "(none)" ] ] && myDOMAINName = "localhost"
2022-12-15 23:06:59 +01:00
myHOSTName = $( hostname | sed 's/\.' ${ myDOMAINName } '$//' )
2022-12-15 22:53:18 +01:00
[ -n " $myDOMAINName " ] && myHOSTName = " ${ myHOSTName } . ${ myDOMAINName } " || myDOMAINName = ${ myHOSTName #*. }
[ -z " $myDOMAINName " ] && myDOMAINName = localhost
myHOST = " astroport. ${ myDOMAINName } "
myIPFS = " http://ipfs. ${ myDOMAINName } :8080 "
myASTROPORT = " http://astroport. ${ myDOMAINName } :1234 "
[ [ ! $isLAN || $USER = = "zen" ] ] && myIPFS = " https://ipfs. ${ myDOMAINName } " && myASTROPORT = " https://astroport. ${ myDOMAINName } " ## WAN STATION
2022-11-21 21:30:58 +01:00
2022-10-22 12:20:29 +02:00
PORT = 12345
2022-10-04 23:10:31 +02:00
2022-11-16 06:11:07 +01:00
YOU = $( ipfs swarm peers >/dev/null 2>& 1 && echo " $USER " || ps auxf --sort= +utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) ; ## $USER running ipfs
2022-10-30 19:32:56 +01:00
LIBRA = $( head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
2022-11-21 21:30:58 +01:00
TUBE = $( head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3)
2022-10-27 15:48:35 +02:00
2022-10-31 02:52:43 +01:00
mkdir -p ~/.zen/tmp/coucou/
2022-10-22 17:08:20 +02:00
2022-10-04 23:10:31 +02:00
## CHECK FOR ANY ALREADY RUNNING nc
2022-10-07 02:16:53 +02:00
ncrunning = $( ps auxf --sort= +utime | grep -w 'nc -l -p 1234' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
2022-12-12 18:41:39 +01:00
[ [ $ncrunning ] ] && echo " ERROR - API Server Already Running - ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&getipns " && exit 1
2022-10-30 19:32:56 +01:00
## NOT RUNNING TWICE
2022-10-31 19:56:24 +01:00
# Some client needs to respect that
2022-10-31 19:30:23 +01:00
HTTPCORS = " HTTP/1.1 200 OK
2022-12-15 22:53:18 +01:00
Access-Control-Allow-Origin: ${ myASTROPORT }
2022-10-31 19:30:23 +01:00
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET
Server: Astroport.ONE
Content-Type: text/html; charset = UTF-8
2022-10-31 19:42:10 +01:00
2022-10-31 19:30:23 +01:00
"
2022-12-04 23:02:09 +01:00
echo " _________________________________________________________ $( date) "
echo " LAUNCHING Astroport API Server - TUBE : $LIBRA - "
2022-10-30 15:44:49 +01:00
echo
2022-12-09 01:21:21 +01:00
echo " GCHANGE ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&g1pub "
echo " OPEN TW ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&g1pub=astro "
echo " GCHANGE MESSAGING ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&messaging "
echo " CREATE SAME PLAYER : ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&g1pub=on&email=totodu56@yopmail.com "
2022-12-08 20:31:04 +01:00
echo
2022-12-09 01:21:21 +01:00
echo " NEW PLAYER : ${ myASTROPORT } /?salt= ${ RANDOM } &pepper= ${ RANDOM } &g1pub=on&email=astro ${ RANDOM } @yopmail.com "
2022-12-01 18:26:21 +01:00
echo
2022-12-09 01:21:21 +01:00
echo " BunkerBOX : ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&g1pub=_URL_&email=totodu56@yopmail.com "
2022-10-30 18:36:16 +01:00
echo
2022-12-09 01:21:21 +01:00
echo " TESTCRAFT ${ myASTROPORT } /?salt=totodu56&pepper=totodu56&testcraft=on&nodeid=12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j&dataid=QmPXhrqQrS1bePKJUPH9cJ2qe4RrNjaJdRXaJzSjxWuvDi "
2022-10-27 16:28:44 +02:00
echo "_________________________________________________________"
2022-10-04 23:10:31 +02:00
function urldecode( ) { : " ${ *//+/ } " ; echo -e " ${ _ //%/ \\ x } " ; }
2022-11-24 19:39:09 +01:00
#############################
########## MAIN ###############
#############################
2022-10-04 23:10:31 +02:00
while true; do
2022-10-30 19:44:25 +01:00
2022-11-24 19:39:09 +01:00
start = ` date +%s`
2022-10-21 20:11:47 +02:00
MOATS = $( date -u +"%Y%m%d%H%M%S%4N" )
2022-11-24 19:39:09 +01:00
# EACH VISITOR RECEIVE COMMAND RESPONSE ON
## RANDOM PORT = RESPONSE SOCKET & IPNS SESSION TOKEN
2022-11-16 06:11:07 +01:00
[ ${ PORT } -le 12345 ] && PORT = $(( PORT+${ RANDOM : 0 : 2 } )) || PORT = $(( PORT-${ RANDOM : 0 : 2 } ))
2022-11-24 19:39:09 +01:00
## RANDOM PORT SWAPPINESS AVOIDING COLLISION
2022-11-21 18:58:03 +01:00
2022-11-24 19:39:09 +01:00
## CHECK PORT IS FREE & KILL OLD ONE
2022-12-06 23:45:15 +01:00
pidportinuse = $( ps axf --sort= +utime | grep -w " nc -l -p ${ PORT } " | grep -v -E 'color=auto|grep' | awk '{gsub(/^ +| +$/,"")} {print $0}' | tail -n 1 | cut -d " " -f 1)
2022-12-06 23:27:27 +01:00
[ [ $pidportinuse ] ] && kill -9 $pidportinuse && echo " KILLING $pidportinuse " && continue
2022-10-21 22:09:13 +02:00
2022-11-24 19:39:09 +01:00
## CHECK 12345 PORT RUNNING (STATION FoF MAP)
2022-11-03 20:11:17 +01:00
maprunning = $( ps auxf --sort= +utime | grep -w '_12345.sh' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
2022-12-12 15:10:02 +01:00
[ [ ! $maprunning ] ] \
2022-12-15 22:53:18 +01:00
&& echo '(ᵔ◡◡ᵔ) LAUNCHING ' ${ myASTROPORT } :'12345 (ᵔ◡◡ᵔ)' \
2022-12-12 15:10:02 +01:00
&& exec $MY_PATH /_12345.sh &
2022-11-02 15:00:01 +01:00
2022-11-24 19:39:09 +01:00
############### ACTIVATE USE ON QUICK IPFS DRIVE
2022-10-30 19:32:56 +01:00
### CREATE IPNS KEY - ACTIVATE WHITH ENOUGH BOOTSTRAP
2022-11-25 14:48:37 +01:00
#~ echo
#~ ipfs key rm ${PORT} > /dev/null 2>&1
#~ SESSIONNS=$(ipfs key gen ${PORT})
2022-12-15 22:53:18 +01:00
#~ echo "IPNS SESSION ${myIPFS}/ipns/$SESSIONNS CREATED"
2022-11-24 19:39:09 +01:00
### # USE IT #
2022-10-30 19:52:17 +01:00
### MIAM=$(echo ${PORT} | ipfs add -q)
2022-11-24 19:39:09 +01:00
### ipfs name publish --allow-offline -t 180s --key=${PORT} /ipfs/$MIAM &
2022-10-30 16:07:26 +01:00
###############
2022-10-30 19:32:56 +01:00
###############
2022-10-30 16:07:26 +01:00
2022-10-30 19:32:56 +01:00
# RESET VARIABLES
2022-11-11 18:22:35 +01:00
SALT = "" ; PEPPER = "" ; APPNAME = ""
2022-10-21 18:18:16 +02:00
2022-10-30 19:32:56 +01:00
############### ############### ############### ############### templates/index.http
2022-11-25 15:29:20 +01:00
# REPLACE myHOST in http response template (fixing next API meeting point)
2022-11-26 19:36:54 +01:00
sed " s~127.0.0.1:12345~ ${ myHOST } : ${ PORT } ~g " $HOME /.zen/Astroport.ONE/templates/index.http > ~/.zen/tmp/coucou/${ MOATS } .myHOST.http
2022-12-09 22:35:32 +01:00
sed -i " s~http://127.0.0.1:1234~ ${ myASTROPORT } ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http
2022-12-15 22:53:18 +01:00
sed -i " s~http://127.0.0.1:8080~ ${ myIPFS } ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http
2022-12-09 22:35:32 +01:00
2022-11-25 15:29:20 +01:00
sed -i " s~:12345~: ${ PORT } ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http
2022-11-24 19:39:09 +01:00
2022-12-15 22:53:18 +01:00
sed -i " s~_SESSIONLNK_~ ${ myIPFS } /ipns/ ${ SESSIONNS } ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http
2022-11-24 19:39:09 +01:00
2022-11-25 15:29:20 +01:00
sed -i " s~_IPFSNODEID_~ ${ IPFSNODEID } ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http ## NODE PUBLISH
sed -i " s~_HOSTNAME_~ $( hostname) ~g " ~/.zen/tmp/coucou/${ MOATS } .myHOST.http ## HOSTNAME
2022-10-30 19:32:56 +01:00
############### ############### ############### ###############
2022-11-22 23:49:46 +01:00
2022-10-24 02:45:49 +02:00
############################################################################
2022-11-25 15:29:20 +01:00
## SERVE LANDING REDIRECT PAGE ~/.zen/tmp/coucou/${MOATS}.myHOST.http on PORT 1234 (LOOP BLOCKING POINT)
2022-10-24 02:45:49 +02:00
############################################################################
2022-11-25 15:29:20 +01:00
REQ = $( cat $HOME /.zen/tmp/coucou/${ MOATS } .myHOST.http | nc -l -p 1234 -q 1) ## # WAIT FOR 1234 PORT CONTACT
2022-11-24 19:39:09 +01:00
2022-11-21 18:58:03 +01:00
URL = $( echo " $REQ " | grep '^GET' | cut -d ' ' -f2 | cut -d '?' -f2)
HOSTP = $( echo " $REQ " | grep '^Host:' | cut -d ' ' -f2 | cut -d '?' -f2)
HOST = $( echo " $HOSTP " | cut -d ':' -f 1)
2022-12-15 17:06:29 +01:00
## TODO APPLY GENERAL isLAN or zen !isLAN CALACULA>TONS
2022-12-15 18:11:45 +01:00
[ [ ! $isLAN || $USER = = "zen" ] ] && myHOST = " $HOSTNAME " && myHOSTPort = " ipfs. $HOSTNAME " && myHTTP = "https://" && myASTROPORT = " https:// $HOSTNAME " ## WAN STATION
2022-12-15 17:06:29 +01:00
2022-10-22 13:01:46 +02:00
############################################################################
2022-12-10 03:26:20 +01:00
[ [ $URL = = "/test" || $URL = = "" ] ] && continue
2022-11-21 18:58:03 +01:00
echo "************************************************************************* "
2022-12-15 22:53:18 +01:00
echo " ASTROPORT 1234 UP & RUNNING.......................... http:// $HOST :1234 PORT "
echo " ${ MOATS } NEXT COMMAND DELIVERY PAGE http:// $HOST : ${ PORT } "
2022-11-21 18:58:03 +01:00
2022-12-06 21:13:20 +01:00
[ [ $XDG_SESSION_TYPE = = 'x11' ] ] && espeak "Ding" >/dev/null 1>& 2
2022-11-15 17:24:07 +01:00
2022-10-31 02:52:43 +01:00
echo "URL" > ~/.zen/tmp/coucou/${ MOATS } .url ## LOGGING URL
2022-11-21 18:58:03 +01:00
2022-10-24 02:45:49 +02:00
############################################################################
2022-10-21 20:11:47 +02:00
start = ` date +%s`
2022-10-26 18:38:37 +02:00
############################################################################
2022-11-24 19:39:09 +01:00
## / CONTACT
2022-10-21 21:50:40 +02:00
if [ [ $URL = = "/" ] ] ; then
2022-12-15 22:53:18 +01:00
echo " / CONTACT : $HOSTP "
2022-11-24 19:39:09 +01:00
echo "___________________________ Preparing default return register.html"
2022-10-31 19:30:23 +01:00
echo " $HTTPCORS " > ~/.zen/tmp/coucou/${ MOATS } .index.redirect ## HTTP 1.1 HEADER + HTML BODY
2022-10-21 22:00:29 +02:00
2022-12-09 22:35:32 +01:00
sed " s~http://127.0.0.1:1234~ ${ myASTROPORT } ~g " $HOME /.zen/Astroport.ONE/templates/register.html >> ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-11-24 19:39:09 +01:00
sed -i " s~_IPFSNODEID_~ ${ IPFSNODEID } ~g " ~/.zen/tmp/coucou/${ MOATS } .index.redirect
sed -i " s~_HOSTNAME_~ $( hostname) ~g " ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-12-15 22:53:18 +01:00
sed -i " s~http://127.0.0.1:8080~ ${ myIPFS } ~g " ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-12-01 18:38:07 +01:00
2022-11-24 19:39:09 +01:00
## Random Background image ;)
sed -i " s~.000.~. $( printf '%03d' $( echo ${ RANDOM } % 18 | bc) ) .~g " ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-11-06 12:13:19 +01:00
2022-10-31 02:52:43 +01:00
cat ~/.zen/tmp/coucou/${ MOATS } .index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
2022-10-22 13:01:46 +02:00
end = ` date +%s`
2022-11-24 19:39:09 +01:00
echo " (‿/‿) ${ myHTTP } $HOSTP / Execution time was " ` expr $end - $start ` seconds.
2022-10-21 22:00:29 +02:00
continue
2022-10-21 21:50:40 +02:00
fi
2022-11-24 19:39:09 +01:00
2022-10-26 18:38:37 +02:00
############################################################################
2022-11-24 19:39:09 +01:00
# URL DECODING
2022-10-26 18:38:37 +02:00
############################################################################
2022-10-04 23:10:31 +02:00
echo "=================================================="
echo " GET RECEPTION : $URL "
arr = ( ${ URL //[=&]/ } )
2022-10-27 16:28:44 +02:00
2022-11-11 18:22:35 +01:00
# CHECK APPNAME
2022-12-01 18:26:21 +01:00
APPNAME = $( urldecode ${ arr [4] } | xargs)
WHAT = $( urldecode ${ arr [5] } | xargs)
2022-10-04 23:10:31 +02:00
2022-12-19 18:26:03 +01:00
OBJ = $( urldecode ${ arr [6] } | xargs)
VAL = $( urldecode ${ arr [7] } | xargs)
2022-10-30 19:32:56 +01:00
########## CHECK GET PARAM NAMES
2022-10-21 13:45:53 +02:00
###################################################################################################
2022-11-24 19:39:09 +01:00
[ [ ${ arr [0] } = = "" || ${ arr [1] } = = "" ] ] && ( echo " $HTTPCORS ERROR - MISSING DATA " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-10-21 13:45:53 +02:00
###################################################################################################
2022-10-22 17:08:20 +02:00
# API ZERO ## Made In Zion & La Bureautique
2022-10-21 13:45:53 +02:00
if [ [ ${ arr [0] } = = "salt" ] ] ; then
2022-12-08 18:56:20 +01:00
[ [ ! $APPNAME ] ] && echo "NO APPNAME - CONTINUE" && continue
2022-11-24 19:39:09 +01:00
############################################################################
2022-12-08 18:56:20 +01:00
# WRITING API # SALT # PEPPER # MAKING THE KEY EXIST #########
2022-10-30 19:32:56 +01:00
################### KEY GEN ###################################
2022-11-11 18:22:35 +01:00
echo " >>>>>>>>>>>>>> Application LaBureautique >><< APPNAME = $APPNAME <<<<<<<<<<<<<<<<<<<< "
2022-10-30 19:32:56 +01:00
2022-11-17 18:51:04 +01:00
SALT = $( urldecode ${ arr [1] } | xargs) ;
2022-10-31 19:30:23 +01:00
[ [ ! $SALT ] ] && ( echo " $HTTPCORS ERROR - SALT MISSING " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-11-24 19:39:09 +01:00
2022-10-26 17:53:37 +02:00
PEPPER = $( urldecode ${ arr [3] } | xargs)
2022-10-31 19:30:23 +01:00
[ [ ! $PEPPER ] ] && ( echo " $HTTPCORS ERROR - PEPPER MISSING " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-11-17 18:51:04 +01:00
2022-10-30 19:32:56 +01:00
## SAVE "salt" "pepper" DEBUG REMOVE OR PASS ENCRYPT FOR SECURITY REASON
2022-12-08 18:56:20 +01:00
echo " PLAYER : \" $SALT \" \" $PEPPER \" : $APPNAME ( $WHAT ) "
2022-10-31 02:52:43 +01:00
echo " \" $SALT \" \" $PEPPER \" " > ~/.zen/tmp/coucou/${ MOATS } .secret.june
2022-10-22 15:47:54 +02:00
2022-10-30 19:32:56 +01:00
# CALCULATING ${MOATS}.secret.key + G1PUB
2022-10-31 02:52:43 +01:00
${ MY_PATH } /tools/keygen -t duniter -o ~/.zen/tmp/coucou/${ MOATS } .secret.key " $SALT " " $PEPPER "
G1PUB = $( cat ~/.zen/tmp/coucou/${ MOATS } .secret.key | grep 'pub:' | cut -d ' ' -f 2)
2022-11-24 19:39:09 +01:00
[ [ ! ${ G1PUB } ] ] && ( echo " $HTTPCORS ERROR - (╥☁╥ ) - KEYGEN COMPUTATION DISFUNCTON " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-10-30 19:32:56 +01:00
echo " G1PUB : ${ G1PUB } "
2022-11-24 19:39:09 +01:00
## CALCULATING ${MOATS}.${G1PUB}.ipns.key ADDRESS
2022-10-30 19:32:56 +01:00
ipfs key rm ${ G1PUB } > /dev/null 2>& 1
2022-10-31 02:52:43 +01:00
rm -f ~/.zen/tmp/coucou/${ MOATS } .${ G1PUB } .ipns.key
${ MY_PATH } /tools/keygen -t ipfs -o ~/.zen/tmp/coucou/${ MOATS } .${ G1PUB } .ipns.key " $SALT " " $PEPPER "
ASTRONAUTENS = $( ipfs key import ${ G1PUB } -f pem-pkcs8-cleartext ~/.zen/tmp/coucou/${ MOATS } .${ G1PUB } .ipns.key )
2022-12-08 18:56:20 +01:00
[ [ ! ${ ASTRONAUTENS } ] ] && ( echo " $HTTPCORS ERROR - (╥☁╥ ) - ASTRONAUTENS COMPUTATION DISFUNCTON " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
echo " TW ADDRESS : ${ myHTTP } $HOSTP /ipns/ ${ ASTRONAUTENS } "
2022-10-27 18:01:04 +02:00
echo
2022-12-04 17:01:18 +01:00
2022-10-30 19:32:56 +01:00
################### KEY GEN ###################################
2022-11-24 19:39:09 +01:00
2022-12-08 18:56:20 +01:00
# Get PLAYER wallet amount
( ## SUB PROCESS
COINS = $( $MY_PATH /tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${ MOATS } .secret.key balance)
echo " +++ WALLET BALANCE _ $COINS (G1) _ "
end = ` date +%s`
echo "G1WALLET (☓‿‿☓) Execution time was " ` expr $end - $start ` seconds.
) &
2022-11-24 19:39:09 +01:00
########################################
########################################
2022-12-08 18:56:20 +01:00
## ARCHIVE TOCTOC ${WHAT}S KEEP LOG (TODO : ERASE)
2022-10-28 13:13:20 +02:00
########################################
2022-10-31 17:22:40 +01:00
mkdir -p ~/.zen/game/players/.toctoc/
ISTHERE = $( ls -t ~/.zen/game/players/.toctoc/*.${ G1PUB } .ipns.key 2>/dev/null | tail -n 1)
2022-10-22 18:42:58 +02:00
TTIME = $( echo $ISTHERE | rev | cut -d '.' -f 4 | cut -d '/' -f 1 | rev)
if [ [ ! $ISTHERE ] ] ; then
2022-12-08 23:19:09 +01:00
echo " ${ APPNAME } 1ST TOCTOC : ${ MOATS } "
2022-10-31 17:22:40 +01:00
cp ~/.zen/tmp/coucou/${ MOATS } .* ~/.zen/game/players/.toctoc/
2022-10-27 18:01:04 +02:00
else ## KEEP 1ST CONTACT ONLY
2022-10-31 02:52:43 +01:00
OLDONE = $( ls -t ~/.zen/tmp/coucou/*.${ G1PUB } .ipns.key | tail -n 1)
2022-10-22 18:42:58 +02:00
DTIME = $( echo $OLDONE | rev | cut -d '.' -f 4 | cut -d '/' -f 1 | rev)
2022-11-05 20:15:02 +01:00
[ [ $DTIME != ${ MOATS } ] ] && rm ~/.zen/tmp/coucou/$DTIME .*
2022-10-22 18:42:58 +02:00
fi
2022-10-27 18:01:04 +02:00
2022-11-24 19:39:09 +01:00
########################################
## APPNAME SELECTION ########################
########################################
2022-12-19 18:26:03 +01:00
##############################################
# PAY
##############################################
if [ [ $APPNAME = = "pay" ] ] ; then
echo " $APPNAME : $WHAT $OBJ $VAL "
echo " $HTTPCORS $( ${ MY_PATH } /tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${ MOATS } .secret.key -a ${ WHAT } -p ${ VAL } -c 'Bro' ) " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
end = ` date +%s`
echo "(G_G ) PAYING Execution time was " ` expr $end - $start ` seconds.
continue
fi
##############################################
# MESSAGING
##############################################
2022-11-17 18:37:11 +01:00
if [ [ $APPNAME = = "messaging" || $APPNAME = = "email" ] ] ; then
2022-11-24 19:39:09 +01:00
( ## & SUB PROCESS
2022-10-30 19:32:56 +01:00
echo " Extracting ${ G1PUB } messages... "
2022-10-31 17:22:40 +01:00
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
2022-10-31 02:52:43 +01:00
${ MY_PATH } /tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${ MOATS } .secret.key read -n 10 -j > ~/.zen/tmp/coucou/messin.${ G1PUB } .json
[ [ ! -s ~/.zen/tmp/coucou/messin.${ G1PUB } .json || $( grep -v -E 'Aucun message à afficher' ~/.zen/tmp/coucou/messin.${ G1PUB } .json) = = "True" ] ] && echo "[]" > ~/.zen/tmp/coucou/messin.${ G1PUB } .json
2022-10-26 20:38:01 +02:00
2022-10-31 17:22:40 +01:00
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
2022-10-31 02:52:43 +01:00
${ MY_PATH } /tools/jaklis/jaklis.py -k ~/.zen/tmp/coucou/${ MOATS } .secret.key read -n 10 -j -o > ~/.zen/tmp/coucou/messout.${ G1PUB } .json
[ [ ! -s ~/.zen/tmp/coucou/messout.${ G1PUB } .json || $( grep -v -E 'Aucun message à afficher' ~/.zen/tmp/coucou/messout.${ G1PUB } .json) = = "True" ] ] && echo "[]" > ~/.zen/tmp/coucou/messout.${ G1PUB } .json
2022-10-22 17:08:20 +02:00
2022-10-31 02:52:43 +01:00
echo " Creating messages In/Out JSON ~/.zen/tmp/coucou/ ${ MOATS } .messaging.json "
echo '[' > ~/.zen/tmp/coucou/${ MOATS } .messaging.json
cat ~/.zen/tmp/coucou/messin.${ G1PUB } .json >> ~/.zen/tmp/coucou/${ MOATS } .messaging.json
echo "," >> ~/.zen/tmp/coucou/${ MOATS } .messaging.json
cat ~/.zen/tmp/coucou/messout.${ G1PUB } .json >> ~/.zen/tmp/coucou/${ MOATS } .messaging.json
echo ']' >> ~/.zen/tmp/coucou/${ MOATS } .messaging.json
2022-10-21 20:11:47 +02:00
2022-10-25 14:50:15 +02:00
## ADDING HTTP/1.1 PROTOCOL HEADER
2022-10-31 19:30:23 +01:00
echo " $HTTPCORS " > ~/.zen/tmp/coucou/${ MOATS } .index.redirect
sed -i "s~text/html~application/json~g" ~/.zen/tmp/coucou/${ MOATS } .index.redirect
cat ~/.zen/tmp/coucou/${ MOATS } .messaging.json >> ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-10-21 20:11:47 +02:00
2022-11-24 19:39:09 +01:00
## SEND REPONSE PROCESS IN BACKGROUD
2022-11-25 15:29:20 +01:00
cat ~/.zen/tmp/coucou/${ MOATS } .index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
2022-12-04 17:01:18 +01:00
#~ ( ## USING IPNS SESSION KEY
2022-11-25 14:48:37 +01:00
#~ REPONSE=$(cat ~/.zen/tmp/coucou/${MOATS}.messaging.json | ipfs add -q)
#~ ipfs name publish --allow-offline --key=${PORT} /ipfs/$REPONSE
#~ echo "SESSION ${myHTTP}$HOSTP/ipns/$SESSIONNS "
#~ ) &
2022-10-30 16:07:26 +01:00
2022-10-31 17:22:40 +01:00
end = ` date +%s`
2022-11-19 18:39:31 +01:00
dur = ` expr $end - $start `
echo ${ MOATS } :${ G1PUB } :${ PLAYER } :${ APPNAME } :$dur >> ~/.zen/tmp/${ IPFSNODEID } /_timings
cat ~/.zen/tmp/${ IPFSNODEID } /_timings | tail -n 1
2022-11-24 19:39:09 +01:00
) & ## & SUB PROCESS
2022-10-31 17:22:40 +01:00
2022-10-30 03:02:59 +01:00
end = ` date +%s`
2022-11-16 22:06:57 +01:00
echo " Messaging launch (☓‿‿☓) Execution time was " ` expr $end - $start ` seconds.
2022-10-30 03:02:59 +01:00
continue
2022-10-21 20:11:47 +02:00
fi
2022-10-27 18:01:04 +02:00
######################## MESSAGING END
2022-10-25 14:50:15 +02:00
2022-10-27 18:01:04 +02:00
########################################
2022-11-24 19:39:09 +01:00
# G1PUB WITH NO EMAIL -> Open Gchange Profile & Update TW cache
2022-10-27 18:01:04 +02:00
########################################
2022-11-11 18:22:35 +01:00
if [ [ " $APPNAME " = = "g1pub" && ${ arr [7] } = = "" ] ] ; then
2022-12-08 18:56:20 +01:00
[ [ ${ WHAT } = = "astro" ] ] && REPLACE = " $LIBRA /ipns/ $ASTRONAUTENS " \
|| REPLACE = " https://www.gchange.fr/#/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
2022-10-30 19:52:17 +01:00
### REPONSE=$(echo https://www.gchange.fr/#/app/user/${G1PUB}/ | ipfs add -q)
### ipfs name publish --allow-offline --key=${PORT} /ipfs/$REPONSE
2022-12-15 22:53:18 +01:00
### echo "SESSION ${myIPFS}/ipns/$SESSIONNS "
2022-11-22 19:13:55 +01:00
(
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 }
) &
2022-10-30 03:02:59 +01:00
end = ` date +%s`
2022-12-08 18:56:20 +01:00
echo $APPNAME " (0‿‿0) ${ WHAT } Execution time was " ` expr $end - $start ` seconds.
2022-10-30 03:02:59 +01:00
continue
2022-10-27 18:01:04 +02:00
fi
2022-10-27 16:13:15 +02:00
########################################
2022-11-24 19:39:09 +01:00
2022-10-30 17:40:51 +01:00
########################################
########################################
2022-10-27 16:13:15 +02:00
#TESTCRAFT=ON nodeid dataid
2022-10-30 17:40:51 +01:00
########################################
2022-10-27 16:13:15 +02:00
########################################
2022-11-11 18:22:35 +01:00
if [ [ " $APPNAME " = = "testcraft" ] ] ; then
2022-11-24 19:39:09 +01:00
( # testcraft & SUB PROCESS
2022-11-16 22:06:57 +01:00
start = ` date +%s`
2022-10-28 13:13:20 +02:00
## RECORD DATA MADE IN BROWSER (JSON)
2022-10-27 13:27:17 +02:00
NODEID = $( urldecode ${ arr [7] } | xargs)
DATAID = $( urldecode ${ arr [9] } | xargs)
2022-12-04 17:01:18 +01:00
## export PLAYER
${ MY_PATH } /tools/TW.cache.sh ${ ASTRONAUTENS } ${ MOATS }
2022-11-05 13:33:49 +01:00
## IS IT INDEX JSON
2022-12-04 17:01:18 +01:00
echo " ${ PLAYER } $APPNAME IS ${ WHAT } "
mkdir -p ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER }
2022-10-28 15:32:44 +02:00
2022-11-11 18:22:35 +01:00
[ [ $WHAT = = "on" ] ] && WHAT = "json" # data mimetype (default "on" = json)
2022-10-30 20:04:32 +01:00
2022-11-05 13:33:49 +01:00
## TODO : modify timeout if isLAN or NOT
2022-11-24 19:39:09 +01:00
[ [ $isLAN ] ] && WAIT = 3 || WAIT = 12
2022-12-04 17:01:18 +01:00
echo " 1ST TRY : ipfs --timeout ${ WAIT } s cat /ipfs/ $DATAID > ~/.zen/tmp/ ${ IPFSNODEID } / ${ APPNAME } / ${ PLAYER } / ${ MOATS } .data. ${ WHAT } "
ipfs --timeout ${ WAIT } s cat /ipfs/$DATAID > ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT }
2022-11-14 20:45:06 +01:00
2022-11-02 17:43:55 +01:00
echo "" > ~/.zen/tmp/.ipfsgw.bad.twt # TODO move in 20h12.sh
2022-11-05 13:33:49 +01:00
2022-12-04 17:01:18 +01:00
if [ [ ! -s ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } ] ] ; then
2022-11-02 17:23:12 +01:00
2022-11-11 18:22:35 +01:00
echo " IPFS TIMEOUT >>> (°▃▃°) $DATAID STILL MISSING GATEWAY BANGING FOR IT (°▃▃°) "
2022-11-24 19:39:09 +01:00
array = ( https://ipfs.copylaradio.com/ipfs/:hash https://ipns.co/:hash https://dweb.link/ipfs/:hash https://ipfs.io/ipfs/:hash https://ipfs.fleek.co/ipfs/:hash https://ipfs.best-practice.se/ipfs/:hash https://gateway.pinata.cloud/ipfs/:hash https://gateway.ipfs.io/ipfs/:hash https://cf-ipfs.com/ipfs/:hash https://cloudflare-ipfs.com/ipfs/:hash)
2022-11-11 18:22:35 +01:00
# size=${#array[@]}; index=$(($RANDOM % $size)); echo ${array[$index]} ## TODO CHOOSE RANDOM
2022-11-02 17:23:12 +01:00
# official ipfs best gateway from https://luke.lol/ipfs.php
2022-11-11 18:22:35 +01:00
for nicegw in ${ array [@] } ; do
2022-11-14 20:45:06 +01:00
2022-11-02 17:43:55 +01:00
[ [ $( cat ~/.zen/tmp/.ipfsgw.bad.twt | grep -w $nicegw ) ] ] && echo " <<< BAD GATEWAY >>> $nicegw " && continue
2022-11-02 17:23:12 +01:00
gum = $( echo " $nicegw " | sed " s~:hash~ $DATAID ~g " )
echo " LOADING $gum "
2022-12-04 17:01:18 +01:00
curl -m 5 -so ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } " $gum "
2022-11-19 17:46:00 +01:00
[ [ $? != 0 ] ] && echo "(✜‿‿✜) BYPASSING"
2022-11-02 17:23:12 +01:00
2022-12-04 17:01:18 +01:00
if [ [ -s ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } ] ] ; then
2022-11-14 20:45:06 +01:00
2022-12-04 17:01:18 +01:00
MIME = $( mimetype -b ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } )
GOAL = $( ipfs add -q ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } )
2022-11-14 20:45:06 +01:00
if [ [ ${ GOAL } != ${ DATAID } ] ] ; then
2022-11-19 03:18:09 +01:00
echo " (╥☁╥ ) - BAD ${ WHAT } FORMAT ERROR ${ MIME } - (╥☁╥ ) "
2022-11-14 20:45:06 +01:00
ipfs pin rm /ipfs/${ GOAL }
2022-12-04 17:01:18 +01:00
rm ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT }
2022-11-14 20:45:06 +01:00
# NOT A JSON AVOID BANISHMENT
echo $nicegw >> ~/.zen/tmp/.ipfsgw.bad.twt
continue
else
## GOT IT !! IPFS ADD
ipfs pin add /ipfs/${ GOAL }
## + TW ADD (new_file_in_astroport.sh)
2022-11-19 03:18:09 +01:00
echo "(♥‿‿♥) FILE UPLOAD OK" ; echo
2022-11-14 20:45:06 +01:00
break
fi
2022-11-19 04:33:47 +01:00
else
2022-11-19 17:46:00 +01:00
echo " (⇀‿‿↼) - NO FILE - (⇀‿‿↼)"
2022-11-02 17:23:12 +01:00
continue
2022-11-14 20:45:06 +01:00
2022-11-02 17:43:55 +01:00
fi
2022-11-11 18:22:35 +01:00
2022-11-02 17:23:12 +01:00
done
2022-11-14 20:45:06 +01:00
2022-11-02 17:23:12 +01:00
fi ## NO DIRECT IPFS - GATEWAY TRY
## REALLY NO FILE FOUND !!!
2022-12-04 17:01:18 +01:00
[ [ ! -s ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } ] ] && \
2022-11-02 17:23:12 +01:00
echo " $HTTPCORS ERROR (╥☁╥ ) - $DATAID TIMEOUT - (╥☁╥ ) " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
2022-11-11 18:22:35 +01:00
## SPECIAL index.[json/html/...] MODE.
2022-12-04 17:01:18 +01:00
[ [ ${ WHAT } = = "index" ] ] && cp ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /index.json
2022-11-11 18:22:35 +01:00
## TODO MAKE MULTIFORMAT DATA & INDEX
# RWHAT=$(echo "$WHAT" | cut -d '.' -f 1)
# TWHAT=$(echo "$WHAT" | cut -d '.' -f 2)
2022-12-04 17:01:18 +01:00
# cp ~/.zen/tmp/${IPFSNODEID}/${APPNAME}/${PLAYER}/${MOATS}.data.${WHAT} ~/.zen/tmp/${IPFSNODEID}/${APPNAME}/${RWHAT}.${TWHAT}
2022-10-30 20:04:32 +01:00
## REPONSE ON PORT
2022-10-31 19:30:23 +01:00
echo " $HTTPCORS " > ~/.zen/tmp/coucou/${ MOATS } .index.redirect
sed -i "s~text/html~application/json~g" ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-12-04 17:01:18 +01:00
cat ~/.zen/tmp/${ IPFSNODEID } /${ APPNAME } /${ PLAYER } /${ MOATS } .data.${ WHAT } >> ~/.zen/tmp/coucou/${ MOATS } .index.redirect
2022-10-31 19:30:23 +01:00
cat ~/.zen/tmp/coucou/${ MOATS } .index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
2022-10-30 20:04:32 +01:00
2022-11-01 14:41:30 +01:00
## REPONSE ON IPFSNODEID
(
2022-11-16 22:06:57 +01:00
start = ` date +%s`
2022-11-01 14:41:30 +01:00
echo " ¯\_༼<O͡〰o>༽_/¯ $IPFSNODEID $PLAYER SIGNALING "
ROUTING = $( ipfs add -rwq ~/.zen/tmp/${ IPFSNODEID } /* | tail -n 1 )
ipfs name publish --allow-offline /ipfs/$ROUTING
echo "DONE"
end = ` date +%s`
2022-11-19 18:39:31 +01:00
dur = ` expr $end - $start `
echo ${ MOATS } :${ G1PUB } :${ PLAYER } :SELF:$dur >> ~/.zen/tmp/${ IPFSNODEID } /_timings
cat ~/.zen/tmp/${ IPFSNODEID } /_timings | tail -n 1
2022-11-01 14:41:30 +01:00
) &
2022-10-31 18:38:20 +01:00
end = ` date +%s`
2022-11-19 18:39:31 +01:00
dur = ` expr $end - $start `
echo ${ MOATS } :${ G1PUB } :${ PLAYER } :${ APPNAME } :$dur >> ~/.zen/tmp/${ IPFSNODEID } /_timings
cat ~/.zen/tmp/${ IPFSNODEID } /_timings | tail -n 1
2022-11-24 19:39:09 +01:00
) & # testcraft & SUB PROCESS
2022-10-31 18:38:20 +01:00
2022-10-30 03:02:59 +01:00
end = ` date +%s`
2022-11-02 18:01:10 +01:00
echo "(☓‿‿☓) Execution time was " ` expr $end - $start ` seconds.
2022-10-30 03:02:59 +01:00
continue
2022-10-27 13:27:17 +02:00
fi
2022-12-19 18:26:03 +01:00
2022-11-18 01:00:50 +01:00
##############################################
# GETIPNS
##############################################
if [ [ $APPNAME = = "getipns" ] ] ; then
echo " $HTTPCORS /ipns/ ${ ASTRONAUTENS } " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
end = ` date +%s`
2022-11-24 19:39:09 +01:00
echo $APPNAME " (☉_☉ ) /ipns/ ${ ASTRONAUTENS } Execution time was " ` expr $end - $start ` seconds.
2022-11-18 01:00:50 +01:00
continue
fi
2022-11-07 01:52:53 +01:00
###################################################################################################
###################################################################################################
2022-12-08 18:56:20 +01:00
# API ONE : ?salt=PHRASE%20UNE&pepper=PHRASE%20DEUX&g1pub=on&email=EMAIL&pseudo=PROFILENAME
if [ [ ${ arr [6] } = = "email" && ${ arr [7] } != "" ] ] ; then
2022-10-27 13:27:17 +02:00
2022-11-15 15:31:39 +01:00
[ [ $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. && continue
2022-10-26 18:38:37 +02:00
2022-11-07 01:52:53 +01:00
start = ` date +%s`
2022-10-22 13:01:46 +02:00
2022-12-08 18:56:20 +01:00
# WHAT can contain urlencoded FullURL
EMAIL = $( urldecode ${ arr [7] } | xargs)
2022-11-07 01:52:53 +01:00
PSEUDO = $( urldecode ${ arr [9] } | xargs)
2022-10-24 02:45:49 +02:00
2022-12-08 18:56:20 +01:00
[ [ ! ${ 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. && continue
2022-11-05 20:15:02 +01:00
2022-11-24 19:39:09 +01:00
## CHECK WHAT IS EMAIL
2022-12-08 18:56:20 +01:00
if [ [ " ${ EMAIL } " = ~ ^[ a-zA-Z0-9._%+-] +@[ a-zA-Z0-9.-] +\. [ a-zA-Z] { 2,4} $ ] ] ; then
2022-11-24 19:39:09 +01:00
echo "VALID EMAIL OK"
else
echo "BAD EMAIL"
2022-12-08 18:56:20 +01:00
( echo " $HTTPCORS KO ${ EMAIL } : bad ' " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-11-24 19:39:09 +01:00
fi
2022-10-04 23:10:31 +02:00
2022-11-24 19:39:09 +01:00
## CREATE PSEUDO FROM
2022-10-21 13:45:53 +02:00
if [ [ ! $PSEUDO ] ] ; then
2022-12-08 18:56:20 +01:00
PSEUDO = $( echo ${ EMAIL } | cut -d '@' -f 1)
2022-12-11 18:51:48 +01:00
PSEUDO = ${ PSEUDO ,, } ; PSEUDO = ${ PSEUDO %%[0-9]* } ${ RANDOM : 0 : 4 }
2022-10-21 13:45:53 +02:00
fi
2022-10-04 23:10:31 +02:00
2022-12-08 18:56:20 +01:00
if [ [ ! -d ~/.zen/game/players/${ EMAIL } ] ] ; then
echo " # ASTRONAUT NEW VISA Create VISA.new.sh in background (~/.zen/tmp/email. ${ EMAIL } . ${ MOATS } .txt) "
2022-11-05 20:15:02 +01:00
(
2022-11-19 18:39:31 +01:00
startvisa = ` date +%s`
2022-12-09 15:55:27 +01:00
[ [ " $SALT " = = "0" && " $PEPPER " = = "0" ] ] && SALT = "" && PEPPER = "" # "0" "0" means random salt pepper
2022-12-09 01:39:47 +01:00
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
2022-12-08 18:56:20 +01:00
$MY_PATH /tools/mailjet.sh " ${ EMAIL } " ~/.zen/tmp/email.${ EMAIL } .${ MOATS } .txt ## Send VISA.new log to EMAIL
2022-11-19 18:39:31 +01:00
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
2022-11-05 20:15:02 +01:00
) &
2022-12-15 22:53:18 +01:00
echo " $HTTPCORS - <meta http-equiv='refresh' content='3; url=\" " ${ myIPFS } "/ipns/" $ASTRONAUTENS " \"'/>
2022-12-08 18:56:20 +01:00
<h1>BOOTING - ASTRONAUT $PSEUDO </h1> IPFS FORMATING - [ $SALT + $PEPPER ] ( ${ EMAIL } )
2022-12-15 22:53:18 +01:00
<br>- TW - ${ myIPFS } /ipns/$ASTRONAUTENS <br> - GW - /ipns/$IPFSNODEID " | nc -l -p ${ PORT } -q 1 > /dev/null 2>&1 &
2022-12-04 23:02:09 +01:00
2022-10-26 18:26:50 +02:00
continue
2022-10-21 13:45:53 +02:00
else
2022-12-08 18:56:20 +01:00
# 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. && continue
2022-10-24 03:00:50 +02:00
fi
2022-10-22 13:01:46 +02:00
2022-10-26 18:26:50 +02:00
###################################################################################################
2022-10-06 15:57:22 +02:00
end = ` date +%s`
2022-11-02 17:23:12 +01:00
echo " (☓‿‿☓) Execution time was " ` expr $end - $start ` seconds.
2022-10-04 23:10:31 +02:00
fi
2022-11-07 01:52:53 +01:00
2022-12-01 18:26:21 +01:00
##############################################
2022-12-08 18:56:20 +01:00
# VIDEOURL : ADD URL TO 'CopierYoutube' tagged Tiddler : TODO
2022-12-01 18:26:21 +01:00
##############################################
2022-12-08 18:56:20 +01:00
if [ [ $APPNAME = = "CopierYoutube" ] ] ; then
2022-12-01 18:26:21 +01:00
echo " $HTTPCORS /ipns/ ${ ASTRONAUTENS } ADDING ${ WHAT } " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 &
end = ` date +%s`
echo $APPNAME " (☉_☉ ) ${ WHAT } Execution time was " ` expr $end - $start ` seconds.
continue
fi
2022-11-07 01:52:53 +01:00
## RESPONDING
cat ~/.zen/tmp/coucou/${ MOATS } .index.redirect | nc -l -p ${ PORT } -q 1 > ~/.zen/tmp/coucou/${ MOATS } .official.swallow &
echo "HTTP 1.1 PROTOCOL DOCUMENT READY"
2022-11-26 19:36:54 +01:00
echo " ${ MOATS } -----> PAGE AVAILABLE -----> http:// ${ myHOST } : ${ PORT } "
2022-11-07 01:52:53 +01:00
end = ` date +%s`
2022-12-01 18:26:21 +01:00
echo $type " (J‿‿J) Execution time was " ` expr $end - $start ` seconds.
2022-11-07 01:52:53 +01:00
fi ## END IF SALT
2022-10-06 15:57:22 +02:00
###################################################################################################
###################################################################################################
2022-10-21 13:45:53 +02:00
# API TWO : ?qrcode=G1PUB
2022-10-04 23:10:31 +02:00
if [ [ ${ arr [0] } = = "qrcode" ] ] ; then
2022-11-05 20:15:02 +01:00
## Astroport.ONE local use QRCODE Contains ${WHAT} G1PUB
2022-10-26 18:26:50 +02:00
QRCODE = $( echo $URL | cut -d ' ' -f2 | cut -d '=' -f 2 | cut -d '&' -f 1) && echo " QRCODE : $QRCODE "
2022-10-04 23:10:31 +02:00
g1pubpath = $( grep $QRCODE ~/.zen/game/players/*/.g1pub | cut -d ':' -f 1 2>/dev/null)
2022-12-11 04:22:13 +01:00
PLAYER = $( echo " $g1pubpath " | rev | cut -d '/' -f 2 | rev 2>/dev/null)
2022-10-04 23:10:31 +02:00
## FORCE LOCAL USE ONLY. Remove to open 1234 API
2022-12-11 04:22:13 +01:00
[ [ ! -d ~/.zen/game/players/${ PLAYER } || ${ PLAYER } = = "" ] ] && ( echo " $HTTPCORS ERROR - QRCODE - NO ${ PLAYER } ON BOARD !! " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-10-04 23:10:31 +02:00
2022-10-28 20:47:47 +02:00
## USE SECOND HTTP SERVER TO RECEIVE PASS
2022-10-04 23:10:31 +02:00
2022-10-26 18:26:50 +02:00
## Demande de copie d'une URL reçue.
if [ [ ${ arr [2] } = = "url" ] ] ; then
wsource = " ${ arr [3] } "
2022-12-11 04:22:13 +01:00
[ [ ${ arr [4] } = = "type" ] ] && CHOICE = " ${ arr [5] } " || CHOICE = "Youtube"
2022-10-07 02:16:53 +02:00
2022-10-28 20:47:47 +02:00
## CREATION TIDDLER "G1Voeu" G1CopierYoutube
2022-12-11 04:13:47 +01:00
# CHOICE = "Video" Page MP3 Web
2022-12-11 04:22:13 +01:00
~/.zen/Astropor.ONE/ajouter_media.sh " $( urldecode $wsource ) " " $PLAYER " " $CHOICE " &
2022-10-28 20:47:47 +02:00
echo "## Insertion tiddler : G1CopierYoutube"
echo ' [
{
"title" : " ' ${ MOATS } ' " ,
"type" : "'text/vnd.tiddlywiki'" ,
"text" : " ' $( urldecode $wsource ) ' " ,
2022-12-04 23:02:09 +01:00
"tags" : " 'CopierYoutube ${ WHAT } ' "
2022-10-28 20:47:47 +02:00
}
]
2022-12-04 23:02:09 +01:00
' > ~/.zen/tmp/${ WHAT } .${ MOATS } .import.json
2022-10-28 20:47:47 +02:00
2022-12-04 23:02:09 +01:00
## TODO ASTROBOT "G1AstroAPI" READS ~/.zen/tmp/${WHAT}.${MOATS}.import.json
2022-10-28 20:47:47 +02:00
2022-12-04 23:02:09 +01:00
( echo " $HTTPCORS OK - ~/.zen/tmp/ ${ WHAT } . ${ MOATS } .import.json WORKS IF YOU MAKE THE WISH voeu 'AstroAPI' " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-12-11 04:22:13 +01:00
else
( echo " $HTTPCORS ERROR - ${ arr [2] } - ${ arr [3] } UNKNOWN " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && continue
2022-10-26 18:26:50 +02:00
fi
2022-10-04 23:10:31 +02:00
fi
2022-10-21 14:38:25 +02:00
2022-10-04 23:10:31 +02:00
done
exit 0