From 7888a31830ff1c70f9c7a127361064d2c8792569 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 29 Nov 2023 16:50:42 +0100 Subject: [PATCH] various twik + auto unplug PLAYER account v0.1 --- API/QRCODE.sh | 41 +++++---- API/UPLANET.sh | 8 +- RUNTIME/PLAYER.refresh.sh | 19 ++++- RUNTIME/VOEUX.refresh.sh | 2 +- WWW/favicon.heart.ico | Bin 0 -> 318 bytes WWW/favicon.zen.body.mind.spirit.ico | Bin 0 -> 1150 bytes WWW/favicon.zen.kanji.ico | Bin 0 -> 1406 bytes WWW/favicon.zen.longevity.ico | Bin 0 -> 5572 bytes WWW/favicon.zen.triangle.ico | Bin 0 -> 822 bytes WWW/favicon_yy.ico | Bin 0 -> 198 bytes _12345.sh | 3 +- templates/register.html | 16 ++-- tools/Connect_PLAYER_To_Gchange.sh | 2 +- tools/PAY4SURE.sh | 119 +++++++++++++++++++++++++++ tools/PLAYER.unplug.sh | 16 ++-- tools/my.sh | 5 +- tools/verify_payment.sh | 31 ------- 17 files changed, 190 insertions(+), 72 deletions(-) create mode 100644 WWW/favicon.heart.ico create mode 100644 WWW/favicon.zen.body.mind.spirit.ico create mode 100644 WWW/favicon.zen.kanji.ico create mode 100644 WWW/favicon.zen.longevity.ico create mode 100644 WWW/favicon.zen.triangle.ico create mode 100644 WWW/favicon_yy.ico create mode 100755 tools/PAY4SURE.sh delete mode 100755 tools/verify_payment.sh diff --git a/API/QRCODE.sh b/API/QRCODE.sh index 162f5eb5..5e4f1aa6 100755 --- a/API/QRCODE.sh +++ b/API/QRCODE.sh @@ -164,32 +164,43 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then [[ ${WHAT} == "" ]] && echo "
Missing amount
" >> ~/.zen/tmp/${MOATS}/disco [[ ${VAL} == "" || ${VAL} == "undefined" ]] && echo "
Missing Destination PublicKey
" >> ~/.zen/tmp/${MOATS}/disco - VAL=$(echo "$VAL" | cut -d ':' -f 1) + G1DEST=$(echo "$VAL" | cut -d ':' -f 1) ## G1PUB:CHK format + CHK=$(echo "$VAL" | cut -d ':' -f 2) ## G1 CHECKSUM or ZEN + if [[ ${CHK::3} != "ZEN" ]]; then + echo "INVALID ZENCARD" + echo "
INVALID ZENCARD" >> ~/.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 + ## GET DESTINATION ACCOUNT AMOUNT - DESTM=$(${MY_PATH}/../tools/COINScheck.sh ${VAL} | tail -n 1) + DESTM=$(${MY_PATH}/../tools/COINScheck.sh ${G1DEST} | tail -n 1) if [[ ${APPNAME} == "pay" ]]; then - if [[ ${WHAT} != "" && ${VAL} != "" && ${CURCOINS} != "null" && ${CURCOINS} != "" && ${CURCOINS} > ${WHAT} ]]; then + if [[ ${WHAT} != "" && ${G1DEST} != "" && ${CURCOINS} != "null" && ${CURCOINS} != "" && ${CURCOINS} > ${WHAT} ]]; then ## COMMAND A PAYMENT (less than 999.99) if [[ ${WHAT} =~ ^-?[0-9]{1,3}(\.[0-9]{1,2})?$ ]]; then ## CREATE game pending TX mkdir -p $HOME/.zen/game/pending/${G1PUB}/ - PENDING="$HOME/.zen/game/pending/${G1PUB}/${MOATS}_${VAL}+${WHAT}.TX" + PENDING="$HOME/.zen/game/pending/${G1PUB}/${MOATS}_${G1DEST}+${WHAT}.TX" echo "START" > ${PENDING} ######################## ~/.zen/game/pending/*/*_G1WHO+*.TX - if [[ ! -f ~/.zen/game/pending/*/*_${VAL}+*.TX ]]; then + if [[ ! -f ~/.zen/game/pending/*/*_${G1DEST}+*.TX ]]; then # MAKE PAYMENT - echo "${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c 'ASTROID:${MOATS}' -m" + echo "${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${G1DEST} -c 'ASTROID:${MOATS}' -m" ${MY_PATH}/../tools/timeout.sh -t 5 \ - ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${VAL} -c "ASTROID:${MOATS}" -m 2>&1 >> ~/.zen/tmp/${MOATS}/disco + ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key pay -a ${WHAT} -p ${G1DEST} -c "ASTROID:${MOATS}" -m 2>&1 >> ~/.zen/tmp/${MOATS}/disco if [ $? == 0 ]; then echo "SENT" > ${PENDING} ## _12345.sh run MONITOR checking CHAIN REJECTION ## CHANGE COINS CACHE COINSFILE="$HOME/.zen/tmp/coucou/${G1PUB}.COINS" - DESTFILE="$HOME/.zen/tmp/coucou/${VAL}.COINS" + DESTFILE="$HOME/.zen/tmp/coucou/${G1DEST}.COINS" CUR=$(cat "${COINSFILE}") if [[ ! -z "$CUR" && "$CUR" != "null" ]]; then @@ -212,12 +223,12 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then ## VERIFY AND INFORM OR CONFIRM PAYMENT - echo "

OPERATION

${G1PUB}
$CUR - ${WHAT}

${VAL}
$DES + ${WHAT}

OK

" >> ~/.zen/tmp/${MOATS}/disco + echo "

OPERATION

${G1PUB}
$CUR - ${WHAT}

${G1DEST}
$DES + ${WHAT}

OK

" >> ~/.zen/tmp/${MOATS}/disco else ## INFORM SYSTEM MUST RENEW OPERATION - echo "NOK" > $HOME/.zen/game/pending/${G1PUB}/${MOATS}_${VAL}+${WHAT}.TX + echo "NOK" > $HOME/.zen/game/pending/${G1PUB}/${MOATS}_${G1DEST}+${WHAT}.TX echo "

BLOCKCHAIN CONNEXION ERROR

- PLEASE RETRY -

\ if the problem persists, please contact support@qo-op.com" >> ~/.zen/tmp/${MOATS}/disco @@ -240,7 +251,7 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then else - echo "

${WHAT} ${VAL} ${CURCOINS} GLOBAL ERROR

" >> ~/.zen/tmp/${MOATS}/disco + echo "

${WHAT} ${G1DEST} ${CURCOINS} GLOBAL ERROR

" >> ~/.zen/tmp/${MOATS}/disco fi @@ -286,15 +297,15 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then if [[ ${APPNAME} == "friend" ]]; then - # CHECK IF ${VAL} HAS A PROFILE + # CHECK IF ${G1DEST} HAS A PROFILE ${MY_PATH}/../tools/timeout.sh -t 5 \ - curl -s ${myDATA}/user/profile/${VAL} > ~/.zen/tmp/${MOATS}/gchange.json + curl -s ${myDATA}/user/profile/${G1DEST} > ~/.zen/tmp/${MOATS}/gchange.json ## Send ॐ★ॐ [[ -s ~/.zen/tmp/${MOATS}/gchange.json ]] \ - && ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key stars -p ${VAL} -n ${WHAT} >> ~/.zen/tmp/${MOATS}/disco \ + && ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/tmp/${MOATS}/secret.key stars -p ${G1DEST} -n ${WHAT} >> ~/.zen/tmp/${MOATS}/disco \ && rm ~/.zen/tmp/${MOATS}/gchange.json \ - || echo "/${VAL} profile is not existing yet..." >> ~/.zen/tmp/${MOATS}/disco + || echo "/${G1DEST} profile is not existing yet..." >> ~/.zen/tmp/${MOATS}/disco fi diff --git a/API/UPLANET.sh b/API/UPLANET.sh index d6bcbb55..79162a09 100755 --- a/API/UPLANET.sh +++ b/API/UPLANET.sh @@ -6,7 +6,7 @@ ################################################################################ ## API: UPLANET ## Dedicated to OSM2IPFS & UPlanet Client App -# ?uplanet=EMAIL&salt=LAT&pepper=LON&g1pub=PASS +# ?uplanet=EMAIL&zlat=LAT&zlon=LON&g1pub=PASS ## https://git.p2p.legal/qo-op/OSM2IPFS ################################################################################ MY_PATH="`dirname \"$0\"`" # relative @@ -50,9 +50,9 @@ mkdir -p ~/.zen/tmp/${MOATS}/ ## GET & VERIFY PARAM PLAYER=${THAT} -[[ ${PLAYER} == "salt" ]] && PLAYER="@" +[[ ${PLAYER} == "zlat" ]] && PLAYER="@" -[[ ${AND} != "salt" ]] \ +[[ ${AND} != "zlat" ]] \ && (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 SALT=${THIS} @@ -76,7 +76,7 @@ fi PEPPER=${WHAT} -[[ ${APPNAME} != "pepper" ]] \ +[[ ${APPNAME} != "zlon" ]] \ && (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 0 [[ ${PEPPER} == "0" ]] && PEPPER="0.00" diff --git a/RUNTIME/PLAYER.refresh.sh b/RUNTIME/PLAYER.refresh.sh index fa37563b..0895f75c 100755 --- a/RUNTIME/PLAYER.refresh.sh +++ b/RUNTIME/PLAYER.refresh.sh @@ -130,6 +130,7 @@ for PLAYER in ${PLAYERONE[@]}; do tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ --output ~/.zen/tmp/${MOATS} \ --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler + BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate) ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## Raccorded G1Station IPNS address CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part [[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \ @@ -163,7 +164,7 @@ for PLAYER in ${PLAYERONE[@]}; do if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then echo "> I AM ${IPFSNODEID} : PLAYER MOVED TO ${IPNSTAIL} : EJECTION " echo "UNPLUG PLAYER" - ${MY_PATH}/../tools/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" + ${MY_PATH}/../tools/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "FREE" echo ">>>> ASTRONAUT ${PLAYER} TW CAPSULE EJECTION TERMINATED" continue fi @@ -285,7 +286,21 @@ for PLAYER in ${PLAYERONE[@]}; do --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]' [[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json ]] && echo "NO ${PLAYER} RSS - BAD ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json -" - ## CHECK FOR EMPTY RSS + 30 DAYS BIRTHDATE + ################################## + #### PLAYER ACCOUNT CLEANING ######### + ## CHECK FOR EMPTY RSS + 30 DAYS BIRTHDATE + null G1 + [[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]] \ + && echo "RSS IS EMPTY" \ + && SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE}) \ + && SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) \ + && [[ $(( SNOW - SBIRTH )) >= $(( 27 * 24 * 60 * 60 )) ]] \ + && echo "YOUR ACOUNT WILL BE UNPLUGGED IN 3.2.1 DAYS" > ~/.zen/tmp/alert \ + && ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert \ + && [[ $(( SNOW - SBIRTH )) > $(( 30 * 24 * 60 * 60 )) ]] \ + && ${MY_PATH}/../tools/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \ + && echo ">>>> PLAYER UNPLUGGED >>>>> BYE BYE ${PLAYER}" \ + && continue + #################################### UNPLUG ACCOUNT IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \ && ipfs name publish --key="${PLAYER}_feed" /ipfs/${IRSS} diff --git a/RUNTIME/VOEUX.refresh.sh b/RUNTIME/VOEUX.refresh.sh index 24b2064b..87b8fcaf 100755 --- a/RUNTIME/VOEUX.refresh.sh +++ b/RUNTIME/VOEUX.refresh.sh @@ -260,7 +260,7 @@ do #~ echo "************************************************************" #~ echo "Hop, 0.1 JUNE pour le Voeu $WISHNAME" - #~ echo $MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 0.1 -p $VOEUKEY -c \'"ASTRO:$${IPNS_VOEUNS} G1Voeu $WISHNAME"\' -m + #~ echo $MY_PATH/../tools/jaklis/jaklis.py -k ~/.zen/game/players/$PLAYER/secret.dunikey pay -a 0.1 -p $VOEUKEY -c \'"ASTRO:${IPNS_VOEUNS} G1Voeu $WISHNAME"\' -m #~ echo "************************************************************" #~ echo "************************************************************" diff --git a/WWW/favicon.heart.ico b/WWW/favicon.heart.ico new file mode 100644 index 0000000000000000000000000000000000000000..7427a5372dec0d703aeb32dd98c45836757473ae GIT binary patch literal 318 zcmcJLF%E)25Jewh(bA!@l@JPg4nV^d?5(_o(Zn-&7fY?Y1_>9iG?6&YE@2CMXY&5v z>@^^U4i1`cujr^g&&@(c+nw`uNJ ufO%K!&6~U{gNyT?SrFMkqkkZ%ByjK_?YWQkf z%Imlx+A=z@Novp5TFktin8n^(P4t6W$*rh=Xc)KfA~qeLLk+~x zzcf#o!E^f=qWavE&%!jlm${HWfdWa3m)ZFi52kGhB>(^b literal 0 HcmV?d00001 diff --git a/WWW/favicon.zen.longevity.ico b/WWW/favicon.zen.longevity.ico new file mode 100644 index 0000000000000000000000000000000000000000..1dc7f68c9c1352e5947c814a5c97152888e796f3 GIT binary patch literal 5572 zcmd6r&u<$=6vv;}cAVI5?X1kks$9o*?8d1gRG}VHm4h9cHU)vqk3)`0xo`}(9@lOI zR9t%C4`_vuI0pWLR0XwC1qAg{R6!FO6(j^CAVk_G8NTn${_xgznzmBKi!<}~y*K08 z&%W82@u|}%CyvdfDNX+zrsT2X*YB%uHr2PA>bnQ()_rwrNByAG?JaeCTixDKKW?d? zw$+_2b!SJdJXCidsJjo<%9dK$R;ycTb$e%ZTdlyQ)X!V$EYh@+D)pOEzbo~JQX5-pL#e-%`dcY_W+~o}48-X$6;BS@A5IP>` z&iOW}Z>Pq(FSb3hakiYlaH_O%wx1~Cd&;zA969{iep(7G90-+(O!g(@BSo}Y8DV3B z@|9}LX^3lyLuKa8M9v@zK{3so-?P@(h<^^00B!Z#lX&yoA4d>POT+-tSy57KS*f>T zuuNYp)D2=q_u`fu3|A|XGRxEJP@<6(wTN6+yMS@K&^0g(oGuqnPnQN3z$kzT04f3? zR;`v8vH$=mVX}`1ph|3vQL$2uIvv9g7mH~Y@j;iN1QfHVt$qm`i-6LKwBjeKW%^>e z6w!B|o@_-t3_*o4u%$byDBAY|V}E_-irfs{<5lEa+E@GeD4@aa5XF zoV{Xj63@`=l~&Yq1r^uD!BIr_1mlho-H+4WF_Dq8th80YFcSp}Q=}WHF;M9n8yo2W zg&T~HX;3jLR5(rqcBdb{eLeLOtaePjamJwUUMpxS;$gtm<52AmW)^uML>SD|Vj>2W zxAr+xJ=%7bYfoCr;(!iTT{EpchCOs9LG079xgq+fK z^sd9X)bMa>SmK9~QCM$%0e}P{qp+Y1jEMlQLQwoc*L*{7x5*gTo zX$~RrqVVfM2(Gzw?d~@@cJ^s;9lh(2HJHr~W;r~YMbakQL(yNEmM>rZ5RS~|`dk=q z2s*(LHU?W31sm+-=JH(FhLRy0!TLUQj06WVzVsvy_W%4;arbzz{Sl*CD`2v76&tp)ay(2FhR-EeDhos(JlAnaln7D=lvP0kDJ@hL9_FD29A~P z6x9bxoF;pnBcuNoctl5OnXB5(qp#nD&ZV=hW;4V-`RVuX9X&ubsk9GQxJL*ZiLaJ9 zL~qF5jk(nOAh2`k+NB{1$Id=2uA_HtnEj@?&*X5^!~>8Ml^c%!vea0e`~bU=9QW`%^D~APRjnteb0#9kr7xgj^8lGX_0Pxsk4T49-2Nw(UKgc z+zpm)*v)6*^sT)K2rr{3SYuTRzjo|ioNgy2#|Na%*F!b-_oY&a6t_yHFouah9H)AQ z3eDC6)Bn6tHz@40-tV(M=jAniC~047I{E4^i2RwxPHBRqn9p4cxPY|zdZ1$!|(+zazQX*xnJCWg4%J(I;=ktJHue)MjWdgC-9L_lmTNo>@WlQrTA z_;^jwR#cAm+}9`Uvh^=myKpdhn*s#R63TZON=NEM4gr@5>09QCo{WmSta|I~bLRpM G$NvMqHmyhi literal 0 HcmV?d00001 diff --git a/WWW/favicon.zen.triangle.ico b/WWW/favicon.zen.triangle.ico new file mode 100644 index 0000000000000000000000000000000000000000..e062521640de94982797e8231803f22e8fe149be GIT binary patch literal 822 zcmbV~!AiqG5QZl^Yp66}@U%yJ7uoitcuA2eUPQ1Du%Qrq45Q*fd={S}Rq$avdh@i- z&Nk^7JV=HR^3VS-9t!^&TQK?7yE8~(;>TBu<;~gr zdNDh)n2>!KBH=jT=WSJ0E3_!tL-L9 zc?^}tLfqkM8$FFl!U0r@PxLfN4v@`(o@Pk_wkgn7ni=bwy9D>4o5=t0=XQ%G|l9ma!NNBrM9VzbSGp6;+US4)q>@$Ut`S_^z)6!=n^u>4{mK2b3~ c?J!)IFb1JXawBe?ZK>I&Mt2J~1CaQqKMU`2EC2ui literal 0 HcmV?d00001 diff --git a/WWW/favicon_yy.ico b/WWW/favicon_yy.ico new file mode 100644 index 0000000000000000000000000000000000000000..de50231bc8271d0d91759aeb15df8d3a3d5fc9d4 GIT binary patch literal 198 zcmZQzU<5(|0VW0z*Z{<0K&%180zj+)#2|SPZ~&7K0-~CML4=!;;n&aa5Wxfn27Ut| ewt-* ~/.zen/tmp/${IPFSNODEID}/_MySwarm.staom echo "## MAKE /proc/cpuinfo IPFSNODEID DERIVATED KEY ##" SECRET1=$(cat /proc/cpuinfo | grep -Ev MHz | sha512sum | cut -d ' ' -f 1) SECRET2=${IPFSNODEID} + echo "SALT=$SECRET1 && PEPPER=$SECRET2" > ~/.zen/game/myswarm_secret.june ${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/game/myswarm_secret.ipfskey "$SECRET1" "$SECRET2" ${MY_PATH}/tools/keygen -t duniter -o ~/.zen/game/myswarm_secret.dunikey "$SECRET1" "$SECRET2" ipfs key import "MySwarm_${IPFSNODEID}" -f pem-pkcs8-cleartext ~/.zen/game/myswarm_secret.ipfskey @@ -98,7 +99,7 @@ while true; do done ############# GET BOOSTRAP SWARM DATA - for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#" | rev | cut -d '/' -f 1 | rev | grep -v '^[[:space:]]*$') # remove comments and empty lines + for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#" | grep -v '^[[:space:]]*$') # remove comments and empty lines do echo "############# RUN LOOP ######### $(date)" diff --git a/templates/register.html b/templates/register.html index 75fb1415..93df91fc 100644 --- a/templates/register.html +++ b/templates/register.html @@ -136,10 +136,10 @@ a:active{
[]-[] registration

@@ -171,13 +171,13 @@ a:active{ // Extract latitude and longitude from URL parameters document.addEventListener('DOMContentLoaded', function() { const urlParams = new URLSearchParams(window.location.search); - const salt = urlParams.get('salt'); - const pepper = urlParams.get('pepper'); + const zlat = urlParams.get('zlat'); + const zlon = urlParams.get('zlon'); const uplanet = urlParams.get('uplanet'); // Set latitude and longitude values to hidden inputs - const latElement = document.querySelector('input[name="salt"]'); - const lonElement = document.querySelector('input[name="pepper"]'); + const latElement = document.querySelector('input[name="zlat"]'); + const lonElement = document.querySelector('input[name="zlon"]'); const uplanetElement = document.querySelector('input[name="uplanet"]'); const passElement = document.querySelector('input[name="g1pub"]'); @@ -188,8 +188,8 @@ document.addEventListener('DOMContentLoaded', function() { } if (latElement && lonElement) { - latElement.value = salt || '0.00'; // Default to '0.00' if lat is missing - lonElement.value = pepper || '0.00'; // Default to '0.00' if lon is missing + latElement.value = zlat || '0.00'; // Default to '0.00' if lat is missing + lonElement.value = zlon || '0.00'; // Default to '0.00' if lon is missing uplanetElement.value = uplanet || '@'; // Default to '0.00' if lon is missing } diff --git a/tools/Connect_PLAYER_To_Gchange.sh b/tools/Connect_PLAYER_To_Gchange.sh index a8da620e..d2f1ec61 100755 --- a/tools/Connect_PLAYER_To_Gchange.sh +++ b/tools/Connect_PLAYER_To_Gchange.sh @@ -355,7 +355,7 @@ do ## IS IT REALLY A FRIEND I LIKE ? echo "BRO?" $MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey send -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/" - $MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey send -n ${myCESIUM} -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/" + $MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey -n ${myCESIUM} send -d "${G1PUB}" -t "Bro ?" -m "$myGCHANGE/#/app/user/${liking_me}/" mkdir -p ~/.zen/game/players/${PLAYER}/FRIENDS/ try=$((try+1)) && echo $try > ~/.zen/game/players/${PLAYER}/FRIENDS/${liking_me}.try diff --git a/tools/PAY4SURE.sh b/tools/PAY4SURE.sh new file mode 100755 index 00000000..21c104a4 --- /dev/null +++ b/tools/PAY4SURE.sh @@ -0,0 +1,119 @@ +#!/bin/bash +######################################################################## +# Version: 0.1 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +# MAKE PAYMENTS ON DUNITER BLOCKCHAIN +# VERIFY SUCCES & RENEW IF FAILED +######################################################################## +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +. "${MY_PATH}/my.sh" + +KEYFILE="$1" +AMOUNT="$2" +G1PUB="$3" +COMMENT="$4" +MOATS="$5" ## RECALL PENDING + +[[ -z $MOATS ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N") || echo "FAILED PAYMENT NEW TRY $MOATS" + +## CHECKING PAYOUT WALLET (dunikey file) +[[ -s ${KEYFILE} ]] \ + && PAYOUTPUB=$(cat ${KEYFILE} | grep "pub:" | cut -d ' ' -f 2) \ + || { echo "ERROR : MISSING SECRET KEY FILE" && exit 1; } + +COINS=$($MY_PATH/COINScheck.sh ${PAYOUTPUB} | tail -n 1) +###### TEST INPUT VALUES +[[ $AMOUNT == "ALL" ]] && AMOUNT=$COINS ## ALL MEAN EMPTY ORIGIN WALLET +[[ -z $AMOUNT ]] && echo "ERROR : ${PAYOUTPUB}=$COINS MISSING AMOUNT" && exit 1 +[[ $COINS < $AMOUNT ]] && echo "ERROR : SOURCE WALLET IS MISSING COINS !!! $AMOUNT > $COINS" && exit 1 +[[ -z $G1PUB ]] && echo "ERROR : ${PAYOUTPUB}=$COINS ($AMOUNT) MISSING DESTINATION" && exit 1 + +echo "PAYMENT PROCESSOR ID ${MOATS}" +echo "KEYFILE: $HOME/.zen/game/pending/${PAYOUTPUB}/" +echo "${PAYOUTPUB} : (${AMOUNT}) -> ${G1PUB}" +echo "COMMENT : ${COMMENT}" + +[[ -z $COMMENT ]] && COMMENT="ZEN:${MOATS}" + +PENDINGDIR=$HOME/.zen/game/pending/${PAYOUTPUB} +### PREPARE PENDINGFILE INFO ZONE +mkdir -p ${PENDINGDIR} +PENDINGFILE=${PENDINGDIR}/${MOATS}_${AMOUNT}+${G1PUB}.TX + +rm -f ${PENDINGFILE} 2>/dev/null ## CLEAN START + +## PREPARE CALLING MYSELF AGAIN COMMAND +cp ${KEYFILE} ${PENDINGDIR}/secret.key 2>/dev/null +echo '#!/bin/bash +bash ${ME} "${KEYFILE}" "${AMOUNT}" "${G1PUB}" "${COMMENT}" "${MOATS}" +' > ${PENDINGDIR}/${MOATS}_replay.sh + +# MAKE PAYMENT +${MY_PATH}/jaklis/jaklis.py -k ${PENDINGDIR}/secret.key pay -a ${AMOUNT} -p ${G1PUB} -c '${COMMENT}' -m 2>/dev/null + +if [ $? == 0 ]; then + + echo "SENT" > ${PENDINGFILE} ## TODO : MONITOR POTENTIAL CHAIN REJECTION (FORK/MERGE WINDOW) + + ## CHANGE COINS CACHE + COINSFILE="$HOME/.zen/tmp/coucou/${PAYOUTPUB}.COINS" + DESTFILE="$HOME/.zen/tmp/coucou/${G1PUB}.COINS" + + ## DECREASE SOURCE IN "coucou" CACHE + echo "$COINS - $AMOUNT" | bc > ${COINSFILE} + + DES=$(cat ${DESTFILE}) + [[ ${DES} != "" && ${DES} != "null" ]] \ + && echo "$DES + $AMOUNT" | bc > ${DESTFILE} \ + || echo "${AMOUNT}" > ${DESTFILE} + + ## INFORM ABOUT PAYMENT + ZENAMOUNT=$(echo "$AMOUNT * 10" | bc | cut -d '.' -f 1) + ZENCUR=$(echo "$COINS * 10" | bc | cut -d '.' -f 1) + ZENDES=$(echo "$DES * 10" | bc | cut -d '.' -f 1) + + echo "

ẐEN OPERATION

+

${PAYOUTPUB} +
${ZENCUR} - ${ZENAMOUNT}

+

${G1PUB} +
${ZENDES} + ${ZENAMOUNT}

+

OK

" > ${PENDINGDIR}/${MOATS}.result + + $MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result + + ## REMOVE IF YOU WANT TO MONITOR "SENT" WINDOW INCERTITUDE + rm ${PENDINGDIR}/${MOATS}_replay.sh + mv ${PENDINGFILE} ${PENDINGFILE}.DONE + +else + + ## INFORM SYSTEM MUST RENEW OPERATION + rm ${PENDINGFILE} + echo "

BLOCKCHAIN CONNEXION ERROR

+

- MUST RETRY -

+ LAUNCHING SUB SHELL" > ${PENDINGDIR}/${MOATS}.result + + ## COUNT NUMBER OF TRY + try=$(cat ${PENDINGDIR}/${MOATS}.try 2>/dev/null) || try=0 + + [[ $try > 2 ]] \ + && echo "${MOATS} TOO MANY TRY ( $try )" >> ${PENDINGDIR}/${MOATS}.result \ + && $MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result \ + && exit 1 \ + || $MY_PATH/mailjet.sh "support@qo-op.com" ${PENDINGDIR}/${MOATS}.result + + ( + ((try++)) && echo $try > ${PENDINGDIR}/${MOATS}.try + chmod +x ${PENDINGDIR}/${MOATS}_replay.sh + sleep 3600 + ${PENDINGDIR}/${MOATS}_replay.sh + exit 0 + ) & + + +fi + +exit 0 diff --git a/tools/PLAYER.unplug.sh b/tools/PLAYER.unplug.sh index d8f4ac54..c0963c88 100755 --- a/tools/PLAYER.unplug.sh +++ b/tools/PLAYER.unplug.sh @@ -18,10 +18,12 @@ INDEX="$1" PLAYER="$2" [[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] && echo "PLAYER ${PLAYER} NOT FOUND - EXIT -" && exit 1 +FREE="$3" + MOATS=$(date -u +"%Y%m%d%H%M%S%4N") mkdir -p ~/.zen/tmp/${MOATS} -## REMOVING PLAYER FROM UMAP +## PLAYER UMAP ? ## GET "GPS" TIDDLER tiddlywiki --load ${INDEX} \ --output ~/.zen/tmp/${MOATS} \ @@ -32,13 +34,13 @@ mkdir -p ~/.zen/tmp/${MOATS} echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}" rm ~/.zen/tmp/${MOATS}/GPS.json - ### IPNS "$LAT" "$LON" KEY - ${MY_PATH}/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${UPLANETNAME}$LAT" "${UPLANETNAME}$LON" - IMAPNS="/ipns/"$(ipfs key import ${MOATS} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv) - rm ~/.zen/tmp/${MOATS}/_ipns.priv - ### GET IMAPNS - ## TRANSERT PLAYER WALLET TO UMAP OR MASTER WALLET : TODO + ## TRANSERT PLAYER WALLET TO my_swarm G1PUB (IPFSNODEID/MACHINE RELATED KEY) + SWARMG1PUB=$(cat ~/.zen/game/myswarm_secret.dunikey | grep "pub:" | cut -d ' ' -f 2) + [[ ! -z ${SWARMG1PUB} ]] \ + && ALL="ALL" \ + && [[ $FREE == "FREE" ]] && ALL=1 \ + && ./PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${ALL}" "${SWARMG1PUB}" "ZEN:${ALL}" ## REMOVING PLAYER from ASTROPORT ipfs key rm ${PLAYER}; ipfs key rm ${PLAYER}_feed; ipfs key rm ${G1PUB}; diff --git a/tools/my.sh b/tools/my.sh index 27e2ef0d..56de12b0 100755 --- a/tools/my.sh +++ b/tools/my.sh @@ -421,7 +421,8 @@ myIP="$(myIp)" # "127.0.0.1" myIP=$(hostname -I | awk '{print $1}' | head -n 1) isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") -myASTROPORT="http://${myIP}:1234" +myASTROPORT="http://${myIP}:1234" #astroport.localhost +myASTROPORT="http://astroport.localhost:1234" #astroport.localhost myAPI="http://${myIP}:5001" myDATA="https://data.gchange.fr" myGCHANGE="https://www.gchange.fr" @@ -429,7 +430,7 @@ myCESIUM="https://g1.data.e-is.pro" myG1BILLET="http://${myIP}:33101" myHOST="$(myHostName)" -myIPFS="http://${myIP}:8080" ## Work in LAN deported desktop +myIPFS="http://${myIP}:8080" ## ipfs.localhost (IP works better in LAN deported desktop), but not in docker. myIPFSGW="$(myIpfsGw)" myTUBE="$(myTube)" myASTROTUBE="https://$(myAstroTube)" diff --git a/tools/verify_payment.sh b/tools/verify_payment.sh deleted file mode 100755 index 1ac39db8..00000000 --- a/tools/verify_payment.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -######################################################################## -# Version: 0.4 -# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) -# ON LINE echo script! LAST LINE export VARIABLE values -######################################################################## -MY_PATH="`dirname \"$0\"`" # relative -MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized -ME="${0##*/}" - -. "${MY_PATH}/my.sh" -### USE 12345 MAP -## EXPLORE SWARM BOOSTRAP REPLICATED TW CACHE - - start=`date +%s` - MOATS=$(date -u +"%Y%m%d%H%M%S%4N") - -G1DEST="$1" -IDTX="$2" -COMMENT="$2" - - -# ${MY_PATH}/jaklis/jaklis.py history -p $G1DEST -n 10 -j -# THIS SCRIPT IS LAUNCHED AFTER A PAYMENT IS DONE -# IT WILL VERIFY IN HISTORY "ASTROID:MOATS" APPEARING - -# ELSE IT SENDS A MESSAGE TO PLAYER -## OR COULD TRY AGAIN - -echo "export DEST=$DEST COMMENT=$COMMENT ASTROMAIL=$EMAIL ASTROFEED=$FEEDNS" -exit 0