various twik + auto unplug PLAYER account v0.1

This commit is contained in:
fred 2023-11-29 16:50:42 +01:00
parent 85eb8221ee
commit 7888a31830
17 changed files with 190 additions and 72 deletions

View File

@ -164,32 +164,43 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
[[ ${WHAT} == "" ]] && echo "<br> Missing amount <br>" >> ~/.zen/tmp/${MOATS}/disco
[[ ${VAL} == "" || ${VAL} == "undefined" ]] && echo "<br> Missing Destination PublicKey <br>" >> ~/.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 "<br>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 "<h1>OPERATION</h1> <h3>${G1PUB} <br> $CUR - ${WHAT}</h3> <h3>${VAL} <br> $DES + ${WHAT} </h3><h2>OK</h2>" >> ~/.zen/tmp/${MOATS}/disco
echo "<h1>OPERATION</h1> <h3>${G1PUB} <br> $CUR - ${WHAT}</h3> <h3>${G1DEST} <br> $DES + ${WHAT} </h3><h2>OK</h2>" >> ~/.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 "<h2>BLOCKCHAIN CONNEXION ERROR</h2><h1>- PLEASE RETRY -</h1>\
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 "<h2>${WHAT} ${VAL} ${CURCOINS} GLOBAL ERROR</h2>" >> ~/.zen/tmp/${MOATS}/disco
echo "<h2>${WHAT} ${G1DEST} ${CURCOINS} GLOBAL ERROR</h2>" >> ~/.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

View File

@ -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"

View File

@ -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}

View File

@ -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 "************************************************************"

BIN
WWW/favicon.heart.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
WWW/favicon.zen.kanji.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

BIN
WWW/favicon_yy.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

View File

@ -51,6 +51,7 @@ echo "$(date -u)" > ~/.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)"

View File

@ -136,10 +136,10 @@ a:active{
<br> [<span id='LAT'></span>]-[<span id='LON'></span>] <span>registration</span><br>
<div id="yellow">
<input name='salt' value='0.00'>
<input name='zlat' value='0.00'>
<h3><a target="info" title="CHECK PORT" href="http://127.0.0.1:12345"> >>> [(♥‿‿♥)] <<< </a>
</h3>
<input name='pepper' value='0.00'><br>
<input name='zlon' value='0.00'><br>
</div>
<input type=hidden name=g1pub value=''></br>
@ -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
}

View File

@ -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

119
tools/PAY4SURE.sh Executable file
View File

@ -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 "<h1>ẐEN OPERATION</h1>
<h3>${PAYOUTPUB}
<br> ${ZENCUR} - ${ZENAMOUNT} </h3>
<h3>${G1PUB}
<br> ${ZENDES} + ${ZENAMOUNT} </h3>
<h2>OK</h2>" > ${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 "<h2>BLOCKCHAIN CONNEXION ERROR</h2>
<h1>- MUST RETRY -</h1>
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

View File

@ -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};

View File

@ -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)"

View File

@ -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