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 "
2023-03-22 16:05:25 +01:00
start = ` date +%s`
2023-03-27 17:26:19 +02:00
PORT = $1 THAT = $2 AND = $3 THIS = $4 APPNAME = $5 WHAT = $6 OBJ = $7 VAL = $8 MOATS = $9 COOKIE = $10
2023-03-22 16:05:25 +01:00
### transfer variables according to script
QRCODE = $THAT
TYPE = $WHAT
2023-03-27 17:26:19 +02:00
echo " COOKIE : $COOKIE "
2023-01-02 22:21:16 +01:00
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
"
2023-03-27 17:26:19 +02:00
function urldecode( ) { : " ${ *//+/ } " ; echo -e " ${ _ //%/ \\ x } " ; }
2023-01-02 22:21:16 +01:00
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-28 19:53:57 +02: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)
2023-03-28 19:53:57 +02:00
echo $ISTATION > ~/.zen/tmp/ISTATION ## STATION G1WALLET CAROUSEL
2023-03-13 04:26:59 +01:00
else
2023-03-28 19:53:57 +02:00
ISTATION = $( cat ~/.zen/tmp/ISTATION)
2023-03-13 04:26:59 +01:00
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
2023-03-26 19:53:57 +02:00
sed -i " s~http://astroport.localhost:1234~ ${ myASTROPORT } ~g " ~/.zen/tmp/${ MOATS } /index.htm
2023-03-10 17:33:56 +01:00
WSTATION = " /ipfs/ $( ipfs add -q ~/.zen/tmp/${ MOATS } /index.htm) "
echo $WSTATION > ~/.zen/tmp/WSTATION
2023-03-16 14:52:50 +01:00
end = ` date +%s`
echo " NEW WSTATION ${ myIPFS } ${ WSTATION } Execution time was " ` expr $end - $start ` seconds.
2023-03-10 00:57:16 +01:00
## SEND TO WSTATION PAGE
2023-03-28 19:53:57 +02:00
sed " s~_TWLINK_~ ${ myIPFS } ${ WSTATION } /~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-27 17:40:05 +02:00
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-10 00:57:16 +01:00
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
2023-03-16 14:52:50 +01:00
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
2023-02-11 20:40:17 +01:00
) &
exit 0
fi
2023-03-15 01:36:20 +01:00
2023-03-26 00:24:25 +01:00
################################################################################
## MODE PGP ENCRYPTED QRCODE
2023-03-27 20:06:48 +02:00
# http://127.0.0.1:1234/?qrcode=-----BEGIN%20PGP%20MESSAGE-----~~jA0ECQMC5iqIY7XLnGn_0koBJB5S2Sy1p%2FHr8CKFgWdZ9_j%2Fb2qdOznICGvqGCXY~7Flw6YtiabngvY6biq%2F0vpiFL8t8BSbMZe0GLBU90EMBrhzEiyPnh__bzQ%3D%3D~%3D9UIj~-----END%20PGP%20MESSAGE-----~&pass=coucou&pay=1&g1pub=
2023-03-26 00:24:25 +01:00
################################################################################
2023-03-28 19:53:57 +02:00
if [ [ ${ QRCODE : 0 : 5 } = = "~~~~~" ] ] ; then
2023-03-26 01:25:33 +01:00
echo ${ QRCODE }
2023-03-27 17:26:19 +02:00
PASS = $( urldecode $THIS )
2023-03-27 20:06:48 +02:00
echo " ## THIS IS A PGP ENCRYPTED QRCODE LOOK - PASS $PASS - $APPNAME "
2023-03-27 17:26:19 +02:00
if [ [ $PASS != "" ] ] ; then
2023-03-27 20:06:48 +02:00
echo ${ WHAT } ${ VAL }
2023-03-28 16:07:54 +02:00
urldecode ${ QRCODE } | tr '_' '+' | tr '-' '\n' | tr '~' '-' > ~/.zen/tmp/${ MOATS } /disco.aes
2023-03-27 17:26:19 +02:00
sed -i '$ d' ~/.zen/tmp/${ MOATS } /disco.aes
2023-03-27 20:06:48 +02:00
echo " cat ~/.zen/tmp/ ${ MOATS } /disco.aes | gpg -d --passphrase " $PASS " --batch"
2023-03-27 17:26:19 +02:00
cat ~/.zen/tmp/${ MOATS } /disco.aes | gpg -d --passphrase " $PASS " --batch > ~/.zen/tmp/${ MOATS } /disco
2023-03-28 19:53:57 +02:00
# cat ~/.zen/tmp/${MOATS}/disco
2023-03-27 20:06:48 +02:00
## FORMAT SHOULD BE "/?salt=${USALT}&pepper=${UPEPPER}"
2023-03-28 19:53:57 +02:00
DISCO = $( cat ~/.zen/tmp/${ MOATS } /disco | cut -d '?' -f2)
2023-03-27 20:06:48 +02:00
arr = ( ${ DISCO //[=&]/ } )
salt = $( urldecode ${ arr [1] } | xargs)
pepper = $( urldecode ${ arr [3] } | xargs)
2023-03-27 20:53:11 +02:00
echo " <br> ${ salt } <br> ${ pepper } <br> " >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 20:06:48 +02:00
2023-03-27 20:53:11 +02:00
if [ [ ${ salt } != "" && ${ pepper } != "" ] ] ; then
2023-03-27 20:06:48 +02:00
${ MY_PATH } /../tools/keygen -t duniter -o ~/.zen/tmp/${ MOATS } /secret.key " $salt " " $pepper "
G1PUB = $( cat ~/.zen/tmp/${ MOATS } /secret.key | grep 'pub:' | cut -d ' ' -f 2)
2023-03-27 20:53:11 +02:00
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py balance -p ${ G1PUB } "
2023-03-28 19:53:57 +02:00
${ MY_PATH } /../tools/COINScheck.sh ${ G1PUB } > ~/.zen/tmp/${ G1PUB } .curcoin
2023-03-27 20:53:11 +02:00
cat ~/.zen/tmp/${ G1PUB } .curcoin
CURCOINS = $( cat ~/.zen/tmp/${ G1PUB } .curcoin | tail -n 1)
echo " CURRENT KEY : $CURCOINS G1 "
[ [ ${ WHAT } = = "" ] ] && echo "<br> Missing amount <br>" >> ~/.zen/tmp/${ MOATS } /disco
[ [ ${ VAL } = = "" ] ] && echo "<br> Missing Destination PublicKey <br>" >> ~/.zen/tmp/${ MOATS } /disco
if [ [ ${ WHAT } != "" && ${ VAL } != "" && ${ CURCOINS } != "null" && ${ CURCOINS } != "" ] ] ; then
## COMMAND A PAYMENT
if [ [ $APPNAME = = "pay" ] ] ; then
if [ [ $WHAT = ~ ^[ 0-9] +$ ] ] ; then
2023-03-27 20:06:48 +02:00
2023-03-28 19:53:57 +02:00
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/ ${ MOATS } /secret.key pay -a ${ WHAT } -p ${ VAL } -c 'ASTRO:Bro' -m "
${ MY_PATH } /../tools/timeout.sh -t 3 \
${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/${ MOATS } /secret.key pay -a ${ WHAT } -p ${ VAL } -c 'ASTRO:Bro' -m 2>& 1 >> ~/.zen/tmp/${ MOATS } /disco
####################################
if [ $? = = 0 ] ; then
echo "ADJUSTING LOCAL CACHE ACOUNTING"
COINSFILE = $HOME /.zen/tmp/coucou/${ VAL } .COINS
CUR = $( cat ${ COINFILE } )
[ [ ${ CUR } != "" && ${ CUR } != "null" ] ] \
&& echo $(( CUR+WHAT)) > ${ COINFILE } \
|| echo ${ WHAT } > ${ COINFILE }
cat ${ COINFILE }
fi
2023-03-27 20:53:11 +02:00
fi
2023-03-27 20:06:48 +02:00
fi
2023-03-27 20:53:11 +02:00
else
2023-03-27 20:06:48 +02:00
2023-03-27 20:53:11 +02:00
echo " <br> ${ WHAT } ${ VAL } ${ CURCOINS } PROBLEM " >> ~/.zen/tmp/${ MOATS } /disco
fi
2023-03-27 20:06:48 +02:00
else
2023-03-27 20:53:11 +02:00
echo " <br>BAD PASS FOR ${ QRCODE } ${ WHAT } ${ VAL } " >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 20:06:48 +02:00
fi
2023-03-27 18:12:03 +02:00
2023-03-27 17:26:19 +02:00
else
2023-03-27 20:06:48 +02:00
2023-03-27 20:53:11 +02:00
echo "<br>DATA MISSING" >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 17:26:19 +02:00
fi
echo " ${ HTTPCORS } " > ~/.zen/tmp/${ MOATS } /index.redirect
cat ~/.zen/tmp/${ MOATS } /disco >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-26 00:24:25 +01:00
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
) &
exit 0
fi
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 }
2023-03-26 18:03:42 +02:00
ASTROPATH = $( grep -r ${ THIS } ~/.zen/game/players/*/ipfs/moa | grep ${ QRCODE } | cut -d ':' -f 1 | rev | cut -d '/' -f 2- | rev 2>/dev/null)
2023-03-16 16:17:21 +01:00
echo $ASTROPATH
2023-03-26 18:03:42 +02:00
INDEX = $ASTROPATH /index.html
echo $INDEX
if [ [ -s ${ INDEX } ] ] ; then
tiddlywiki --load ${ INDEX } --output ~/.zen/tmp --render '.' " ${ MOATS } .g1voeu.json " 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
cat ~/.zen/tmp/${ MOATS } .g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/${ MOATS } .g1wishes.txt
while read WISH
do
[ [ ${ WISH } = = "" || ${ WISH } = = "null" ] ] && echo "BLURP. EMPTY WISH" && continue
WISHNAME = $( cat ~/.zen/tmp/${ MOATS } .g1voeu.json | jq .[ ] | jq -r 'select(.wish=="' ${ WISH } '") | .title' )
WISHNS = $( cat ~/.zen/tmp/${ MOATS } .g1voeu.json | jq .[ ] | jq -r 'select(.wish=="' ${ WISH } '") | .wishns' )
echo " ${ WISHNAME } : ${ WISHNS } "
[ [ " G1 ${ WISHNAME } " = = " $VOEU " ] ] \
&& echo "FOUND" \
&& LINK = ${ myIPFS } ${ WISHNS } \
&& break
done < ~/.zen/tmp/${ MOATS } .g1wishes.txt
fi
2023-03-16 14:38:25 +01:00
## REDIRECT TO G1VOEU IPNS ADDRESS
2023-03-26 18:03:42 +02:00
[ [ $LINK = = "" ] ] && LINK = " $myIPFS /ipfs/QmWUZr62SpriLPuqauMbMxvw971qnu741hV8EhrHmKF2Y4 " ## 404 LOST IN CYBERSPACE
2023-03-16 14:38:25 +01:00
echo " #>>> DISPLAY WISHNS >>>> # $VOEU : $LINK "
2023-03-28 19:53:57 +02:00
sed " s~_TWLINK_~ ${ LINK } ~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-27 17:40:05 +02:00
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-16 14:38:25 +01:00
echo "url='" ${ LINK } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
2023-03-16 14:52:50 +01:00
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
2023-03-16 14:38:25 +01:00
) &
exit 0
fi
2023-03-12 22:31:11 +01:00
################################################################################
## QRCODE can be ASTRONAUTENS or G1PUB format
################################################################################
2023-03-26 00:24:25 +01:00
## QRCODE IS IPNS FORMAT : CHANGE .current AND MAKE G1BILLETS
2023-03-27 13:27:57 +02:00
ASTROPATH = $( grep -r $QRCODE ~/.zen/game/players/*/ipfs/moa | tail -n 1 | 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-27 13:27:57 +02:00
PLAYER = $( echo $ASTROPATH | rev | cut -d '/' -f 3 | rev)
2023-03-18 16:01:41 +01:00
2023-03-09 19:42:41 +01:00
rm ~/.zen/game/players/.current
2023-03-27 13:27:57 +02:00
ln -s ~/.zen/game/players/$PLAYER ~/.zen/game/players/.current
echo " LINKING $PLAYER to .current "
#### SELECT PARRAIN "G1PalPay"
2023-03-09 19:42:41 +01:00
2023-03-13 18:50:20 +01:00
echo "#>>>>>>>>>>>> # REDIRECT TO CREATE G1BILLETS"
2023-03-28 19:53:57 +02:00
sed " s~_TWLINK_~ ${ myG1BILLET } ?montant=0\&style= $PLAYER ~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-27 17:40:05 +02:00
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-18 16:01:41 +01:00
echo "url='" ${ myG1BILLET } " ?montant=0\&style= $PLAYER ' " >> ~/.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-16 14:52:50 +01:00
echo " BLURP $PORT " && 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 ? "
2023-03-28 19:53:57 +02:00
echo " AND= $3 THIS= $4 APPNAME= $5 WHAT= $6 OBJ= $7 VAL= $8 MOATS= $9 COOKIE= $10 "
2023-03-13 04:26:59 +01:00
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-28 19:53:57 +02:00
ASTROTOIPFS = $( ${ MY_PATH } /../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-03-28 19:53:57 +02:00
echo "############################################################################"
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)
2023-03-21 17:05:04 +01:00
[ [ $MYPLAYERKEY = = "" ] ] && MYPLAYERKEY = " $HOME /.zen/game/players/.current/secret.dunikey "
2023-03-28 19:53:57 +02:00
echo " SELECTED STATION KEY : $( cat $MYPLAYERKEY | grep 'pub:' ) "
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-28 19:53:57 +02:00
time ${ MY_PATH } /../tools/COINScheck.sh ${ CURG1 } > ~/.zen/tmp/${ MOATS } /curcoin
CURCOINS = $( cat ~/.zen/tmp/${ MOATS } /curcoin | tail -n 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
2023-03-19 15:11:43 +01:00
echo "NULL. PLEASE CHARGE. REDIRECT TO WSTATION HOME"
2023-03-28 19:53:57 +02:00
sed " s~_TWLINK_~ $( cat ~/.zen/tmp/WSTATION) ~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-27 17:40:05 +02:00
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-28 19:53:57 +02:00
echo "url='" ${ myIPFSGW } $( cat ~/.zen/tmp/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
2023-03-19 15:11:43 +01:00
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
2023-03-10 00:57:16 +01:00
) &
exit 0
fi
2023-03-09 19:42:41 +01:00
2023-03-19 15:11:43 +01:00
# DETECT WALLET EVOLUTION
2023-03-10 00:57:16 +01:00
###########################################
2023-03-09 19:42:41 +01:00
if [ [ ${ CURG1 } = = ${ QRCODE } ] ] ; then
2023-03-28 19:53:57 +02:00
echo " ${ HTTPCORS } " > ~/.zen/tmp/${ MOATS } /index.redirect
echo " $CURPLAYER WALLET : $CURCOINS G1 " >> ~/.zen/tmp/${ MOATS } /index.redirect
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
) &
exit 0
2023-03-09 19:42:41 +01:00
else
2023-03-28 19:53:57 +02:00
# ANY VISITOR WALLET
2023-03-10 00:57:16 +01:00
###########################################
2023-03-28 19:53:57 +02:00
## GET VISITOR G1 WALLET AMOUNT : VISITORCOINS
2023-03-19 15:11:43 +01:00
echo " COINScheck : ${ MY_PATH } /../tools/jaklis/jaklis.py balance -p ${ QRCODE } "
2023-03-28 19:53:57 +02:00
VISITORCOINS = $( ${ MY_PATH } /../tools/COINScheck.sh ${ QRCODE } | tail -n 1)
2023-03-29 18:16:32 +02:00
COINSFILE = $HOME /.zen/tmp/coucou/${ QRCODE } .COINS
2023-03-10 00:57:16 +01:00
2023-03-28 19:53:57 +02:00
## EMPTY WALLET ? PREPARE PALPE WELCOME
2023-03-09 19:42:41 +01:00
if [ [ $VISITORCOINS = = "" || $VISITORCOINS = = "null" ] ] ; then
2023-03-23 17:52:52 +01:00
# REGLER "DUREE DE VIE" : PALPE / WISH_NB / DAY
PALPE = 10
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-29 18:16:32 +02:00
if [ ${ VISITORCOINS } -gt 0 ] ; then
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .g1history.json ] ] \
&& ${ MY_PATH } /../tools/timeout.sh -t 20 $MY_PATH /../tools/jaklis/jaklis.py history -p ${ QRCODE } -j > ~/.zen/tmp/coucou/${ QRCODE } .g1history.json
echo " ${ HTTPCORS } " > ~/.zen/tmp/${ MOATS } /index.redirect
cat ~/.zen/tmp/coucou/${ QRCODE } .g1history.json >> ~/.zen/tmp/${ MOATS } /index.redirect
(
cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
) &
exit 0
fi
2023-03-09 19:42:41 +01:00
2023-03-19 15:11:43 +01:00
## SCAN GCHANGE +
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .gchange.json ] ] \
2023-03-28 19:53:57 +02:00
&& ${ MY_PATH } /../tools/timeout.sh -t 20 curl -s ${ myDATA } /user/profile/${ QRCODE } > ~/.zen/tmp/coucou/${ QRCODE } .gchange.json &
2023-03-13 18:50:20 +01:00
GFOUND = $( cat ~/.zen/tmp/coucou/${ QRCODE } .gchange.json | jq -r '.found' )
2023-03-28 19:53:57 +02:00
echo " FOUND IN GCHANGE+ ? $GFOUND "
if [ [ $GFOUND = = "false" ] ] ; then
echo "NO GCHANGE YET. REDIRECT"
sed " s~_TWLINK_~ ${ myGCHANGE } ~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ myGCHANGE } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
exit 0
else
echo " ~/.zen/tmp/coucou/ ${ QRCODE } .gchange.json CHECK "
fi
2023-03-10 00:57:16 +01:00
2023-03-27 13:27:57 +02:00
## SCAN CESIUM +
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .gplus.json ] ] \
2023-03-28 19:53:57 +02:00
&& ${ MY_PATH } /../tools/timeout.sh -t 10 curl -s ${ myCESIUM } /user/profile/${ QRCODE } > ~/.zen/tmp/coucou/${ QRCODE } .gplus.json 2>/dev/null &
2023-03-13 18:50:20 +01:00
2023-03-21 17:05:04 +01:00
GCFOUND = $( cat ~/.zen/tmp/coucou/${ QRCODE } .gplus.json | jq -r '.found' )
2023-03-28 19:53:57 +02:00
echo " FOUND IN CESIUM+ ? $GCFOUND "
if [ [ $GCFOUND = = "false" ] ] ; then
echo "PAS DE COMPTE CESIUM POUR CETTE CLEF GCHANGE"
sed " s~_TWLINK_~https://demo.cesium.app/#/app/wot/ $QRCODE /~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ myASTRONEF } "'" >> ~/.zen/tmp/${ MOATS } /index.redirect
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
exit 0
else
echo " ~/.zen/tmp/coucou/ ${ QRCODE } .gplus.json CHECK "
fi
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"
2023-03-28 19:53:57 +02:00
CPLUS = $( cat ~/.zen/tmp/coucou/${ QRCODE } .gchange.json | jq -r '._source.pubkey' 2>/dev/null)
echo " CPLUS= $CPLUS "
2023-03-13 18:50:20 +01:00
## SCAN GPUB CESIUM +
2023-03-28 19:53:57 +02:00
##### DO WE HAVE A DIFFERENT KEY LINKED TO GCHANGE ??
if [ [ $CPLUS != "" && $CPLUS != 'null' && $CPLUS != $QRCODE ] ] ; then
2023-03-09 19:42:41 +01:00
2023-03-28 19:53:57 +02:00
## SCAN FOR CPLUS CESIUM + ACCOUNT
2023-03-13 18:50:20 +01:00
[ [ ! -s ~/.zen/tmp/coucou/${ QRCODE } .cplus.json ] ] \
2023-03-28 19:53:57 +02:00
&& ${ MY_PATH } /../tools/timeout.sh -t 10 curl -s ${ myCESIUM } /user/profile/${ CPLUS } > ~/.zen/tmp/coucou/${ QRCODE } .cplus.json 2>/dev/null &
2023-03-13 18:50:20 +01:00
CCFOUND = $( cat ~/.zen/tmp/coucou/${ QRCODE } .cplus.json | jq -r '.found' )
2023-03-09 19:42:41 +01:00
2023-03-28 19:53:57 +02:00
if [ [ $CCFOUND = = "false" ] ] ; then
echo "AUCUN CCPLUS : MEMBRE LIE"
sed "s~_TWLINK_~https://monnaie-libre.fr~g" ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
( cat ~/.zen/tmp/${ MOATS } /index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1) &
exit 0
else
## MESSAGE TO LINKED CESIUM WALLET
$MY_PATH /../tools/jaklis/jaklis.py -n $myCESIUM -k $MYPLAYERKEY send -d " ${ CPLUS } " -t "COUCOU" \
-m " VOTRE PORTEFEUILLE ${ QRCODE } A ETE SCANNE PAR $myASTROPORT - IL CONTIENT ${ VISITORCOINS } G1 - "
fi
2023-03-09 19:42:41 +01:00
fi
2023-03-10 00:57:16 +01:00
## DOES CURRENT IS RICHER THAN 100 G1
2023-03-28 20:15:47 +02:00
if [ [ $CURCOINS -gt 100 && $PALPE != 0 ] ] ; then
2023-03-10 00:57:16 +01:00
## LE COMPTE VISITOR EST VIDE
echo " ## PARRAIN $CURPLAYER SEND $PALPE TO ${ QRCODE } "
## G1 PAYEMENT
2023-03-28 20:15:47 +02:00
$MY_PATH /../tools/jaklis/jaklis.py \
-k ~/.zen/game/players/.current/secret.dunikey pay \
2023-03-31 17:47:28 +02:00
-a ${ PALPE } -p ${ QRCODE } -c "ASTRO:BRO:" -m
2023-03-10 00:57:16 +01:00
## MESSAGE CESIUM +
2023-03-28 20:15:47 +02:00
$MY_PATH /../tools/jaklis/jaklis.py \
-n $myCESIUM -k $MYPLAYERKEY send \
-d " ${ QRCODE } " -t "CADEAU" \
-m " DE LA PART DE ${ CURPLAYER } : ${ PALPE } JUNE. "
2023-03-10 00:57:16 +01:00
2023-03-23 17:52:52 +01:00
## SEND ONE ★ (NEXT STEP GCHANGE)
my_star_level = 1
echo " ★ SENDING $my_star_level STAR(s) ★ "
2023-03-28 19:53:57 +02:00
$MY_PATH /../tools/jaklis/jaklis.py -k ~/.zen/game/players/.current/secret.dunikey stars -p ${ QRCODE } -n $my_star_level
2023-03-23 17:52:52 +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
2023-03-10 16:13:44 +01:00
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
2023-03-19 15:11:43 +01:00
## INSERT IN TW
2023-01-02 22:21:16 +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 & ) && 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