2023-01-02 22:21:16 +01:00
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
################################################################################
2023-03-12 22:31:11 +01:00
## API: QRCODE - ANY/MULTI KEY OPERATIONS
2023-01-02 22:21:16 +01:00
################################################################################
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
. " ${ MY_PATH } /../tools/my.sh "
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
2023-01-03 18:42:41 +01:00
2023-01-02 22:21:16 +01:00
"
start = ` date +%s`
2023-01-11 01:25:02 +01:00
PORT = $1 THAT = $2 AND = $3 THIS = $4 APPNAME = $5 WHAT = $6 OBJ = $7 VAL = $8 MOATS = $9
2023-01-11 02:36:23 +01:00
### transfer variables according to script
2023-01-02 22:21:16 +01:00
QRCODE = $THAT
TYPE = $WHAT
2023-01-11 02:36:23 +01:00
## GET TW
mkdir -p ~/.zen/tmp/${ MOATS } /
2023-03-12 22:31:11 +01:00
################################################################################
## REFRESH STATION & OPEN G1PalPay INTERFACE
2023-03-16 14:38:25 +01:00
###############################################################################
2023-02-11 20:40:17 +01:00
if [ [ ${ QRCODE } = = "station" ] ] ; then
2023-03-12 22:31:11 +01:00
2023-03-13 04:26:59 +01:00
# rm ~/.zen/tmp/ISTATION ## REMOVE IN PROD
2023-03-12 22:31:11 +01:00
2023-03-13 04:26:59 +01:00
if [ [ ! -s ~/.zen/tmp/ISTATION ] ] ; then
2023-03-10 17:33:56 +01:00
## GENERATE PLAYER G1 TO ZEN ACCOUNTING
ISTATION = $( $MY_PATH /../tools/make_image_ipfs_index_carousel.sh | tail -n 1)
echo $ISTATION > ~/.zen/ISTATION ## STATION G1WALLET CAROUSEL
2023-03-13 04:26:59 +01:00
else
ISTATION = $( cat ~/.zen/ISTATION)
fi
2023-03-12 22:31:11 +01:00
## SHOW G1PALPAY FRONT (IFRAME)
2023-03-10 17:33:56 +01:00
sed " s~_STATION_~ ${ myIPFS } ${ ISTATION } /~g " $MY_PATH /../www/G1PalPay/index.html > ~/.zen/tmp/${ MOATS } /index.htm
sed -i " s~http://127.0.0.1:8080~ ${ myIPFS } ~g " ~/.zen/tmp/${ MOATS } /index.htm
WSTATION = " /ipfs/ $( ipfs add -q ~/.zen/tmp/${ MOATS } /index.htm) "
echo " NEW WSTATION ${ myIPFS } ${ WSTATION } "
echo $WSTATION > ~/.zen/tmp/WSTATION
2023-03-13 04:26:59 +01:00
2023-03-10 00:57:16 +01:00
## SEND TO WSTATION PAGE
sed " s~_TWLINK_~ ${ myIPFS } ${ WSTATION } /~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ myIPFS } ${ WSTATION } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-02-11 20:40:17 +01:00
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
) &
exit 0
fi
2023-03-15 01:36:20 +01:00
2023-03-16 14:38:25 +01:00
################################################################################
## MODE G1VOEU : RETURN WISHNS - image carousel links -
################################################################################
if [ [ ${ QRCODE : 0 : 2 } = = "G1" && ${ AND } = = "tw" ] ] ; then
APPNAME = "G1Voeu"
VOEU = ${ QRCODE }
ASTROPATH = $( grep ${ THIS } ~/.zen/game/players/*/.playerns | cut -d ':' -f 1 | rev | cut -d '/' -f 2- | rev 2>/dev/null)
## REDIRECT TO G1VOEU IPNS ADDRESS
LINK = $( cat $ASTROPATH /voeux/${ QRCODE : 2 } /*/.link)
echo " #>>> DISPLAY WISHNS >>>> # $VOEU : $LINK "
sed " s~_TWLINK_~ ${ LINK } ~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ LINK } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
rm -Rf ~/.zen/tmp/${ MOATS }
) &
exit 0
fi
2023-03-12 22:31:11 +01:00
################################################################################
## QRCODE can be ASTRONAUTENS or G1PUB format
################################################################################
## ACCOUNT IPNS FORMAT : CHANGE .current
2023-03-09 19:42:41 +01:00
ASTROPATH = $( grep $QRCODE ~/.zen/game/players/*/.playerns | cut -d ':' -f 1 | rev | cut -d '/' -f 2- | rev 2>/dev/null)
2023-03-13 18:50:20 +01:00
if [ [ $ASTROPATH != "" && $APPNAME = = "" ] ] ; then
2023-03-16 14:38:25 +01:00
2023-03-09 19:42:41 +01:00
rm ~/.zen/game/players/.current
ln -s $ASTROPATH ~/.zen/game/players/.current
echo " LINKING $ASTROPATH to .current "
#### SELECT PARRAIN "G1PalPé"
2023-03-13 18:50:20 +01:00
echo "#>>>>>>>>>>>> # REDIRECT TO CREATE G1BILLETS"
2023-03-13 02:19:37 +01:00
sed " s~_TWLINK_~ ${ myG1BILLET } ?montant=0\&style=jeu~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ myG1BILLET } "?montant=0\&style=jeu'" >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-09 19:42:41 +01:00
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
2023-03-13 02:19:37 +01:00
rm -Rf ~/.zen/tmp/${ MOATS }
2023-03-09 19:42:41 +01:00
) &
2023-03-10 00:57:16 +01:00
exit 0
2023-03-16 14:38:25 +01:00
2023-03-13 04:26:59 +01:00
else
echo "NOT ON BOARD"
echo " What is this $QRCODE ? "
echo " AND= $3 THIS= $4 APPNAME= $5 WHAT= $6 OBJ= $7 VAL= $8 MOATS= $9 "
2023-03-09 19:42:41 +01:00
fi
2023-03-12 22:31:11 +01:00
################################################################################
2023-02-24 00:00:49 +01:00
## FILTRAGE NON G1 TO IPFS READY QRCODE
2023-03-10 00:57:16 +01:00
ASTROTOIPFS = $( ~/.zen/Astroport.ONE/tools/g1_to_ipfs.py ${ QRCODE } 2>/dev/null)
2023-03-09 19:42:41 +01:00
[ [ ! ${ ASTROTOIPFS } ] ] \
2023-03-10 00:57:16 +01:00
&& echo " INVALID QRCODE : ${ QRCODE } " \
&& ( echo " $HTTPCORS ERROR - INVALID QRCODE : ${ QRCODE } " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) \
2023-01-11 02:36:23 +01:00
&& exit 1
2023-03-12 22:31:11 +01:00
################################################################################
2023-01-11 02:36:23 +01:00
2023-03-09 19:42:41 +01:00
echo " >>> ${ QRCODE } g1_to_ipfs $ASTROTOIPFS "
2023-03-10 00:57:16 +01:00
###########################################""
###########################################
2023-03-12 22:31:11 +01:00
## GET G1PUB OR CURRENT SECRET
2023-03-10 00:57:16 +01:00
###########################################""
2023-02-20 19:30:15 +01:00
MYPLAYERKEY = $( grep ${ QRCODE } ~/.zen/game/players/*/secret.dunikey | cut -d ':' -f 1)
[ [ ! $MYPLAYERKEY ] ] && MYPLAYERKEY = " $HOME /.zen/game/players/.current/secret.dunikey "
2023-03-13 04:26:59 +01:00
echo " SELECTES KEY : $( cat MYPLAYERKEY) "
2023-03-10 00:57:16 +01:00
echo
2023-01-11 02:36:23 +01:00
2023-03-12 22:31:11 +01:00
## PARRAIN ID EXTRACTION
2023-03-10 00:57:16 +01:00
###########################################
2023-03-09 19:42:41 +01:00
CURPLAYER = $( cat ~/.zen/game/players/.current/.player)
CURG1 = $( cat ~/.zen/game/players/.current/.g1pub)
2023-03-10 00:57:16 +01:00
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py balance -p ${ CURG1 } "
2023-03-13 18:50:20 +01:00
CURCOINS = $( ~/.zen/Astroport.ONE/tools/COINScheck.sh ${ CURG1 } | tail -f 1)
2023-03-09 19:42:41 +01:00
echo " CURRENT PLAYER : $CURCOINS G1 "
2023-03-13 18:50:20 +01:00
## WALLET JAMAIS SERVI
2023-03-10 00:57:16 +01:00
###########################################
if [ [ $CURCOINS = = "null" ] ] ; then
echo "NULL"
2023-03-13 18:50:20 +01:00
sed " s~_TWLINK_~ $( cat ~/.zen/WSTATION) ~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ myIPFSGW } $( cat ~/.zen/WSTATION) "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-10 00:57:16 +01:00
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
) &
exit 0
fi
2023-03-09 19:42:41 +01:00
2023-03-10 00:57:16 +01:00
# MOA
###########################################
2023-03-09 19:42:41 +01:00
if [ [ ${ CURG1 } = = ${ QRCODE } ] ] ; then
echo "SAME PLAYER AS CURRENT"
else
2023-03-10 00:57:16 +01:00
# PAS MOA
###########################################
2023-03-09 19:42:41 +01:00
## GET VISITOR G1 WANNET AMOUNT : VISITORCOINS
2023-03-10 00:57:16 +01:00
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py balance -p ${ QRCODE } "
2023-03-13 18:50:20 +01:00
VISITORCOINS = $( ~/.zen/Astroport.ONE/tools/COINScheck.sh ${ QRCODE } | tail -f 1)
2023-03-10 00:57:16 +01:00
## PALPE COMBIEN ?
2023-03-09 19:42:41 +01:00
if [ [ $VISITORCOINS = = "" || $VISITORCOINS = = "null" ] ] ; then
2023-03-10 00:57:16 +01:00
# NOUVEAU 1 G1
PALPE = 1
2023-03-09 19:42:41 +01:00
else
PALPE = 0
fi
2023-03-10 00:57:16 +01:00
echo " VISITEUR POSSEDE ${ VISITORCOINS } G1 "
2023-01-11 02:36:23 +01:00
2023-03-09 19:42:41 +01:00
## GET G1 WALLET HISTORY
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .g1history.json ] ] \
&& ~/.zen/Astroport.ONE/tools/timeout.sh -t 20 $MY_PATH /../tools/jaklis/jaklis.py history -p ${ QRCODE } -j > ~/.zen/tmp/coucou/${ QRCODE } .g1history.json &
2023-03-09 19:42:41 +01:00
## SCAN CCHANGE +
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .gchange.json ] ] \
&& ~/.zen/Astroport.ONE/tools/timeout.sh -t 20 curl -s ${ myDATA } /user/profile/${ QRCODE } > ~/.zen/tmp/coucou/${ QRCODE } .gchange.json &
GFOUND = $( cat ~/.zen/tmp/coucou/${ QRCODE } .gchange.json | jq -r '.found' )
2023-03-10 00:57:16 +01:00
[ [ $GFOUND = = "false" ] ] \
&& echo "AUCUN GCHANGE" \
&& sed " s~_TWLINK_~ ${ myGCHANGE } ~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect \
&& echo "url='" ${ myGCHANGE } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect \
&& ( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .gplus.json ] ] \
&& ~/.zen/Astroport.ONE/tools/timeout.sh -t 10 curl -s ${ myCESIUM } /user/profile/${ QRCODE } > ~/.zen/tmp/coucou/${ QRCODE } .gplus.json 2>/dev/null &
GCFOUND = $( cat ~~/.zen/tmp/coucou/${ QRCODE } .gplus.json | jq -r '.found' )
2023-03-10 00:57:16 +01:00
[ [ $GCFOUND = = "false" ] ] \
2023-03-13 18:50:20 +01:00
&& echo "AUCUN GCPLUS : PAS DE CESIUM POUR CLEF GCHANGE" \
2023-03-10 16:13:44 +01:00
&& sed " s~_TWLINK_~https://demo.cesium.app/#/app/wot/ $QRCODE /~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect \
2023-03-10 00:57:16 +01:00
&& echo "url='" ${ myASTRONEF } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect \
&& ( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
2023-03-09 19:42:41 +01:00
2023-03-13 18:50:20 +01:00
## CHECK IF GCHANGE IS LINKED TO "A DECLARED CESIUM"
CPUB = $( cat ~/.zen/tmp/coucou/${ QRCODE } .gchange.json | jq -r '._source.pubkey' 2>/dev/null)
## SCAN GPUB CESIUM +
##### DO WE HAVE A MEMBER LINKED ??
if [ [ $CPUB && $CPUB != 'null' && $CPUB != $QRCODE ] ] ; then
2023-03-09 19:42:41 +01:00
## SCAN CPUB CESIUM +
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .cplus.json ] ] \
&& ~/.zen/Astroport.ONE/tools/timeout.sh -t 10 curl -s ${ myCESIUM } /user/profile/${ CPUB } > ~/.zen/tmp/coucou/${ QRCODE } .cplus.json 2>/dev/null &
CCFOUND = $( cat ~/.zen/tmp/coucou/${ QRCODE } .cplus.json | jq -r '.found' )
2023-03-09 19:42:41 +01:00
2023-03-10 00:57:16 +01:00
[ [ $CCFOUND = = "false" ] ] \
2023-03-13 18:50:20 +01:00
&& echo "AUCUN CCPLUS : MEMBRE LIE" \
2023-03-10 00:57:16 +01:00
&& sed "s~_TWLINK_~https://monnaie-libre.fr~g" ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect \
&& ( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
2023-03-09 19:42:41 +01:00
2023-03-10 00:57:16 +01:00
## MESSAGE LINKED CESIUM WALLET
2023-03-13 18:50:20 +01:00
$MY_PATH /../tools/jaklis/jaklis.py -n $myCESIUM -k $MYPLAYERKEY send -d " ${ CPUB } " -t "COUCOU" \
-m " VOUS AVEZ ${ VISITORCOINS } G1 SUR VOTRE COMPTE ${ QRCODE } "
2023-03-09 19:42:41 +01:00
else
2023-03-10 00:57:16 +01:00
[ [ $GCFOUND != "false" ] ] \
&& echo "GPLUS"
2023-03-09 19:42:41 +01:00
## EXTRACT GPS ... CONTINUE THE GAME
fi
2023-03-10 00:57:16 +01:00
## DOES CURRENT IS RICHER THAN 100 G1
if [ [ $CURCOINS -gt 1 && $PALPE != 0 ] ] ; then
## LE COMPTE VISITOR EST VIDE
echo " ## PARRAIN $CURPLAYER SEND $PALPE TO ${ QRCODE } "
## G1 PAYEMENT
2023-03-10 16:13:44 +01:00
$MY_PATH /../tools/jaklis/jaklis.py -k ~/.zen/game/players/.current/secret.dunikey pay -a ${ PALPE } -p ${ QRCODE } -c " ASTRO:ZEN_00 ${ PALPE } 00 " -m
2023-03-10 00:57:16 +01:00
## MESSAGE CESIUM +
$MY_PATH /../tools/jaklis/jaklis.py -n $myCESIUM -k $MYPLAYERKEY send -d " ${ QRCODE } " -t "CADEAU" \
-m " ASTRO: ${ CURPLAYER } VOUS ENVOI ${ PALPE } JUNE.
2023-03-10 16:13:44 +01:00
GAGNEZ PLUS DE JUNE... RELIEZ CE PORTEFEUILLE Cesium SUR https://gchange.fr \
PUIS REVENEZ SCANNER VOTRE QRCODE"
2023-03-10 00:57:16 +01:00
2023-03-09 19:42:41 +01:00
fi
2023-03-10 16:13:44 +01:00
ls ~/.zen/tmp/${ MOATS } /
2023-03-09 19:42:41 +01:00
echo "************************************************************"
echo " $VISITORCOINS (+ ${ PALPE } ) JUNE "
echo "************************************************************"
2023-03-10 16:13:44 +01:00
##
2023-03-09 19:42:41 +01:00
fi
2023-01-02 22:21:16 +01:00
###################################################################################################
2023-03-04 16:42:01 +01:00
# THAT=$2 AND=$3 THIS=$4 APPNAME=$5 WHAT=$6 OBJ=$7 VAL=$8
2023-03-08 17:00:53 +01:00
### amzqr "$myASTROPORT/?qrcode=$G1PUB&junesec=$PASsec&askpass=$HPass&tw=$ASTRONAUTENS" \
### amzqr "$myASTROPORT/?qrcode=$WISHKEY&junesec=$PASsec&asksalt=$HPass&flux=$VOEUNS&tw=$ASTRONAUTENS" \
2023-03-04 16:42:01 +01:00
###
2023-03-08 17:00:53 +01:00
if [ [ $AND = = "junesec" ] ] ; then
2023-03-04 16:42:01 +01:00
echo "♥BOX♥BOX♥BOX♥BOX♥BOX"
echo "MAGIC WORLD ASTRONAUT & WISHES"
2023-03-05 01:45:08 +01:00
2023-03-04 16:42:01 +01:00
if [ [ $APPNAME = = "askpass" ] ] ; then
echo " >> ASTRONAUT QRCODE $APPNAME "
ENDCODED = " $THIS "
HPASS = " $WHAT "
TW = " /ipns/ $VAL "
2023-03-05 01:45:08 +01:00
2023-03-04 16:42:01 +01:00
fi
if [ [ $APPNAME = = "asksalt" ] ] ; then
echo " >> WISH QRCODE $APPNAME "
ENDCODED = " $THIS "
HSALT = " $WHAT "
FLUX = " /ipns/ $VAL "
2023-03-05 01:45:08 +01:00
fi
2023-03-04 16:42:01 +01:00
fi
2023-03-04 01:26:30 +01:00
2023-03-10 16:13:44 +01:00
### amzqr "$myASTROPORT/?qrcode=$G1FRIEND&star=1" \
###
if [ [ $AND = = "star" ] ] ; then
STAR = $THIS
echo " WebClient ask to send $STAR star to $QRCODE "
## RETURN PAGE with "salt / pepper" API to activate
fi
2023-03-04 01:26:30 +01:00
## TODO MAGIC QRCODE RX / TX
2023-01-02 22:21:16 +01:00
###################################################################################################
# API TWO : ?qrcode=G1PUB&url=____&type=____
2023-03-04 16:42:01 +01:00
if [ [ $AND = = "url" ] ] ; then
URL = $THIS
if [ [ $URL ] ] ; then
2023-01-02 22:21:16 +01:00
## Astroport.ONE local use QRCODE Contains ${WHAT} G1PUB
g1pubpath = $( grep $QRCODE ~/.zen/game/players/*/.g1pub | cut -d ':' -f 1 2>/dev/null)
PLAYER = $( echo " $g1pubpath " | rev | cut -d '/' -f 2 | rev 2>/dev/null)
## FORCE LOCAL USE ONLY. Remove to open 1234 API
2023-01-11 01:25:02 +01:00
[ [ ! -d ~/.zen/game/players/${ PLAYER } || ${ PLAYER } = = "" ] ] \
2023-03-01 02:44:11 +01:00
&& espeak "nope" \
2023-01-11 01:25:02 +01:00
&& ( echo " $HTTPCORS ERROR - QRCODE - NO ${ PLAYER } ON BOARD !! " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) \
&& exit 1
2023-01-02 22:21:16 +01:00
## Demande de copie d'une URL reçue.
[ [ ${ TYPE } ] ] && CHOICE = " ${ TYPE } " || CHOICE = "Youtube"
## CREATION TIDDLER "G1Voeu" G1CopierYoutube
# CHOICE = "Video" Page MP3 Web
~/.zen/Astropor.ONE/ajouter_media.sh " ${ URL } " " $PLAYER " " $CHOICE " &
echo "## Insertion tiddler : G1CopierYoutube"
echo ' [
{
"title" : " ' ${ MOATS } ' " ,
"type" : "'text/vnd.tiddlywiki'" ,
"text" : " ' ${ URL } ' " ,
"tags" : " 'CopierYoutube ${ WHAT } ' "
}
]
' > ~/.zen/tmp/${ WHAT } .${ MOATS } .import.json
## TODO ASTROBOT "G1AstroAPI" READS ~/.zen/tmp/${WHAT}.${MOATS}.import.json
( 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 & ) && exit 0
else
( echo " $HTTPCORS ERROR - ${ AND } - ${ THIS } UNKNOWN " | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1 & ) && exit 1
fi
2023-03-04 16:42:01 +01:00
fi
2023-03-10 00:57:16 +01:00
exit 0