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-04-04 14:54:22 +02:00
echo " PORT= $1 THAT= $2 AND= $3 THIS= $4 APPNAME= $5 WHAT= $6 OBJ= $7 VAL= $8 MOATS= $9 COOKIE= $10 "
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-04-15 00:11:57 +02:00
2023-04-20 04:45:37 +02:00
################################################################################
## QRCODE IS HTTP LINK
###############################################################################
2023-04-15 00:11:57 +02:00
if [ [ ${ QRCODE : 0 : 4 } = = "http" ] ] ; then
## THIS IS A WEB LINK
sed " s~_TWLINK_~ ${ QRCODE } /~g " ${ MY_PATH } /../templates/index.302 > ~/.zen/tmp/${ MOATS } /index.redirect
sed -i " s~Set-Cookie*~Set-Cookie: $COOKIE ~ " ~/.zen/tmp/${ MOATS } /index.redirect
echo "url='" ${ QRCODE } "'" >> ~/.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-12 22:31:11 +01:00
################################################################################
2023-04-20 04:45:37 +02:00
## QRCODE="station" : 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-04-20 19:16:10 +02:00
# Keep 2nd try of the day
[ [ ! -s ~/.zen/tmp/_ISTATION ] ] \
&& mv ~/.zen/tmp/ISTATION ~/.zen/tmp/_ISTATION \
|| cp ~/.zen/tmp/_ISTATION ~/.zen/tmp/ISTATION
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
2023-04-15 15:04:00 +02:00
[ [ ! $isLAN ] ] && sed -i "s~MENU~DEMO~g" ~/.zen/tmp/${ MOATS } /index.htm
2023-03-10 17:33:56 +01:00
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
################################################################################
2023-04-20 04:45:37 +02:00
## QRCODE = PGP ENCRYPTED STRING
2023-04-04 14:54:22 +02:00
# /?qrcode=-----BEGIN%20PGP%20MESSAGE-----~~jA0ECQMC5iqIY7XLnGn_0koBJB5S2Sy1p%2FHr8CKFgWdZ9_j%2Fb2qdOznICGvqGCXY~7Flw6YtiabngvY6biq%2F0vpiFL8t8BSbMZe0GLBU90EMBrhzEiyPnh__bzQ%3D%3D~%3D9UIj~-----END%20PGP%20MESSAGE-----~
2023-04-19 22:57:23 +02:00
# &pass=coucou&history/read/pay/login=(1|email)&g1pub=_DESTINATAIRE_
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-04-20 19:16:10 +02:00
echo " ## THIS IS A PGP ENCRYPTED QRCODE LOOK - PASS ${ PASS } - $APPNAME "
if [ [ ${ PASS } != "" ] ] ; then
echo " WHAT= ${ WHAT } VAL= ${ VAL } "
2023-03-27 17:26:19 +02:00
2023-04-08 12:18:27 +02:00
## Recreate GPG aes file
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-04-08 12:18:27 +02:00
# Decoding
2023-04-20 19:16:10 +02:00
echo " cat ~/.zen/tmp/ ${ MOATS } /disco.aes | gpg -d --passphrase " ${ PASS } " --batch"
cat ~/.zen/tmp/${ MOATS } /disco.aes | gpg -d --passphrase " ${ PASS } " --batch > ~/.zen/tmp/${ MOATS } /decoded
2023-04-01 19:27:36 +02:00
2023-03-28 19:53:57 +02:00
# cat ~/.zen/tmp/${MOATS}/disco
2023-04-08 12:18:27 +02:00
## FORMAT IS "/?salt=${USALT}&pepper=${UPEPPER}"
DISCO = $( cat ~/.zen/tmp/${ MOATS } /decoded | cut -d '?' -f2)
2023-03-27 20:06:48 +02:00
arr = ( ${ DISCO //[=&]/ } )
2023-04-08 15:37:28 +02:00
s = $( urldecode ${ arr [0] } | xargs)
2023-03-27 20:06:48 +02:00
salt = $( urldecode ${ arr [1] } | xargs)
2023-04-08 15:37:28 +02:00
p = $( urldecode ${ arr [2] } | xargs)
2023-03-27 20:06:48 +02:00
pepper = $( urldecode ${ arr [3] } | xargs)
2023-04-15 00:11:57 +02:00
echo " $HTTPCORS " > ~/.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
2023-04-19 22:57:23 +02:00
[ [ ${ VAL } = = "" || ${ VAL } = = "undefined" ] ] && echo "<br> Missing Destination PublicKey <br>" >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 20:53:11 +02:00
2023-04-20 03:56:28 +02:00
## GET DESTINATION ACCOUNT AMOUNT
DESTM = $( ${ MY_PATH } /../tools/COINScheck.sh ${ VAL } | tail -n 1)
2023-03-31 18:49:40 +02:00
if [ [ $APPNAME = = "pay" ] ] ; then
2023-04-21 04:00:19 +02:00
if [ [ ${ WHAT } != "" && ${ VAL } != "" && ${ CURCOINS } != "null" && ${ CURCOINS } != "" && ${ CURCOINS } -gt ${ WHAT } ] ] ; then
2023-03-31 18:49:40 +02:00
## COMMAND A PAYMENT
if [ [ $WHAT = ~ ^[ 0-9] +$ ] ] ; then
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/ ${ MOATS } /secret.key pay -a ${ WHAT } -p ${ VAL } -c 'ASTRO:Bro' -m "
2023-04-20 03:56:28 +02:00
${ MY_PATH } /../tools/timeout.sh -t 5 \
2023-04-21 04:00:19 +02:00
${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/${ MOATS } /secret.key pay -a ${ WHAT } -p ${ VAL } -c " G1PASS: ${ MOATS } " -m 2>& 1 >> ~/.zen/tmp/${ MOATS } /disco
2023-04-20 03:56:28 +02:00
#################################### SYSTEM IS NOT DUNITER OVER POOL RESISTANT
2023-03-31 18:49:40 +02:00
if [ $? = = 0 ] ; then
2023-04-20 03:56:28 +02:00
## TODO : MEMORIZE TX TO VERIFY ASTRO/DUNITER SYNC
2023-04-14 23:18:04 +02:00
COINSFILE = " $HOME /.zen/tmp/coucou/ ${ G1PUB } .COINS "
2023-04-20 03:56:28 +02:00
DESTFILE = " $HOME /.zen/tmp/coucou/ ${ VAL } .COINS "
2023-04-21 04:00:19 +02:00
CUR = $( cat ${ COINSFILE } )
2023-03-31 18:49:40 +02:00
[ [ ${ CUR } != "" && ${ CUR } != "null" ] ] \
2023-04-21 04:00:19 +02:00
&& echo $(( CUR-WHAT)) > ${ COINSFILE } \
|| echo ${ WHAT } > ${ COINSFILE }
cat ${ COINSFILE }
2023-04-20 03:56:28 +02:00
DES = $( cat ${ DESTFILE } )
[ [ ${ DES } != "" && ${ DES } != "null" ] ] \
&& echo $(( DES+WHAT)) > ${ DESTFILE } \
|| echo ${ WHAT } > ${ DESTFILE }
cat ${ DESTFILE }
2023-04-21 04:00:19 +02:00
echo " <h1>OPERATION</h1> <h3> $G1PUB <br> $CUR - ${ WHAT } </h3> <h3> ${ VAL } <br> $DES + ${ WHAT } </h3><h2>OK</h2> " >> ~/.zen/tmp/${ MOATS } /disco
2023-04-20 03:56:28 +02:00
2023-03-31 18:49:40 +02:00
fi
2023-03-28 19:53:57 +02:00
fi
2023-03-31 18:49:40 +02:00
else
2023-04-15 00:11:57 +02:00
echo " <h2> ${ WHAT } ${ VAL } ${ CURCOINS } PROBLEM</h2> " >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 20:06:48 +02:00
fi
2023-03-31 18:49:40 +02:00
2023-04-19 22:57:23 +02:00
fi
2023-04-20 04:45:37 +02:00
if [ [ $APPNAME = = "history" || $APPNAME = = "read" ] ] ; then
2023-04-19 22:57:23 +02:00
2023-04-20 19:16:10 +02:00
## history & read ## CANNOT USE jaklis CLI formated output (JSON output)
echo " $HTTPCORS " > ~/.zen/tmp/${ MOATS } /disco
sed -i "s~text/html~application/json~g" ~/.zen/tmp/${ MOATS } /disco
2023-04-19 22:57:23 +02:00
# cp ~/.zen/tmp/${MOATS}/secret.key ~/.zen/tmp/
2023-04-01 19:27:36 +02:00
echo " ${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/secret.key $APPNAME -j "
2023-04-20 19:16:10 +02:00
${ MY_PATH } /../tools/jaklis/jaklis.py -k ~/.zen/tmp/${ MOATS } /secret.key $APPNAME -j >> ~/.zen/tmp/${ MOATS } /disco
fi
if [ [ $APPNAME = = "balance" ] ] ; then
## history & read
# cp ~/.zen/tmp/${MOATS}/secret.key ~/.zen/tmp/
qrencode -s 6 -o " ${ HOME } /.zen/tmp/ ${ MOATS } /disco.qr.png " " $G1PUB "
QRURL = ${ myIPFS } /ipfs/$( ipfs add -q ~/.zen/tmp/${ MOATS } /disco.qr.png)
ONVADIRE = " <h1> ~ ${ CURCOINS } Ğ1</h1> ${ G1PUB } <br><br><img src= ${ QRURL } /> "
echo " ${ ONVADIRE } " >> ~/.zen/tmp/${ MOATS } /disco
2023-03-27 20:06:48 +02:00
2023-03-27 20:53:11 +02:00
fi
2023-03-31 18:49:40 +02:00
2023-04-19 22:57:23 +02:00
if [ [ $APPNAME = = "login" ] ] ; then
PLAYER = ${ WHAT }
ISTHERE = $( ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1)
echo " IS THERE ? $ISTHERE "
[ [ ${ ISTHERE } = = "" ] ] \
&& ipfs key import ${ PLAYER } -f pem-pkcs8-cleartext ~/.zen/tmp/coucou/${ MOATS } .${ G1PUB } .ipns.key \
&& ASTRONAUTENS = $( ipfs key list -l | grep -w $PLAYER | cut -d ' ' -f1) \
|| ASTRONAUTENS = ${ ISTHERE }
REPLACE = ${ myIPFS } /ipns/${ ASTRONAUTENS }
echo " ${ PLAYER } LOGIN - TW : ${ REPLACE } "
sed " s~_TWLINK_~ ${ REPLACE } ~g " ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/coucou/${ MOATS } .index.redirect
echo "url='" ${ REPLACE } "'" >> ~/.zen/tmp/coucou/${ MOATS } .index.redirect
(
cat ~/.zen/tmp/coucou/${ MOATS } .index.redirect | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
echo "BLURP " && rm ~/.zen/tmp/coucou/${ MOATS } *
[ [ ${ ISTHERE } = = "" ] ] && sleep 3600 && echo " ${ PLAYER } SESSION OVER " && ipfs key rm ${ PLAYER } ## 1 HOUR SESSION
) &
exit 0
fi
2023-03-27 20:06:48 +02:00
else
2023-04-20 19:16:10 +02:00
echo " <br><h1> ${ PASS } : MAUVAIS PASS</h1> " >> ~/.zen/tmp/${ MOATS } /disco
2023-04-15 00:11:57 +02:00
echo "<br><img src='http://127.0.0.1:8080/ipfs/QmVnQ3GkQjNeXw9qM7Fb1TFzwwxqRMqD9AQyHfgx47rNdQ/your-own-data-cloud.svg' />" >> ~/.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
2023-03-26 00:24:25 +01:00
(
2023-04-20 04:45:37 +02:00
cat ~/.zen/tmp/${ MOATS } /disco | nc -l -p ${ PORT } -q 1 > /dev/null 2>& 1
2023-04-15 00:11:57 +02:00
echo " BLURP $PORT " && rm -Rf ~/.zen/tmp/${ MOATS }
2023-03-26 00:24:25 +01:00
) &
exit 0
2023-04-20 03:56:28 +02:00
2023-03-26 00:24:25 +01:00
fi
2023-03-16 14:38:25 +01:00
################################################################################
2023-04-20 04:45:37 +02:00
## QRCODE = G1* : MODE G1VOEU : RETURN WISHNS - IPNS App link - or direct tw tag selected json
2023-04-04 14:54:22 +02:00
# ~/?qrcode=G1VoeuTag&tw=_IPNS_PLAYER_(&json)
2023-03-16 14:38:25 +01:00
################################################################################
if [ [ ${ QRCODE : 0 : 2 } = = "G1" && ${ AND } = = "tw" ] ] ; then
2023-04-04 14:54:22 +02:00
2023-03-16 14:38:25 +01:00
VOEU = ${ QRCODE }
2023-04-14 22:23:42 +02:00
ASTROPATH = $( grep -r ${ THIS } ~/.zen/game/players/*/ipfs/moa | grep ${ QRCODE } | tail -n 1 | 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
2023-04-04 14:54:22 +02:00
2023-04-10 20:42:26 +02:00
if [ [ ${ APPNAME } = = "json" ] ] ; then
2023-04-04 14:54:22 +02:00
##############################################
2023-04-04 15:43:32 +02:00
echo " DIRECT Tag = ${ QRCODE : 2 } OUTPUT "
2023-04-04 14:54:22 +02:00
## DIRECT JSON OUTPUT
tiddlywiki --load ${ INDEX } --output ~/.zen/tmp/${ MOATS } \
2023-04-04 15:43:32 +02:00
--render '.' "g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[' ${ QRCODE : 2 } ']]'
2023-04-04 14:54:22 +02:00
echo " $HTTPCORS " > ~/.zen/tmp/${ MOATS } /index.redirect
sed -i "s~text/html~application/json~g" ~/.zen/tmp/${ MOATS } /index.redirect
cat ~/.zen/tmp/${ MOATS } /g1voeu.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
##############################################
echo "## IPNS G1Voeu APP REDIRECT"
2023-03-26 18:03:42 +02:00
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
2023-04-14 22:23:42 +02:00
cat ~/.zen/tmp/${ MOATS } .g1wishes.txt
2023-03-26 18:03:42 +02:00
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
2023-04-04 14:54:22 +02:00
2023-03-26 18:03:42 +02:00
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
################################################################################
2023-04-20 04:45:37 +02:00
## QRCODE = IPNS or G1PUB ? Can be ASTRONAUTENS or G1PUB format
2023-03-12 22:31:11 +01:00
################################################################################
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-04-20 04:45:37 +02:00
## TEST G1 TYPE ( should convert to ipfs )
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-04-20 04:45:37 +02:00
2023-04-21 04:48:49 +02:00
## GET VISITOR G1 WALLET AMOUNT : VISITORCOINS
echo " COINScheck : ${ MY_PATH } /../tools/jaklis/jaklis.py balance -p ${ QRCODE } "
VISITORCOINS = $( ${ MY_PATH } /../tools/COINScheck.sh ${ QRCODE } | tail -n 1)
COINSFILE = $HOME /.zen/tmp/coucou/${ QRCODE } .COINS
2023-04-20 04:45:37 +02:00
###########################################################
## SEARCH IF G1PUB IS IN PLAYERS OTHERWISE CHOOSE CURRENT SECRET
##########################################################
2023-02-20 19:30:15 +01:00
MYPLAYERKEY = $( grep ${ QRCODE } ~/.zen/game/players/*/secret.dunikey | cut -d ':' -f 1)
2023-04-20 03:56:28 +02:00
[ [ ${ MYPLAYERKEY } = = "" ] ] && MYPLAYERKEY = " $HOME /.zen/game/players/.current/secret.dunikey "
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-04-20 04:45:37 +02:00
## AUTOGRAPH FROM CURRENT
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-04-20 04:45:37 +02:00
CURCOINS = $( ${ MY_PATH } /../tools/COINScheck.sh ${ CURG1 } | tail -n 1)
2023-04-21 04:18:26 +02:00
echo " AUTOGRAPH $CURPLAYER : $CURCOINS G1 "
2023-03-09 19:42:41 +01:00
2023-04-20 04:45:37 +02:00
## WALLET VIERGE
2023-03-10 00:57:16 +01:00
###########################################
2023-04-21 04:48:49 +02:00
if [ [ $VISITORCOINS = = "null" || $CURCOINS = = "null" ] ] ; then
2023-04-20 04:45:37 +02:00
2023-04-21 04:48:49 +02:00
echo "NULL. PLEASE CHARGE. OR CHECK STATION"
2023-04-20 04:45:37 +02:00
2023-04-21 04:18:26 +02:00
echo " ${ HTTPCORS } " > ~/.zen/tmp/${ MOATS } /index.redirect
2023-04-21 04:53:56 +02:00
echo " <h1>SCAN $VISITORCOINS Ǧ1 (CURRENT $CURCOINS Ǧ1)</h1>
... Any problem? Contact <a href = 'mailto:support@qo-op.com' >support</a>
( $myHOST ) " >> ~/.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
2023-04-20 04:45:37 +02:00
2023-03-10 00:57:16 +01:00
fi
2023-03-09 19:42:41 +01:00
2023-04-20 04:45:37 +02:00
# DETECT TO REWARD IN REGARD TO WALLET EVOLUTION
########################################### G1 PRICE : null 1 + gchange 10 + cesium 50
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
2023-04-15 00:11:57 +02:00
echo " <h1> $CURPLAYER WALLET : $CURCOINS Ǧ1</h1> " >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-28 19:53:57 +02: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
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
## EMPTY WALLET ? PREPARE PALPE WELCOME
2023-04-20 03:56:28 +02:00
if [ [ $VISITORCOINS = = "null" ] ] ; then
2023-04-04 14:54:22 +02:00
# CADEAU DE 10 JUNE (Si le .current en a plus que 100)
2023-04-19 19:18:13 +02:00
PALPE = 1
echo "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-04-10 13:22:53 +02:00
if [ [ ${ VISITORCOINS } != "null" && ${ VISITORCOINS } -gt 0 ] ] ; then
2023-03-29 18:16:32 +02:00
[ [ ! -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
2023-04-15 00:11:57 +02:00
2023-03-29 18:16:32 +02:00
echo " ${ HTTPCORS } " > ~/.zen/tmp/${ MOATS } /index.redirect
2023-04-15 00:11:57 +02:00
echo " <h1>Solde $VISITORCOINS Ǧ1</h1> " >> ~/.zen/tmp/${ MOATS } /index.redirect
echo "<h2><a target=_blank href=" $myIPFS /ipfs/$( ipfs add -q ~/.zen/tmp/coucou/${ QRCODE } .g1history.json) " >HISTORIQUE ${ QRCODE } </a></h2> " >> ~/.zen/tmp/${ MOATS } /index.redirect
2023-03-29 18:16:32 +02: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-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
2023-04-20 04:45:37 +02:00
[ [ $VISITORCOINS = = "null" ] ] && PALPE = 10 \
&& echo " ~/.zen/tmp/coucou/ ${ QRCODE } .gchange.json CHECK : PALPE=10 "
2023-03-28 19:53:57 +02:00
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
2023-04-20 04:45:37 +02:00
[ [ $VISITORCOINS = = "null" ] ] && PALPE = 50 \
&& echo " ~/.zen/tmp/coucou/ ${ QRCODE } .gplus.json CHECK : PALPE=50 "
2023-03-28 19:53:57 +02:00
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
2023-04-20 03:56:28 +02:00
$MY_PATH /../tools/jaklis/jaklis.py -n $myCESIUM -k ${ MYPLAYERKEY } send -d " ${ CPLUS } " -t "COUCOU" \
2023-03-28 19:53:57 +02:00
-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-04-19 19:18:13 +02:00
## IF GCHANGE ACCOUNT FOUND => SEND PALPE JUNE.
2023-04-21 04:00:19 +02:00
# SEND MESSAGE TO GCHANGE MESSAGING. SEND 5 ★
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
2023-04-20 04:45:37 +02:00
echo " ## AUTOGRAPH $CURPLAYER SEND $PALPE TO ${ QRCODE } "
2023-03-10 00:57:16 +01:00
## G1 PAYEMENT
2023-03-28 20:15:47 +02:00
$MY_PATH /../tools/jaklis/jaklis.py \
2023-04-20 03:56:28 +02:00
-k ${ MYPLAYERKEY } pay \
-a ${ PALPE } -p ${ QRCODE } -c "ASTRO:WELCOME: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 \
2023-04-20 03:56:28 +02:00
-n $myCESIUM -k ${ MYPLAYERKEY } send \
2023-03-28 20:15:47 +02:00
-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)
2023-04-21 04:00:19 +02:00
[ $PALPE -ge 1 ] && my_star_level = 1
[ $PALPE -lt 50 ] && my_star_level = 3
[ $PALPE -ge 50 ] && my_star_level = 5
2023-03-23 17:52:52 +01:00
echo " ★ SENDING $my_star_level STAR(s) ★ "
2023-04-20 03:56:28 +02:00
$MY_PATH /../tools/jaklis/jaklis.py -k ${ MYPLAYERKEY } 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