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-05-01 03:50:19 +02:00
|
|
|
echo "PORT=$1
|
|
|
|
THAT=$2
|
|
|
|
AND=$3
|
|
|
|
THIS=$4
|
|
|
|
APPNAME=$5
|
|
|
|
WHAT=$6
|
|
|
|
OBJ=$7
|
|
|
|
VAL=$8
|
|
|
|
MOATS=$9
|
|
|
|
COOKIE=$10"
|
|
|
|
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
|
2023-07-03 02:45:25 +02:00
|
|
|
QRCODE=$(echo "$THAT" | cut -d ':' -f 1) # G1nkgo compatible
|
2023-03-27 17:26:19 +02:00
|
|
|
|
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
|
|
|
################################################################################
|
2023-04-30 15:24:29 +02:00
|
|
|
## QRCODE IS HTTP LINK REDIRECT TO
|
2023-04-20 04:45:37 +02:00
|
|
|
###############################################################################
|
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-09-10 00:07:00 +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-05-13 13:53:39 +02:00
|
|
|
sed -i "s~http://127.0.0.1:33101~${myG1BILLET}~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-05-01 03:50:19 +02:00
|
|
|
# /?qrcode=-----BEGIN%20PGP%20MESSAGE-----~~jA0ECQMC5iq8 [ ......... ] _Q%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-04-24 20:53:44 +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-07-03 02:55:15 +02:00
|
|
|
VAL=$(echo "$VAL" | cut -d ':' -f 1)
|
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
|
|
|
|
|
2023-07-03 03:04:45 +02:00
|
|
|
echo "${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c 'G1CARD:${MOATS}' -m"
|
2023-04-20 03:56:28 +02:00
|
|
|
${MY_PATH}/../tools/timeout.sh -t 5 \
|
2023-07-03 03:04:45 +02:00
|
|
|
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c "G1CARD:${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-07-06 17:06:09 +02:00
|
|
|
## VERIFY AND INFORM OR CONFIRM PAYMENT
|
|
|
|
|
2023-05-01 03:50: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/
|
2023-05-01 03:50:19 +02:00
|
|
|
qrencode -s 6 -o "${HOME}/.zen/tmp/${MOATS}/disco.qr.png" "${G1PUB}"
|
2023-04-20 19:16:10 +02:00
|
|
|
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-23 02:00:34 +02:00
|
|
|
if [[ $APPNAME == "friend" ]]; then
|
|
|
|
## Send ॐ★ॐ
|
|
|
|
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key stars -p ${VAL} -n ${WHAT} >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
2023-09-04 00:24:43 +02:00
|
|
|
##############################################
|
|
|
|
# LOGIN / LOGOUT
|
|
|
|
##############################################
|
|
|
|
if [[ $APPNAME == "logout" ]]; then
|
|
|
|
|
|
|
|
## REMOVE PLAYER IPNS KEY FROM STATION
|
|
|
|
PLAYER=${WHAT}
|
|
|
|
echo "<h1>$PLAYER LOGOUT OK</h1>" > ~/.zen/tmp/coucou/${MOATS}.log
|
|
|
|
|
|
|
|
ipfs key rm ${G1PUB} >> ~/.zen/tmp/coucou/${MOATS}.log
|
|
|
|
ipfs key rm ${PLAYER} >> ~/.zen/tmp/coucou/${MOATS}.log
|
|
|
|
|
|
|
|
echo "$HTTPCORS $(cat ~/.zen/tmp/coucou/${MOATS}.log)"| nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
|
|
|
end=`date +%s`
|
|
|
|
echo $APPNAME "(☉_☉ ) Execution time was "`expr $end - $start` seconds.
|
|
|
|
rm ~/.zen/tmp/coucou/${MOATS}.*
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
2023-04-19 22:57:23 +02:00
|
|
|
if [[ $APPNAME == "login" ]]; then
|
|
|
|
|
|
|
|
PLAYER=${WHAT}
|
2023-04-24 20:53:44 +02:00
|
|
|
ISTHERE=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
|
2023-04-19 22:57:23 +02:00
|
|
|
echo "IS THERE ? $ISTHERE"
|
|
|
|
[[ ${ISTHERE} == "" ]] \
|
2023-04-24 20:53:44 +02:00
|
|
|
&& ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/secret.ipns "$salt" "$pepper" \
|
|
|
|
&& ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/secret.ipns \
|
|
|
|
&& ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) \
|
2023-04-19 22:57:23 +02:00
|
|
|
|| ASTRONAUTENS=${ISTHERE}
|
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
( ## 1 HOUR SESSION
|
2023-04-25 14:50:40 +02:00
|
|
|
[[ ${ISTHERE} == "" ]] && echo "${PLAYER} SESSION START" && sleep 3600 && echo "${PLAYER} SESSION END" && ipfs key rm ${PLAYER}
|
2023-04-24 20:53:44 +02:00
|
|
|
) &
|
|
|
|
|
2023-04-19 22:57:23 +02:00
|
|
|
REPLACE=${myIPFS}/ipns/${ASTRONAUTENS}
|
|
|
|
echo "${PLAYER} LOGIN - TW : ${REPLACE}"
|
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
sed "s~_TWLINK_~${REPLACE}~g" ~/.zen/Astroport.ONE/templates/index.302 > ~/.zen/tmp/${MOATS}.index.redirect
|
|
|
|
echo "url='"${REPLACE}"'" >> ~/.zen/tmp/${MOATS}.index.redirect
|
2023-04-19 22:57:23 +02:00
|
|
|
(
|
2023-04-24 20:53:44 +02:00
|
|
|
cat ~/.zen/tmp/${MOATS}.index.redirect | nc -l -p ${PORT} -q 1 > /dev/null 2>&1
|
|
|
|
echo "BLURP " && rm -Rf ~/.zen/tmp/${MOATS} && rm ~/.zen/tmp/coucou/${MOATS}*
|
2023-04-19 22:57:23 +02:00
|
|
|
) &
|
|
|
|
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-05-01 03:50:19 +02:00
|
|
|
################################################################################
|
|
|
|
## QRCODE = G1Milgram G1Missive PGP ENCRYPTED STRING
|
|
|
|
# /?qrcode=@@@@@BEGIN%20PGP%20MESSAGE@@@@@~~jA0ECQM...............
|
|
|
|
# &pass=YYYYMM&milgram=NEWLINE&email=DESTMAIL
|
|
|
|
################################################################################
|
|
|
|
if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
|
|
|
PASS=$(urldecode ${THIS})
|
|
|
|
NEWLINE=$(urldecode ${WHAT})
|
|
|
|
DESTMAIL=$(urldecode ${VAL,,}) # lowercase
|
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
echo "## G1BILLET+ - @PASS ${PASS} - $APPNAME"
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
if [[ ${PASS} != "" ]]; then
|
|
|
|
|
|
|
|
## Recreate GPG aes file
|
|
|
|
urldecode ${QRCODE} | tr '_' '+' | tr '-' '\n' | tr '@' '-' > ~/.zen/tmp/${MOATS}/disco.aes
|
|
|
|
sed -i '$ d' ~/.zen/tmp/${MOATS}/disco.aes
|
|
|
|
# Decoding
|
|
|
|
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
|
|
|
|
|
|
|
|
if [[ ! -s ~/.zen/tmp/${MOATS}/decoded ]]; then
|
2023-05-06 02:35:06 +02:00
|
|
|
## COULD BE ONE MONTH OLDER (TODO CHOOSE VALIDITY TIME TO MOVE)
|
2023-05-01 03:50:19 +02:00
|
|
|
UPASS=$(date -d "1 month ago" +"%Y%m")
|
|
|
|
cat ~/.zen/tmp/${MOATS}/disco.aes | gpg -d --passphrase "${UPASS}" --batch > ~/.zen/tmp/${MOATS}/decoded
|
|
|
|
fi
|
|
|
|
|
|
|
|
# cat ~/.zen/tmp/${MOATS}/disco
|
|
|
|
## FORMAT IS "/?salt=${USALT}&pepper=${UPEPPER}"
|
2023-05-06 02:35:06 +02:00
|
|
|
## MADE by tools/VOEUX.print.sh WITH USALT="EMAIL(_SEC1_SEC2)" UPEPPER="G1VoeuName OriG1PUB"
|
2023-05-01 03:50:19 +02:00
|
|
|
DISCO=$(cat ~/.zen/tmp/${MOATS}/decoded | cut -d '?' -f2)
|
|
|
|
arr=(${DISCO//[=&]/ })
|
|
|
|
s=$(urldecode ${arr[0]} | xargs)
|
|
|
|
salt=$(urldecode ${arr[1]} | xargs)
|
|
|
|
p=$(urldecode ${arr[2]} | xargs)
|
|
|
|
pepper=$(urldecode ${arr[3]} | xargs)
|
|
|
|
|
|
|
|
echo "$HTTPCORS" > ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
if [[ ${salt} != "" && ${pepper} != "" ]]; then
|
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
echo "secret1=$salt" ## CONTAINS "EMAIL(_SEC1_SEC2)"
|
|
|
|
player=$(echo $salt | cut -d '_' -f 1 | cut -d ' ' -f 1 | grep '@')
|
|
|
|
echo "player=$player"
|
|
|
|
|
|
|
|
# # G1BILLET+ interlinked ? ##
|
|
|
|
[[ $(echo "$salt" | grep '_') ]] \
|
|
|
|
&& echo "G1BILLET+ interlinked : salt pepper refining" \
|
|
|
|
&& murge=($(echo $salt | cut -d '_' -f 2- | sed 's/_/ /g' | xargs)) \
|
|
|
|
&& echo "${#murge[@]} dice words" && i=$(( ${#murge[@]} / 2 )) && i=$(( i + 1 )) \
|
|
|
|
&& extra1=$(echo "${murge[@]}" | rev | cut -d ' ' -f $i- | rev) \
|
|
|
|
&& extra2=$(echo "${murge[@]}" | cut -d ' ' -f $i-) \
|
|
|
|
&& VoeuName="G1BILLET+" \
|
|
|
|
&& billkeyname=$(echo "${extra1} ${extra2}" | sha512sum | awk '{print $1}')
|
|
|
|
|
|
|
|
echo "salt=$salt" ## CONTAINS "EMAIL"
|
|
|
|
echo "pepper=$pepper" ## CONTAINS "G1VoeuName ORIGING1PUB" or G1BILLET+ secret2
|
|
|
|
|
|
|
|
[[ ${pepper:0:2} == "G1" ]] \
|
|
|
|
&& VoeuName=$(echo $pepper | cut -d ' ' -f 1 | cut -c 3-) \
|
|
|
|
&& PLAYERORIG1=$(echo $pepper | rev | cut -d ' ' -f 1 | rev) \
|
|
|
|
&& echo "$VoeuName $PLAYERORIG1 @PASS"
|
|
|
|
|
|
|
|
## CHECK PLAYERORIG1 WALLETS
|
|
|
|
echo "${MY_PATH}/../tools/jaklis/jaklis.py balance -p ${PLAYERORIG1}"
|
|
|
|
PLAYERCOINS=$(${MY_PATH}/../tools/COINScheck.sh ${PLAYERORIG1} | tail -n 1)
|
|
|
|
echo "<br><b>${player} $PLAYERCOINS G1</b>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
### IF EMPTY ??? WHAT TODO
|
|
|
|
|
|
|
|
orikeyname="${player}_${VoeuName}"
|
|
|
|
destkeyname="${DESTMAIL}_${VoeuName}"
|
|
|
|
echo "@PASS KEYS :
|
|
|
|
ORIGIN=$orikeyname
|
|
|
|
DEST=$destkeyname
|
|
|
|
BILL=$billkeyname"
|
|
|
|
## REVEAL THE KEYS
|
|
|
|
# G1VOEU & IPNS KEY
|
|
|
|
[[ ${player} != "" ]] \
|
|
|
|
&& ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/playersecret.ipfs "${player}" "G1${VoeuName} ${PLAYERORIG1}" \
|
|
|
|
&& ${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/player.secret.key "${player}" "G1${VoeuName} ${PLAYERORIG1}" \
|
|
|
|
&& G1VOEUPUB=$(cat ~/.zen/tmp/${MOATS}/player.secret.key | grep 'pub:' | cut -d ' ' -f 2)
|
|
|
|
# INSTALL orikeyname IPNS KEY ON NODE
|
|
|
|
IK=$(ipfs key list -l | grep -w "${orikeyname}" | cut -d ' ' -f 1 )
|
|
|
|
[[ ! $IK ]] && ipfs key import ${orikeyname} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/playersecret.ipfs
|
|
|
|
|
|
|
|
## IS IT A TRANSFER ? MILGRAM G1MISSIVE
|
|
|
|
[[ ${DESTMAIL} != "" ]] \
|
|
|
|
&& echo "MILGRAM :: ${player} :: ${DESTMAIL}" \
|
2023-06-07 14:03:30 +02:00
|
|
|
#~ && DESTG1=$(${MY_PATH}/../tools/keygen "${DESTMAIL}" "G1${VoeuName} ${PLAYERORIG1}") \
|
|
|
|
#~ && ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/destsecret.ipfs "${DESTMAIL}" "G1${VoeuName} ${PLAYERORIG1}"
|
2023-05-06 02:35:06 +02:00
|
|
|
|
|
|
|
# INSTALL orikeyname IPNS KEY ON NODE
|
|
|
|
IK=$(ipfs key list -l | grep -w "${orikeyname}" | cut -d ' ' -f 1 )
|
|
|
|
[[ ! $IK ]] && ipfs key import ${orikeyname} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/playersecret.ipfs
|
|
|
|
|
|
|
|
## IS IT LINKED WITH extra G1BILLET+
|
|
|
|
[[ ${extra1} != "" && ${extra2} != "" ]] \
|
|
|
|
&& echo "@PASS LINK TO G1BILLET+ :: ${extra1} :: ${extra2}" \
|
|
|
|
&& EXTRAG1=$(${MY_PATH}/../tools/keygen "${extra1}" "${extra2}") \
|
|
|
|
&& ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/extrasecret.ipfs "${extra1}" "${extra2}" \
|
|
|
|
&& EXTRAG1COINS=$(${MY_PATH}/../tools/COINScheck.sh ${EXTRAG1} | tail -n 1) \
|
|
|
|
&& echo "<br><b>EXTRA ${VoeuName} $EXTRAG1COINS G1</b>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
# Don't care if ORIGIN PLAYER is THERE
|
|
|
|
#~ ISTHERE=$(ipfs key list -l | grep -w ${player} | cut -d ' ' -f1)
|
|
|
|
#~ echo "<h1>$player G1MISSIVE<h1> $ISTHERE" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
echo "${MY_PATH}/../tools/jaklis/jaklis.py balance -p ${G1VOEUPUB}"
|
|
|
|
G1VOEUCOINS=$(${MY_PATH}/../tools/COINScheck.sh ${G1VOEUPUB} | tail -n 1)
|
|
|
|
echo "<br><b>${VoeuName} $G1VOEUCOINS G1</b>" >> ~/.zen/tmp/${MOATS}/disco
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
#CONVERT TO IPNS KEY
|
2023-05-06 02:35:06 +02:00
|
|
|
G1VOEUNS=$(${MY_PATH}/../tools/g1_to_ipfs.py ${G1VOEUPUB})
|
2023-05-01 03:50:19 +02:00
|
|
|
## RETRIEVE IPNS CONTENT
|
2023-05-06 02:35:06 +02:00
|
|
|
echo "http://127.0.0.1:8080/ipns/$G1VOEUNS"
|
|
|
|
if [[ ! -s ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt ]]; then
|
|
|
|
HELLO="@PASS :: G1BILLET+ :: ${G1VOEUPUB} :: $(date) :: ${player} :: ${PLAYERORIG1}"
|
|
|
|
echo "${HELLO}"
|
|
|
|
avanla=$(ps axf --sort=+utime | grep -w 'ipfs cat /ipns/$G1VOEUNS' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
|
|
|
[[ ! $avanla ]] \
|
|
|
|
&& ( ipfs cat /ipns/$G1VOEUNS > ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt \
|
|
|
|
&& [[ ! -s ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt ]] \
|
|
|
|
&& echo "@PASS G1BILLET+ INIT" \
|
|
|
|
&& echo "${HELLO}" > ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt \
|
|
|
|
&& MILGRAM=$(ipfs add -q ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt) \
|
|
|
|
&& ipfs name publish -k ${player}_${VoeuName} /ipfs/${MILGRAM} &
|
|
|
|
) &
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
echo "<br>PLEASE RETRY IN 30 SECONDS GETTING MESSAGE FROM IPFS<br>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
(
|
|
|
|
cat ~/.zen/tmp/${MOATS}/disco | nc -l -p ${PORT} -q 1 > /dev/null 2>&1
|
|
|
|
echo "BLURP $PORT" && rm -Rf ~/.zen/tmp/${MOATS}
|
|
|
|
) &
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
fi
|
|
|
|
echo "<br><br>" >> ~/.zen/tmp/${MOATS}/disco
|
2023-05-06 02:35:06 +02:00
|
|
|
cat ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
[[ ${NEWLINE} == "" || ${NEWLINE} == "undefined" ]] && echo "<br> NO NEW LINE <br>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
[[ ${DESTMAIL} == "" || ${DESTMAIL} == "undefined" ]] && echo "<br> Missing Destination EMAIL <br>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
## CHECK VALID EMAIL FORMAT
|
|
|
|
[[ "${DESTMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]] \
|
|
|
|
&& echo "<br> GOOD $DESTMAIL <br>" >> ~/.zen/tmp/${MOATS}/disco \
|
|
|
|
&& GOMAIL=1
|
|
|
|
|
|
|
|
if [[ $APPNAME == "milgram" && ${GOMAIL} == 1 ]]; then
|
|
|
|
|
2023-05-01 21:29:04 +02:00
|
|
|
# SEARCH FOR DESTMAIL IN SWARM
|
|
|
|
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${DESTMAIL}) ## export ASTROTW and more
|
2023-09-11 17:08:22 +02:00
|
|
|
echo "export ASTROTW=${ASTROTW} ASTROG1=${ASTROG1} ASTROMAIL=${DESTMAIL} ASTROFEED=${FEEDNS}"
|
2023-05-01 21:29:04 +02:00
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
# Create Next G1 & IPNS KEY
|
|
|
|
DESTG1PUB=$(${MY_PATH}/../tools/keygen"${DESTMAIL}" "G1${VoeuName} ${PLAYERORIG1}")
|
|
|
|
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/newsecret.ipfs "${DESTMAIL}" "G1${VoeuName} ${PLAYERORIG1}"
|
2023-05-01 03:50:19 +02:00
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
orikeyname="${DESTMAIL}_${VoeuName}"
|
2023-05-01 03:50:19 +02:00
|
|
|
# INSTALL NEXT IPNS KEY ON NODE
|
2023-05-06 02:35:06 +02:00
|
|
|
IK=$(ipfs key list -l | grep -w "${orikeyname}" | cut -d ' ' -f 1 )
|
|
|
|
[[ ! $IK ]] && ipfs key import ${orikeyname} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/newsecret.ipfs
|
|
|
|
|
|
|
|
## CREATE NEXT G1Missive !
|
|
|
|
NEWIMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${DESTMAIL}" "${VoeuName}" "${MOATS}" "${PLAYERORIG1}" | tail -n 1)
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
## ADD NEWLINE TO MESSAGE
|
|
|
|
if [[ ${NEWLINE} != "" ]]; then
|
|
|
|
CLINE=$(echo "${NEWLINE}" | detox --inline)
|
2023-05-06 02:35:06 +02:00
|
|
|
echo "$CLINE" >> ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt ## NB: File could still being into "ipfs cat" process... TODO MAKE BETTER
|
2023-05-01 03:50:19 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
echo "UPDATED" >> ~/.zen/tmp/${MOATS}/disco
|
2023-05-06 02:35:06 +02:00
|
|
|
cat ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
2023-05-01 03:50:19 +02:00
|
|
|
echo "<br><img src=/ipfs/$NEWIMAGIC />" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
2023-05-06 02:35:06 +02:00
|
|
|
MILGRAM=$(ipfs add -q ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt)
|
2023-05-01 03:50:19 +02:00
|
|
|
|
|
|
|
(
|
|
|
|
ipfs name publish -k ${DESTMAIL}_${VoeuName} /ipfs/${MILGRAM}
|
|
|
|
echo "${VoeuName} ${PASS} G1Milgram emitted ${DESTMAIL}"
|
|
|
|
) &
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
else
|
2023-05-06 02:35:06 +02:00
|
|
|
## TODO : EMPTY WALLET BACK TO ORIGIN
|
2023-05-01 03:50:19 +02:00
|
|
|
echo "<br><h1>${PASS} ${UPASS} TOO OLD</h1>" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
echo "<br><img src='http://127.0.0.1:8080/ipfs/QmVnQ3GkQjNeXw9qM7Fb1TFzwwxqRMqD9AQyHfgx47rNdQ/your-own-data-cloud.svg' />" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
echo "<br>DATA MISSING" >> ~/.zen/tmp/${MOATS}/disco
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
(
|
|
|
|
cat ~/.zen/tmp/${MOATS}/disco | 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
|
|
|
################################################################################
|
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-24 15:51:48 +02:00
|
|
|
# ~/?qrcode=G1Tag&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-04-24 15:51:48 +02:00
|
|
|
VOEU=${QRCODE:2} ## "G1G1Voeu" => "G1Voeu"
|
|
|
|
# THIS is TW IPNS
|
|
|
|
ASTROPATH=$(grep -r ${THIS} ~/.zen/game/players/*/ipfs/moa | tail -n 1 | cut -d ':' -f 1 | rev | cut -d '/' -f 2- | rev 2>/dev/null)
|
|
|
|
echo "ASTROPATH=${ASTROPATH}"
|
2023-03-16 16:17:21 +01:00
|
|
|
|
2023-04-24 15:51:48 +02:00
|
|
|
INDEX=${ASTROPATH}/index.html
|
2023-03-26 18:03:42 +02:00
|
|
|
echo $INDEX
|
2023-04-24 15:51:48 +02:00
|
|
|
|
2023-03-26 18:03:42 +02:00
|
|
|
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-24 15:51:48 +02:00
|
|
|
echo "DIRECT Tag = ${VOEU} OUTPUT"
|
2023-04-04 14:54:22 +02:00
|
|
|
## DIRECT JSON OUTPUT
|
|
|
|
tiddlywiki --load ${INDEX} --output ~/.zen/tmp/${MOATS} \
|
2023-04-24 15:51:48 +02:00
|
|
|
--render '.' "g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag['${VOEU}']]'
|
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-04-24 15:51:48 +02:00
|
|
|
if [[ ${ASTROPATH} != "" && $APPNAME == "" ]]; then
|
2023-03-16 14:38:25 +01:00
|
|
|
|
2023-04-24 15:51:48 +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-04-24 20:53:44 +02:00
|
|
|
ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current
|
|
|
|
echo "LINKING ${PLAYER} to .current"
|
2023-03-27 13:27:57 +02:00
|
|
|
#### 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-04-24 20:53:44 +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-04-24 20:53:44 +02: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-05-27 14:43:16 +02:00
|
|
|
### PATCH COPY G1BILLET G1PUB TO MALKE PAYMENT WHEN RECONNECT
|
|
|
|
cp $COINSFILE ~/live/
|
|
|
|
|
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-04-30 15:24:29 +02:00
|
|
|
## SCANNED G1PUB IS CURRENT STATION PLAYER : RETURN BALANCE
|
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-07-03 03:04:45 +02:00
|
|
|
## USE PLAYER API OR MOVE TO G1CARD PGP QRCODE
|
2023-01-02 22:21:16 +01:00
|
|
|
###################################################################################################
|
|
|
|
# API TWO : ?qrcode=G1PUB&url=____&type=____
|
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ if [[ ${AND} == "url" ]]; then
|
|
|
|
#~ URL=${THIS}
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ if [[ ${URL} ]]; then
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02: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)
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ ## FORCE LOCAL USE ONLY. Remove to open 1234 API
|
|
|
|
#~ [[ ! -d ~/.zen/game/players/${PLAYER} || ${PLAYER} == "" ]] \
|
|
|
|
#~ && espeak "nope" \
|
|
|
|
#~ && (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
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ ## Demande de copie d'une URL reçue.
|
|
|
|
#~ [[ ${TYPE} ]] && CHOICE="${TYPE}" || CHOICE="Youtube"
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ ## CREATION TIDDLER "G1Voeu" G1CopierYoutube
|
|
|
|
#~ # CHOICE = "Video" Page MP3 Web
|
|
|
|
#~ ~/.zen/Astroport.ONE/ajouter_media.sh "${URL}" "${PLAYER}" "${CHOICE}" &
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ echo "$HTTPCORS <h1>OK</h1> - ${URL} AVAILABLE SOON<br>check you TW" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &
|
|
|
|
#~ exit 0
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ else
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ (echo "$HTTPCORS ERROR - ${AND} - ${THIS} UNKNOWN" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1
|
2023-01-02 22:21:16 +01:00
|
|
|
|
2023-04-24 20:53:44 +02:00
|
|
|
#~ fi
|
|
|
|
#~ fi
|
2023-03-10 00:57:16 +01:00
|
|
|
|
|
|
|
|
|
|
|
exit 0
|