refined & easy ♥Box system interconnection
MODE DEMO :: BRECHE DE SECURITE POTENTIELLE :: LA SECURITE EST DANS IPFS la G1 et sa Toile de Confiance :: Indiquez l'IP externe de la BOX "Internet" dans le fichier ~/.zen/♥Box Ouvrir les ports mis en commentaire dans my.sh YOU ARE WISITING US THROUGH N0 WORLD TROLLS LAND - DO NOT USE IN PRODUCTION !! IF YOU LIKE TO HACK COME WITH US. PLENTY NEW LEVELS ARE RISING
This commit is contained in:
parent
cee27162f0
commit
024e9cd972
4
12345.sh
4
12345.sh
|
@ -65,8 +65,8 @@ while true; do
|
||||||
|
|
||||||
# EACH VISITOR RECEIVE COMMAND RESPONSE ON
|
# EACH VISITOR RECEIVE COMMAND RESPONSE ON
|
||||||
## RANDOM PORT = RESPONSE SOCKET & IPNS SESSION TOKEN
|
## RANDOM PORT = RESPONSE SOCKET & IPNS SESSION TOKEN
|
||||||
if [[ ${isLAN} && $(which yunohost) ]]; then
|
if [[ ${isLAN} && ( $(which yunohost) || -s ~/.zen/♥Box ) ]]; then
|
||||||
PORT=$((PORT+1)) && [ ${PORT} -ge 45782 ] && PORT=45780 ## yunohost OPEN FIREWALL 1234 12345 45780 45781
|
PORT=$((PORT+1)) && [ ${PORT} -ge 45782 ] && PORT=45780 ## yunohost|♥Box : OPEN FIREWALL 1234 12345 45780 45781
|
||||||
else
|
else
|
||||||
[ ${PORT} -le 12345 ] && PORT=$((PORT+${RANDOM:0:2})) || PORT=$((PORT-${RANDOM:0:2}))
|
[ ${PORT} -le 12345 ] && PORT=$((PORT+${RANDOM:0:2})) || PORT=$((PORT-${RANDOM:0:2}))
|
||||||
fi ## RANDOM PORT SWAPPINESS AVOIDING COLLISION
|
fi ## RANDOM PORT SWAPPINESS AVOIDING COLLISION
|
||||||
|
|
138
API/QRCODE.sh
138
API/QRCODE.sh
|
@ -265,7 +265,7 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
NEWLINE=$(urldecode ${WHAT})
|
NEWLINE=$(urldecode ${WHAT})
|
||||||
DESTMAIL=$(urldecode ${VAL,,}) # lowercase
|
DESTMAIL=$(urldecode ${VAL,,}) # lowercase
|
||||||
|
|
||||||
echo "## G1MISSIVE - PASS ${PASS} - $APPNAME"
|
echo "## G1BILLET+ - @PASS ${PASS} - $APPNAME"
|
||||||
|
|
||||||
if [[ ${PASS} != "" ]]; then
|
if [[ ${PASS} != "" ]]; then
|
||||||
|
|
||||||
|
@ -277,14 +277,14 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
cat ~/.zen/tmp/${MOATS}/disco.aes | gpg -d --passphrase "${PASS}" --batch > ~/.zen/tmp/${MOATS}/decoded
|
cat ~/.zen/tmp/${MOATS}/disco.aes | gpg -d --passphrase "${PASS}" --batch > ~/.zen/tmp/${MOATS}/decoded
|
||||||
|
|
||||||
if [[ ! -s ~/.zen/tmp/${MOATS}/decoded ]]; then
|
if [[ ! -s ~/.zen/tmp/${MOATS}/decoded ]]; then
|
||||||
## COULD BE ONE MONTH OLDER
|
## COULD BE ONE MONTH OLDER (TODO CHOOSE VALIDITY TIME TO MOVE)
|
||||||
UPASS=$(date -d "1 month ago" +"%Y%m")
|
UPASS=$(date -d "1 month ago" +"%Y%m")
|
||||||
cat ~/.zen/tmp/${MOATS}/disco.aes | gpg -d --passphrase "${UPASS}" --batch > ~/.zen/tmp/${MOATS}/decoded
|
cat ~/.zen/tmp/${MOATS}/disco.aes | gpg -d --passphrase "${UPASS}" --batch > ~/.zen/tmp/${MOATS}/decoded
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# cat ~/.zen/tmp/${MOATS}/disco
|
# cat ~/.zen/tmp/${MOATS}/disco
|
||||||
## FORMAT IS "/?salt=${USALT}&pepper=${UPEPPER}"
|
## FORMAT IS "/?salt=${USALT}&pepper=${UPEPPER}"
|
||||||
## MADE by tools/VOEUX.print.sh WITH SALT="EMAIL G1PUB" PEPPER="G1VoeuName"
|
## MADE by tools/VOEUX.print.sh WITH USALT="EMAIL(_SEC1_SEC2)" UPEPPER="G1VoeuName OriG1PUB"
|
||||||
DISCO=$(cat ~/.zen/tmp/${MOATS}/decoded | cut -d '?' -f2)
|
DISCO=$(cat ~/.zen/tmp/${MOATS}/decoded | cut -d '?' -f2)
|
||||||
arr=(${DISCO//[=&]/ })
|
arr=(${DISCO//[=&]/ })
|
||||||
s=$(urldecode ${arr[0]} | xargs)
|
s=$(urldecode ${arr[0]} | xargs)
|
||||||
|
@ -296,36 +296,95 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
|
|
||||||
if [[ ${salt} != "" && ${pepper} != "" ]]; then
|
if [[ ${salt} != "" && ${pepper} != "" ]]; then
|
||||||
|
|
||||||
echo "secret1=$salt" ## CONTAINS "EMAIL ORIGING1PUB"
|
echo "secret1=$salt" ## CONTAINS "EMAIL(_SEC1_SEC2)"
|
||||||
player=$(echo $salt | cut -d ' ' -f 1)
|
player=$(echo $salt | cut -d '_' -f 1 | cut -d ' ' -f 1 | grep '@')
|
||||||
ORIG1=$(echo $salt | cut -d ' ' -f 2)
|
echo "player=$player"
|
||||||
|
|
||||||
echo "secret2=$pepper" ## CONTAINS "G1VoeuName"
|
# # G1BILLET+ interlinked ? ##
|
||||||
[[ ${pepper:0:2} != "G1" ]] && echo "NO GOOD KEY : $pepper" && exit 1
|
[[ $(echo "$salt" | grep '_') ]] \
|
||||||
VoeuName=$(echo $pepper | cut -c 3-)
|
&& 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}')
|
||||||
|
|
||||||
keyname="${player}_${VoeuName}"
|
echo "salt=$salt" ## CONTAINS "EMAIL"
|
||||||
echo "KeyName=$keyname"
|
echo "pepper=$pepper" ## CONTAINS "G1VoeuName ORIGING1PUB" or G1BILLET+ secret2
|
||||||
|
|
||||||
ISTHERE=$(ipfs key list -l | grep -w ${player} | cut -d ' ' -f1)
|
[[ ${pepper:0:2} == "G1" ]] \
|
||||||
echo "<h1>$player G1MISSIVE<h1> $ISTHERE" >> ~/.zen/tmp/${MOATS}/disco
|
&& 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}" \
|
||||||
|
&& 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}"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
# Recreate G1 KEY
|
|
||||||
${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)
|
|
||||||
## CHECK ORIG1 amount
|
|
||||||
echo "${MY_PATH}/../tools/jaklis/jaklis.py balance -p ${ORIG1}"
|
|
||||||
MCOINS=$(${MY_PATH}/../tools/COINScheck.sh ${ORIG1} | tail -n 1)
|
|
||||||
echo "<br><b>$MCOINS G1</b>" >> ~/.zen/tmp/${MOATS}/disco
|
|
||||||
|
|
||||||
#CONVERT TO IPNS KEY
|
#CONVERT TO IPNS KEY
|
||||||
QNS=$(${MY_PATH}/../tools/g1_to_ipfs.py ${G1PUB})
|
G1VOEUNS=$(${MY_PATH}/../tools/g1_to_ipfs.py ${G1VOEUPUB})
|
||||||
## RETRIEVE IPNS CONTENT
|
## RETRIEVE IPNS CONTENT
|
||||||
echo "http://127.0.0.1:8080/ipns/$QNS"
|
echo "http://127.0.0.1:8080/ipns/$G1VOEUNS"
|
||||||
if [[ ! -s ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt ]]; then
|
if [[ ! -s ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt ]]; then
|
||||||
|
HELLO="@PASS :: G1BILLET+ :: ${G1VOEUPUB} :: $(date) :: ${player} :: ${PLAYERORIG1}"
|
||||||
avanla=$(ps axf --sort=+utime | grep -w 'ipfs cat /ipns/$QNS' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
echo "${HELLO}"
|
||||||
[[ ! $avanla ]] && ipfs cat /ipns/$QNS > ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt &
|
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} &
|
||||||
|
) &
|
||||||
|
|
||||||
echo "<br>PLEASE RETRY IN 30 SECONDS GETTING MESSAGE FROM IPFS<br>" >> ~/.zen/tmp/${MOATS}/disco
|
echo "<br>PLEASE RETRY IN 30 SECONDS GETTING MESSAGE FROM IPFS<br>" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
(
|
(
|
||||||
|
@ -336,7 +395,7 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
|
|
||||||
fi
|
fi
|
||||||
echo "<br><br>" >> ~/.zen/tmp/${MOATS}/disco
|
echo "<br><br>" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
cat ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
cat ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
||||||
|
|
||||||
[[ ${NEWLINE} == "" || ${NEWLINE} == "undefined" ]] && echo "<br> NO NEW LINE <br>" >> ~/.zen/tmp/${MOATS}/disco
|
[[ ${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
|
[[ ${DESTMAIL} == "" || ${DESTMAIL} == "undefined" ]] && echo "<br> Missing Destination EMAIL <br>" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
|
@ -352,28 +411,29 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${DESTMAIL}) ## export ASTROTW and more
|
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${DESTMAIL}) ## export ASTROTW and more
|
||||||
echo "export ASTROTW=${ASTRONAUTENS} ASTROG1=${ASTROG1} ASTROMAIL=${DESTMAIL} ASTROFEED=${FEEDNS}"
|
echo "export ASTROTW=${ASTRONAUTENS} ASTROG1=${ASTROG1} ASTROMAIL=${DESTMAIL} ASTROFEED=${FEEDNS}"
|
||||||
|
|
||||||
## CREATE NEXT G1Missive !
|
# Create Next G1 & IPNS KEY
|
||||||
NEWIMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${DESTMAIL}" "${VoeuName}" "${MOATS}" "${ORIG1}" | tail -n 1)
|
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}"
|
||||||
# Create Next G1 & IPNS KEY
|
|
||||||
DESTG1PUB=$(${MY_PATH}/../tools/keygen"${DESTMAIL} ${ORIG1}" "G1${VoeuName}")
|
|
||||||
${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/newsecret.ipfs "${DESTMAIL} ${ORIG1}" "G1${VoeuName}"
|
|
||||||
|
|
||||||
|
orikeyname="${DESTMAIL}_${VoeuName}"
|
||||||
# INSTALL NEXT IPNS KEY ON NODE
|
# INSTALL NEXT IPNS KEY ON NODE
|
||||||
IK=$(ipfs key list -l | grep -w "${DESTMAIL}_${VoeuName}" | cut -d ' ' -f 1 )
|
IK=$(ipfs key list -l | grep -w "${orikeyname}" | cut -d ' ' -f 1 )
|
||||||
[[ ! $IK ]] && ipfs key import ${DESTMAIL}_${VoeuName} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/newsecret.ipfs
|
[[ ! $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)
|
||||||
|
|
||||||
## ADD NEWLINE TO MESSAGE
|
## ADD NEWLINE TO MESSAGE
|
||||||
if [[ ${NEWLINE} != "" ]]; then
|
if [[ ${NEWLINE} != "" ]]; then
|
||||||
CLINE=$(echo "${NEWLINE}" | detox --inline)
|
CLINE=$(echo "${NEWLINE}" | detox --inline)
|
||||||
echo "$CLINE" >> ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt ## NB: File could still being into "ipfs cat" process... TODO MAKE BETTER
|
echo "$CLINE" >> ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt ## NB: File could still being into "ipfs cat" process... TODO MAKE BETTER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "UPDATED" >> ~/.zen/tmp/${MOATS}/disco
|
echo "UPDATED" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
cat ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
cat ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt >> ~/.zen/tmp/${MOATS}/disco
|
||||||
echo "<br><img src=/ipfs/$NEWIMAGIC />" >> ~/.zen/tmp/${MOATS}/disco
|
echo "<br><img src=/ipfs/$NEWIMAGIC />" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
|
|
||||||
MILGRAM=$(ipfs add -q ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt)
|
MILGRAM=$(ipfs add -q ~/.zen/tmp/coucou/${PLAYERORIG1}.${VoeuName}.missive.txt)
|
||||||
|
|
||||||
(
|
(
|
||||||
ipfs name publish -k ${DESTMAIL}_${VoeuName} /ipfs/${MILGRAM}
|
ipfs name publish -k ${DESTMAIL}_${VoeuName} /ipfs/${MILGRAM}
|
||||||
|
@ -383,7 +443,7 @@ if [[ ${QRCODE:0:5} == "@@@@@" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
|
## TODO : EMPTY WALLET BACK TO ORIGIN
|
||||||
echo "<br><h1>${PASS} ${UPASS} TOO OLD</h1>" >> ~/.zen/tmp/${MOATS}/disco
|
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
|
echo "<br><img src='http://127.0.0.1:8080/ipfs/QmVnQ3GkQjNeXw9qM7Fb1TFzwwxqRMqD9AQyHfgx47rNdQ/your-own-data-cloud.svg' />" >> ~/.zen/tmp/${MOATS}/disco
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
echo "# NATOOLS ENCODING qrtw.ipfskey "
|
echo "# NATOOLS ENCODING qrtw.ipfskey "
|
||||||
${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc
|
${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc
|
||||||
ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16)
|
ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16)
|
||||||
echo $ENCODING
|
#~ echo $ENCODING
|
||||||
|
|
||||||
## TEST IPFS
|
## TEST IPFS
|
||||||
#~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json
|
#~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json
|
||||||
|
@ -98,8 +98,9 @@ mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
## MAKING SPECIAL amrzqr => G1Milgram TICKET
|
## MAKING SPECIAL amrzqr => G1Milgram TICKET
|
||||||
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName}" avec PASS=YYYYMM
|
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${PLAYERG1PUB}" avec PASS=YYYYMM
|
||||||
IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" | tail -n 1)
|
IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" "${G1PUB}" | tail -n 1)
|
||||||
|
cp ~/.zen/tmp/${MOATS}/START.png ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/
|
||||||
|
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS"
|
||||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "$G1PUB"
|
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "$G1PUB"
|
||||||
|
|
|
@ -216,7 +216,7 @@ function testLatency(cb) {
|
||||||
function countdown() {
|
function countdown() {
|
||||||
if (timeLeft == -1) {
|
if (timeLeft == -1) {
|
||||||
clearTimeout(timerId);
|
clearTimeout(timerId);
|
||||||
document.getElementById("countdown").innerHTML = "Créez votre TW. Remplacez les '0' par les secrets de votre G1PASS.<br>Utilisez les identifiants de votre compte GChange si vous en disposez déjà <br><form method='get' action='http://g1billet.localhost:33101' target='aframe'><input type='hidden' name='montant' value='0' ><label for='type'>Type :</label><select name='type'><option value=''>G1BILLET x 6</option><option value='jeu' selected>G1PASS</option><option value='xastro'>G1TW</option></select> <button type='submit'>Lancer Fabrication</button></form>";
|
document.getElementById("countdown").innerHTML = "<form method='get' action='http://g1billet.localhost:33101' target='aframe'><input type='hidden' name='montant' value='0' ><label for='type'>Type :</label><select name='type'><option value=''>G1BILLET x 6</option><option value='jeu' selected>G1PASS</option><option value='xastro'>G1TW</option></select> <button type='submit'>Lancer Fabrication</button></form>";
|
||||||
} else {
|
} else {
|
||||||
// elem.innerHTML = timeLeft + " s";
|
// elem.innerHTML = timeLeft + " s";
|
||||||
timeLeft--;
|
timeLeft--;
|
||||||
|
|
|
@ -7,7 +7,9 @@ MY_PATH="`dirname \"$0\"`" # relative
|
||||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
. "$MY_PATH/my.sh"
|
. "$MY_PATH/my.sh"
|
||||||
|
|
||||||
PLAYER=$1
|
PLAYER_=$1
|
||||||
|
PLAYER=$(echo "${PLAYER_}" | cut -d '_' -f 1 | cut -d ' ' -f 1) ## EMAIL_dice_words kinds
|
||||||
|
|
||||||
VoeuName=$2
|
VoeuName=$2
|
||||||
MOATS=$3
|
MOATS=$3
|
||||||
G1PUB=$4
|
G1PUB=$4
|
||||||
|
@ -22,42 +24,62 @@ UPASS=$(date '+%Y%m') # YYYYMM
|
||||||
|
|
||||||
############################################################ G1Voeu.sh use
|
############################################################ G1Voeu.sh use
|
||||||
############################################################ PRINT G1Milgram (once a month)
|
############################################################ PRINT G1Milgram (once a month)
|
||||||
if [[ ${G1PUB} != "" && ${VoeuName} != "" && -d ~/.zen/tmp/${MOATS} ]]; then
|
if [[ ${G1PUB} != "" && ${VoeuName} != "" && ${MOATS} != "" ]]; then
|
||||||
|
|
||||||
#################################################################
|
mkdir -p ~/.zen/tmp/${MOATS}
|
||||||
## MAKING SPECIAL amrzqr => G1Milgram TICKET = G1Missive
|
#################################################################
|
||||||
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} ${G1PUB} :: G1${VoeuName}" avec PASS=YYYYMM
|
## MAKING SPECIAL amrzqr => G1Milgram TICKET = G1Missive
|
||||||
SECRET1="${PLAYER} ${G1PUB}"
|
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${G1PUB}" avec PASS=YYYYMM
|
||||||
SECRET2="G1${VoeuName}"
|
# LINK TO G1BILLET with MAKE_G1BILLET.sh :: ${PLAYER}_dice_words :: G1${VoeuName} ${G1PUB}"
|
||||||
|
|
||||||
${MY_PATH}/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${VoeuName}.ipfskey "${SECRET1}" "${SECRET2}"
|
# PLAYER G1Voeu G1BILLET+ (derivated key)
|
||||||
|
SECRET1="${PLAYER}"
|
||||||
|
SECRET2="G1${VoeuName} ${G1PUB}"
|
||||||
|
|
||||||
USALT=$(echo "${SECRET1}" | jq -Rr @uri)
|
## ATTACHED G1BILLET+
|
||||||
UPEPPER=$(echo "${SECRET2}" | jq -Rr @uri)
|
[[ $(cat ${PLAYER_} | grep '_' ) ]] \
|
||||||
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
&& echo "G1BILLET+ interlinked : salt pepper refining" \
|
||||||
echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp
|
&& murge=($(echo "${PLAYER_}" | cut -d '_' -f 2- | sed 's/_/ /g' | xargs)) \
|
||||||
rm -f ~/.zen/tmp/${MOATS}/gpg.asc
|
&& i=$(( ${#murge[@]} / 2 )) && i=$(( i + 1 )) \
|
||||||
cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$UPASS" -o ~/.zen/tmp/${MOATS}/gpg.asc
|
&& extra1=$(echo "${murge[@]}" | rev | cut -d ' ' -f $i- | rev) \
|
||||||
|
&& extra2=$(echo "${murge[@]}" | cut -d ' ' -f $i-) \
|
||||||
|
&& echo "extra1=${extra1} extra2=${extra2}"
|
||||||
|
|
||||||
cp ${MY_PATH}/../images/g1magicien.png ~/.zen/tmp/${MOATS}/result.png
|
## @PASS PLAYER IPFS KEY
|
||||||
|
echo "@PASS - G1Voeu"
|
||||||
|
${MY_PATH}/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${VoeuName}.ipfskey "${SECRET1}" "${SECRET2}"
|
||||||
|
|
||||||
## MAKE amzqr WITH @@@@@ PGP G1PASS FORMAT (%40)
|
## EXTRA @PASS G1BILLET IPFS KEY
|
||||||
amzqr "$(cat ~/.zen/tmp/${MOATS}/gpg.asc | tr '-' '@' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )" \
|
[[ ${extra1} != "" && ${extra2} != "" ]] \
|
||||||
-d "$HOME/.zen/tmp/${MOATS}" \
|
&& echo "G1BILLET+ EXTRA" \
|
||||||
-l H \
|
&& ${MY_PATH}/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${VoeuName}.BILL.ipfskey "${extra1}" "${extra2}"
|
||||||
-p ~/.zen/tmp/${MOATS}/result.png -c
|
|
||||||
|
|
||||||
convert -gravity northwest -pointsize 25 -fill black -draw "text 5,5 \"${PLAYER} - ${UPASS} -\"" ~/.zen/tmp/${MOATS}/result_qrcode.png ~/.zen/tmp/${MOATS}/layer1.png
|
USALT=$(echo "${PLAYER_}" | jq -Rr @uri)
|
||||||
convert -gravity southeast -pointsize 25 -fill black -draw "text 5,5 \"${VoeuName}\"" ~/.zen/tmp/${MOATS}/layer1.png ~/.zen/tmp/${MOATS}/START.png
|
UPEPPER=$(echo "${SECRET2}" | jq -Rr @uri)
|
||||||
|
DISCO="/?salt=${USALT}&pepper=${UPEPPER}"
|
||||||
|
echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp
|
||||||
|
rm -f ~/.zen/tmp/${MOATS}/gpg.asc
|
||||||
|
cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$UPASS" -o ~/.zen/tmp/${MOATS}/gpg.asc
|
||||||
|
|
||||||
IMAGIC=$(ipfs add -Hq ~/.zen/tmp/${MOATS}/START.png | tail -n 1)
|
cp ${MY_PATH}/../images/g1magicien.png ~/.zen/tmp/${MOATS}/result.png
|
||||||
echo ${IMAGIC}
|
|
||||||
|
|
||||||
## SENDING EMAIL #############
|
## MAKE amzqr WITH @@@@@ PGP G1PASS FORMAT (%40)
|
||||||
echo "(•‿‿•) SCAN https://astroport.com/scan" > ~/.zen/tmp/${MOATS}/intro.txt
|
amzqr "$(cat ~/.zen/tmp/${MOATS}/gpg.asc | tr '-' '@' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )" \
|
||||||
mpack -a -s "(•‿‿•) : Missive ${VoeuName} - ${UPASS} - La♥Box" -d ~/.zen/tmp/${MOATS}/intro.txt ~/.zen/tmp/${MOATS}/START.png ${PLAYER} &
|
-d "$HOME/.zen/tmp/${MOATS}" \
|
||||||
|
-l H \
|
||||||
|
-p ~/.zen/tmp/${MOATS}/result.png -c
|
||||||
|
|
||||||
exit 0
|
convert -gravity northwest -pointsize 25 -fill black -draw "text 5,5 \"${PLAYER} - ${UPASS} -\"" ~/.zen/tmp/${MOATS}/result_qrcode.png ~/.zen/tmp/${MOATS}/layer1.png
|
||||||
|
convert -gravity southeast -pointsize 25 -fill black -draw "text 5,5 \"${VoeuName}\"" ~/.zen/tmp/${MOATS}/layer1.png ~/.zen/tmp/${MOATS}/START.png
|
||||||
|
|
||||||
|
IMAGIC=$(ipfs add -Hq ~/.zen/tmp/${MOATS}/START.png | tail -n 1)
|
||||||
|
echo ${IMAGIC}
|
||||||
|
|
||||||
|
## SENDING EMAIL TOO LONG (BETTER FROM ./command.sh) #############
|
||||||
|
#~ echo "(•‿‿•) SCAN https://astroport.com/scan" > ~/.zen/tmp/${MOATS}/intro.txt
|
||||||
|
#~ mpack -a -s "(•‿‿•) : Missive ${VoeuName} - ${UPASS} - La♥Box" -d ~/.zen/tmp/${MOATS}/intro.txt ~/.zen/tmp/${MOATS}/START.png ${PLAYER} &
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
fi
|
fi
|
||||||
############################################################
|
############################################################
|
||||||
|
|
|
@ -1,4 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
################################################################################
|
||||||
|
# Author: Fred (support@qo-op.com)
|
||||||
|
# Version: 0.12
|
||||||
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
|
################################################################################
|
||||||
|
# Create HTML page with image caroussel
|
||||||
|
# If no image directory = create G1Station Local PLAYER accounts
|
||||||
MY_PATH="`dirname \"$0\"`" # relative
|
MY_PATH="`dirname \"$0\"`" # relative
|
||||||
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
. "$MY_PATH/my.sh"
|
. "$MY_PATH/my.sh"
|
||||||
|
@ -7,85 +14,86 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
img_dir="$1"
|
img_dir="$1"
|
||||||
|
|
||||||
if [[ ! -d $img_dir ]]; then
|
if [[ ! -d $img_dir ]]; then
|
||||||
|
|
||||||
PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null))
|
||||||
[[ ! $PLAYERONE ]] && echo "NO PLAYER IN THE GAME HERE" && exit 1
|
[[ ! $PLAYERONE ]] && echo "NO PLAYER IN THE GAME HERE" && exit 1
|
||||||
|
|
||||||
echo "ASTROPORT STATION CAROUSEL MODE"
|
echo "ASTROPORT STATION CAROUSEL MODE"
|
||||||
rm -Rf ~/.zen/tmp/carousel 2>/dev/null
|
rm -Rf ~/.zen/tmp/carousel 2>/dev/null
|
||||||
mkdir -p ~/.zen/tmp/carousel
|
mkdir -p ~/.zen/tmp/carousel
|
||||||
# Make it with latest PLAYERS WALLETS
|
|
||||||
## RUNING FOR ALL LOCAL PLAYERS
|
|
||||||
for PLAYER in ${PLAYERONE[@]}; do
|
|
||||||
|
|
||||||
pub=$(cat ~/.zen/game/players/$PLAYER/.g1pub)
|
## RUNING FOR ALL LOCAL PLAYERS
|
||||||
|
for PLAYER in ${PLAYERONE[@]}; do
|
||||||
|
|
||||||
# Get PLAYER wallet amount :: ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/COINS
|
pub=$(cat ~/.zen/game/players/$PLAYER/.g1pub)
|
||||||
echo "$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey balance"
|
|
||||||
COINS=$($MY_PATH/COINScheck.sh ${pub} | tail -n 1)
|
|
||||||
echo "+++ ${PLAYER} have $COINS Ğ1 Coins +++"
|
|
||||||
|
|
||||||
## USE G1BARRE OR G1WorldMap.png AS 1ST IMAGE
|
# Get PLAYER wallet amount :: ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/COINS
|
||||||
#~ curl -m 3 -so ~/.zen/tmp/carousel/${pub}.one.png \
|
echo "$MY_PATH/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey balance"
|
||||||
#~ "https://g1sms.fr/g1barre/image.php?pubkey=${pub}&target=20000&title=${PLAYER}&node=g1.asycn.io&start_date=2020-01-01&display_pubkey=true&display_qrcode=true"
|
COINS=$($MY_PATH/COINScheck.sh ${pub} | tail -n 1)
|
||||||
#~ [[ $(file -b ~/.zen/tmp/carousel/${pub}.one.png | cut -d ' ' -f 1) == "PNG" ]] \
|
echo "+++ ${PLAYER} have $COINS Ğ1 Coins +++"
|
||||||
#~ && echo "GOT ~/.zen/tmp/carousel/${pub}.one.png" \
|
|
||||||
#~ || cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png
|
|
||||||
|
|
||||||
cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png
|
## USE G1BARRE OR G1WorldMap.png AS 1ST IMAGE
|
||||||
|
#~ curl -m 3 -so ~/.zen/tmp/carousel/${pub}.one.png \
|
||||||
|
#~ "https://g1sms.fr/g1barre/image.php?pubkey=${pub}&target=20000&title=${PLAYER}&node=g1.asycn.io&start_date=2020-01-01&display_pubkey=true&display_qrcode=true"
|
||||||
|
#~ [[ $(file -b ~/.zen/tmp/carousel/${pub}.one.png | cut -d ' ' -f 1) == "PNG" ]] \
|
||||||
|
#~ && echo "GOT ~/.zen/tmp/carousel/${pub}.one.png" \
|
||||||
|
#~ || cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png
|
||||||
|
|
||||||
##################
|
cp $MY_PATH/../images/G1WorldMap.png ~/.zen/tmp/carousel/${pub}.one.png
|
||||||
## PREPARE LOOP LINK LINE
|
|
||||||
ASTRONAUTENS=$(cat ~/.zen/game/players/${PLAYER}/.playerns)
|
|
||||||
[[ $COINS -gt 0 ]] \
|
|
||||||
&& echo "<a href=\"javascript:homeAstroportStation('"$myASTROPORT"/?qrcode="$ASTRONAUTENS"', 'page', '3000')\" title=\"$PLAYER ($COINS G1) CHARGEUR DE G1BILLET \">_REPLACE_</a>" > ~/.zen/tmp/carousel/${pub}.insert \
|
|
||||||
|| echo "_REPLACE_" > ~/.zen/tmp/carousel/${pub}.insert
|
|
||||||
|
|
||||||
## EXTRACT G1Voeu FROM PLAYER TW
|
##################
|
||||||
echo "Ŋ1Flux ____ " > ~/.zen/tmp/carousel/${pub}.button
|
## PREPARE LOOP LINK LINE
|
||||||
INDEX=~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
ASTRONAUTENS=$(cat ~/.zen/game/players/${PLAYER}/.playerns)
|
||||||
|
[[ $COINS -gt 0 ]] \
|
||||||
|
&& echo "<a href=\"javascript:homeAstroportStation('"$myASTROPORT"/?qrcode="$ASTRONAUTENS"', 'page', '3000')\" title=\"$PLAYER ($COINS G1) CHARGEUR DE G1BILLET \">_REPLACE_</a>" > ~/.zen/tmp/carousel/${pub}.insert \
|
||||||
|
|| echo "_REPLACE_" > ~/.zen/tmp/carousel/${pub}.insert
|
||||||
|
|
||||||
if [[ -s ${INDEX} ]]; then
|
## EXTRACT G1Voeu FROM PLAYER TW
|
||||||
# EXTRACT [tag[moa]] : ~/.zen/game/players/${PLAYER}/moa.jpg
|
echo "Ŋ1Flux ____ " > ~/.zen/tmp/carousel/${pub}.button
|
||||||
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.moa.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[moa]]'
|
INDEX=~/.zen/game/players/${PLAYER}/ipfs/moa/index.html
|
||||||
cat ~/.zen/tmp/${PLAYER}.moa.json | jq -r '.[].text' | base64 -d > ~/.zen/game/players/${PLAYER}/moa.jpg
|
|
||||||
echo "DESSIN DE MOA : ~/.zen/game/players/${PLAYER}/moa.jpg"
|
|
||||||
[[ $(file -b ~/.zen/game/players/${PLAYER}/moa.jpg | cut -d ' ' -f 1) == "JPEG" ]] \
|
|
||||||
&& convert ~/.zen/game/players/${PLAYER}/moa.jpg -resize 200 ~/.zen/tmp/moa.jpg \
|
|
||||||
&& composite -compose Over -gravity Center -geometry +0+0 ~/.zen/tmp/moa.jpg ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/carousel/${pub}.one.png
|
|
||||||
|
|
||||||
## EXTRACT [tag[G1Voeu]] : ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
if [[ -s ${INDEX} ]]; then
|
||||||
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
|
# EXTRACT [tag[moa]] : ~/.zen/game/players/${PLAYER}/moa.jpg
|
||||||
cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.moa.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[moa]]'
|
||||||
while read WISH
|
cat ~/.zen/tmp/${PLAYER}.moa.json | jq -r '.[].text' | base64 -d > ~/.zen/game/players/${PLAYER}/moa.jpg
|
||||||
do
|
echo "DESSIN DE MOA : ~/.zen/game/players/${PLAYER}/moa.jpg"
|
||||||
[[ ${WISH} == "" || ${WISH} == "null" ]] && echo "BLURP. EMPTY WISH" && continue
|
[[ $(file -b ~/.zen/game/players/${PLAYER}/moa.jpg | cut -d ' ' -f 1) == "JPEG" ]] \
|
||||||
WISHNAME=$(cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .title')
|
&& convert ~/.zen/game/players/${PLAYER}/moa.jpg -resize 200 ~/.zen/tmp/moa.jpg \
|
||||||
[[ ! ${WISHNAME} ]] && echo "WISH sans NOM - CONTINUE -" && continue
|
&& composite -compose Over -gravity Center -geometry +0+0 ~/.zen/tmp/moa.jpg ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/carousel/${pub}.one.png
|
||||||
echo "<button onclick=\"homeAstroportStation('$myASTROPORT/?qrcode=G1G1$WISHNAME&tw=$ASTRONAUTENS', 'tab', 9000)\">G1$WISHNAME</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
|
||||||
done < ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
## EXTRACT [tag[G1Voeu]] : ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
||||||
fi
|
tiddlywiki --load ${INDEX} --output ~/.zen/tmp --render '.' "${PLAYER}.g1voeu.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[G1Voeu]]'
|
||||||
echo "<button onclick=\"window.open('"$myIPFS"/ipns/"$ASTRONAUTENS"');\">TW</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq -r '.[].wish' > ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
||||||
|
while read WISH
|
||||||
|
do
|
||||||
|
[[ ${WISH} == "" || ${WISH} == "null" ]] && echo "BLURP. EMPTY WISH" && continue
|
||||||
|
WISHNAME=$(cat ~/.zen/tmp/${PLAYER}.g1voeu.json | jq .[] | jq -r 'select(.wish=="'${WISH}'") | .title')
|
||||||
|
[[ ! ${WISHNAME} ]] && echo "WISH sans NOM - CONTINUE -" && continue
|
||||||
|
echo "<button onclick=\"homeAstroportStation('$myASTROPORT/?qrcode=G1G1$WISHNAME&tw=$ASTRONAUTENS', 'tab', 9000)\">G1$WISHNAME</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
||||||
|
done < ~/.zen/tmp/${PLAYER}.g1wishes.txt
|
||||||
|
fi
|
||||||
|
echo "<button onclick=\"window.open('"$myIPFS"/ipns/"$ASTRONAUTENS"');\">TW</button>" >> ~/.zen/tmp/carousel/${pub}.button
|
||||||
##################
|
##################
|
||||||
|
|
||||||
|
|
||||||
# CREATE G1 AMZQR
|
# CREATE G1 AMZQR
|
||||||
CIMG="$MY_PATH/../images/g1ticket.png"
|
CIMG="$MY_PATH/../images/g1ticket.png"
|
||||||
amzqr ${pub} -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/
|
amzqr ${pub} -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/
|
||||||
convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 250 ~/.zen/tmp/QR.png
|
convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 250 ~/.zen/tmp/QR.png
|
||||||
# ADD IT
|
# ADD IT
|
||||||
composite -compose Over -gravity NorthEast -geometry +0+0 ~/.zen/tmp/QR.png ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/one.png
|
composite -compose Over -gravity NorthEast -geometry +0+0 ~/.zen/tmp/QR.png ~/.zen/tmp/carousel/${pub}.one.png ~/.zen/tmp/one.png
|
||||||
|
|
||||||
## WRITE ON IT : ASK FOR REFILL
|
## WRITE ON IT : ASK FOR REFILL
|
||||||
convert -font 'Liberation-Sans' \
|
convert -font 'Liberation-Sans' \
|
||||||
-pointsize 80 -fill purple -draw 'text 50,120 "'"$COINS Ğ1"'"' \
|
-pointsize 80 -fill purple -draw 'text 50,120 "'"$COINS Ğ1"'"' \
|
||||||
-pointsize 30 -fill purple -draw 'text 40, 180 "'"$PLAYER"'"' \
|
-pointsize 30 -fill purple -draw 'text 40, 180 "'"$PLAYER"'"' \
|
||||||
-pointsize 14 -fill white -draw 'text 40, 200 "'"$(date)"'"' \
|
-pointsize 14 -fill white -draw 'text 40, 200 "'"$(date)"'"' \
|
||||||
"${HOME}/.zen/tmp/one.png" "${HOME}/.zen/tmp/carousel/${pub}.png" \
|
"${HOME}/.zen/tmp/one.png" "${HOME}/.zen/tmp/carousel/${pub}.png" \
|
||||||
&& rm ${HOME}/.zen/tmp/carousel/${pub}.one.png
|
&& rm ${HOME}/.zen/tmp/carousel/${pub}.one.png
|
||||||
|
|
||||||
|
|
||||||
done
|
done
|
||||||
img_dir="$HOME/.zen/tmp/carousel"
|
img_dir="$HOME/.zen/tmp/carousel"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Set Path to HTML page
|
#Set Path to HTML page
|
||||||
|
@ -155,7 +163,7 @@ if [[ $i =~ \.(JPG|jpg|PNG|png|JPEG|jpeg|GIF|gif)$ ]]; then
|
||||||
|
|
||||||
MORE="${i%.png}.insert"
|
MORE="${i%.png}.insert"
|
||||||
echo "$MORE"
|
echo "$MORE"
|
||||||
CODEBOUTON="$(cat ${i%.png}.button)"
|
CODEBOUTON="$(cat ${i%.png}.button 2>/dev/null)"
|
||||||
echo "$CODEBOUTON"
|
echo "$CODEBOUTON"
|
||||||
|
|
||||||
LINK="<img src=\"/ipfs/$ilink\" alt=\"$img_alt\" width=\"$img_width\" height=\"$img_height\">"
|
LINK="<img src=\"/ipfs/$ilink\" alt=\"$img_alt\" width=\"$img_width\" height=\"$img_height\">"
|
||||||
|
|
12
tools/my.sh
12
tools/my.sh
|
@ -13,7 +13,7 @@ Revert() {
|
||||||
}
|
}
|
||||||
|
|
||||||
isLan() {
|
isLan() {
|
||||||
local isLan=$(ip route |awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
local isLan=$(ip route | awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
||||||
|| route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
|| route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \
|
||||||
|| true)
|
|| true)
|
||||||
[ -n "$isLan" ] && echo "$isLan" || true
|
[ -n "$isLan" ] && echo "$isLan" || true
|
||||||
|
@ -404,3 +404,13 @@ myASTROTUBE="https://$(myAstroTube)"
|
||||||
&& myHOST="astroport.$(myHostName)" \
|
&& myHOST="astroport.$(myHostName)" \
|
||||||
&& myG1BILLET="http://${myIP}:33101" \
|
&& myG1BILLET="http://${myIP}:33101" \
|
||||||
|| true
|
|| true
|
||||||
|
|
||||||
|
## zIP :: PUT YOUR Internet Box IP IN ~/.zen/♥Box ( Forward PORTS 8080 4001 5001 33101 33102 1234 12345 45780 45781 )
|
||||||
|
[ -s "~/.zen/♥Box" ] \
|
||||||
|
&& zIP=$(cat ~/.zen/♥Box)
|
||||||
|
&& myASTROPORT="http://$(zIP):1234" \
|
||||||
|
&& myAPI="http://$(zIP):5001" \
|
||||||
|
&& myIPFS="http://$(zIP):8080" \
|
||||||
|
&& myHOST="$(zIP)" \
|
||||||
|
&& myG1BILLET="http://$(zIP):33101" \
|
||||||
|
|| true
|
||||||
|
|
Loading…
Reference in New Issue