Evolution Milgram workflow & UX
parent
f78c8041f0
commit
6ab293ff05
172
API/QRCODE.sh
172
API/QRCODE.sh
|
@ -12,13 +12,19 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
|
||||
start=`date +%s`
|
||||
|
||||
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
|
||||
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"
|
||||
### transfer variables according to script
|
||||
QRCODE=$THAT
|
||||
TYPE=$WHAT
|
||||
|
||||
echo "COOKIE : $COOKIE"
|
||||
QRCODE="$THAT"
|
||||
|
||||
HTTPCORS="HTTP/1.1 200 OK
|
||||
Access-Control-Allow-Origin: ${myASTROPORT}
|
||||
|
@ -89,11 +95,10 @@ fi
|
|||
|
||||
################################################################################
|
||||
## QRCODE = PGP ENCRYPTED STRING
|
||||
# /?qrcode=-----BEGIN%20PGP%20MESSAGE-----~~jA0ECQMC5iqIY7XLnGn_0koBJB5S2Sy1p%2FHr8CKFgWdZ9_j%2Fb2qdOznICGvqGCXY~7Flw6YtiabngvY6biq%2F0vpiFL8t8BSbMZe0GLBU90EMBrhzEiyPnh__bzQ%3D%3D~%3D9UIj~-----END%20PGP%20MESSAGE-----~
|
||||
# /?qrcode=-----BEGIN%20PGP%20MESSAGE-----~~jA0ECQMC5iq8 [ ......... ] _Q%3D%3D~%3D9UIj~-----END%20PGP%20MESSAGE-----~
|
||||
# &pass=coucou&history/read/pay/login=(1|email)&g1pub=_DESTINATAIRE_
|
||||
################################################################################
|
||||
if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
||||
echo ${QRCODE}
|
||||
PASS=$(urldecode ${THIS})
|
||||
echo "## THIS IS A PGP ENCRYPTED QRCODE LOOK - PASS ${PASS} - $APPNAME"
|
||||
|
||||
|
@ -163,7 +168,7 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
|| echo ${WHAT} > ${DESTFILE}
|
||||
cat ${DESTFILE}
|
||||
|
||||
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>${VAL} <br> $DES + ${WHAT} </h3><h2>OK</h2>" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
fi
|
||||
fi
|
||||
|
@ -190,7 +195,7 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
|
||||
## history & read
|
||||
# cp ~/.zen/tmp/${MOATS}/secret.key ~/.zen/tmp/
|
||||
qrencode -s 6 -o "${HOME}/.zen/tmp/${MOATS}/disco.qr.png" "$G1PUB"
|
||||
qrencode -s 6 -o "${HOME}/.zen/tmp/${MOATS}/disco.qr.png" "${G1PUB}"
|
||||
QRURL=${myIPFS}/ipfs/$(ipfs add -q ~/.zen/tmp/${MOATS}/disco.qr.png)
|
||||
ONVADIRE="<h1> ~ ${CURCOINS} Ğ1</h1>${G1PUB}<br><br><img src=${QRURL} />"
|
||||
echo "${ONVADIRE}" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
@ -251,6 +256,153 @@ if [[ ${QRCODE:0:5} == "~~~~~" ]]; then
|
|||
fi
|
||||
|
||||
################################################################################
|
||||
## 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
|
||||
|
||||
echo "## G1MISSIVE - PASS ${PASS} - $APPNAME"
|
||||
|
||||
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
|
||||
## COULD BE ONE MONTH OLDER
|
||||
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}"
|
||||
## MADE by tools/VOEUX.print.sh WITH SALT="EMAIL G1PUB" PEPPER="G1VoeuName"
|
||||
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
|
||||
|
||||
echo "secret1=$salt" ## CONTAINS "EMAIL ORIGING1PUB"
|
||||
player=$(echo $salt | cut -d ' ' -f 1)
|
||||
ORIG1=$(echo $salt | cut -d ' ' -f 2)
|
||||
|
||||
echo "secret2=$pepper" ## CONTAINS "G1VoeuName"
|
||||
[[ ${pepper:0:2} != "G1" ]] && echo "NO GOOD KEY : $pepper" && exit 1
|
||||
VoeuName=$(echo $pepper | cut -c 3-)
|
||||
|
||||
keyname="${player}_${VoeuName}"
|
||||
echo "KeyName=$keyname"
|
||||
|
||||
ISTHERE=$(ipfs key list -l | grep -w ${player} | cut -d ' ' -f1)
|
||||
echo "G1MISSIVE : $ISTHERE" >> ~/.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 "MISSIVE : $MCOINS G1" >> ~/.zen/tmp/${MOATS}/disco
|
||||
|
||||
#CONVERT TO IPNS KEY
|
||||
QNS=$(${MY_PATH}/../tools/g1_to_ipfs.py ${G1PUB})
|
||||
## RETRIEVE IPNS CONTENT
|
||||
echo "http://127.0.0.1:8080/ipns/$QNS"
|
||||
if [[ ! -s ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt ]]; then
|
||||
|
||||
avanla=$(ps axf --sort=+utime | grep -w 'ipfs cat /ipns/$QNS' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
|
||||
[[ ! $avanla ]] && ipfs cat /ipns/$QNS > ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt &
|
||||
|
||||
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
|
||||
cat ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt >> ~/.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
|
||||
|
||||
## 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
|
||||
|
||||
## CREATE NEXT G1Missive !
|
||||
NEWIMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${DESTMAIL}" "${VoeuName}" "${MOATS}" "${ORIG1}" | tail -n 1)
|
||||
|
||||
# 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}"
|
||||
|
||||
# INSTALL NEXT IPNS KEY ON NODE
|
||||
IK=$(ipfs key list -l | grep -w "${DESTMAIL}_${VoeuName}" | cut -d ' ' -f 1 )
|
||||
[[ ! $IK ]] && ipfs key import ${DESTMAIL}_${VoeuName} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/newsecret.ipfs
|
||||
|
||||
## ADD NEWLINE TO MESSAGE
|
||||
if [[ ${NEWLINE} != "" ]]; then
|
||||
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
|
||||
fi
|
||||
|
||||
echo "UPDATED" >> ~/.zen/tmp/${MOATS}/disco
|
||||
cat ~/.zen/tmp/coucou/${ORIG1}.${VoeuName}.missive.txt >> ~/.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)
|
||||
|
||||
(
|
||||
ipfs name publish -k ${DESTMAIL}_${VoeuName} /ipfs/${MILGRAM}
|
||||
echo "${VoeuName} ${PASS} G1Milgram emitted ${DESTMAIL}"
|
||||
) &
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
## QRCODE = G1* : MODE G1VOEU : RETURN WISHNS - IPNS App link - or direct tw tag selected json
|
||||
# ~/?qrcode=G1Tag&tw=_IPNS_PLAYER_(&json)
|
||||
################################################################################
|
||||
|
|
|
@ -27,6 +27,7 @@ for PLAYER in ${PLAYERONE[@]}; do
|
|||
# CLEAN LOST ACCOUNT
|
||||
[[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] \
|
||||
&& rm -Rf ~/.zen/game/players/${PLAYER} \
|
||||
&& mv ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.${PLAYER} 2>/dev/null \
|
||||
&& echo "LOST ${PLAYER} IS OUT" \
|
||||
&& continue
|
||||
|
||||
|
|
|
@ -136,7 +136,7 @@ while true; do
|
|||
|
||||
if [[ -d ~/.zen/tmp/swarm/${znod} ]]; then
|
||||
echo "COMPLETING MY SWARM DATA WITH ZNOD=${znod}"
|
||||
mkdir ~/.zen/tmp/swarm/${znod}
|
||||
mkdir -p ~/.zen/tmp/swarm/${znod}
|
||||
ipfs --timeout 180s get -o ~/.zen/tmp/swarm/${znod} /ipns/${znod}
|
||||
else
|
||||
echo "____________ KNOW ${znod}"
|
||||
|
|
|
@ -10,22 +10,22 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
PLAYER=$1
|
||||
VoeuName=$2
|
||||
MOATS=$3
|
||||
G1PUB=$4
|
||||
|
||||
UPASS=$(date '+%Y%m') # YYYYMM
|
||||
|
||||
[[ ${PLAYER} == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
|
||||
[[ ${PLAYER} == "" ]] && echo "PLAYER manquant" && exit 1
|
||||
PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null)
|
||||
|
||||
[[ ${G1PUB} == "" ]] && G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null)
|
||||
[[ ${G1PUB} == "" ]] && echo "G1PUB manquant" && exit 1
|
||||
ASTRONAUTENS=$(ipfs key list -l | grep -w "${G1PUB}" | cut -d ' ' -f 1)
|
||||
[[ ${ASTRONAUTENS} == "" ]] && echo "ASTRONAUTE manquant" && exit 1
|
||||
|
||||
############################################################ G1Voeu.sh use
|
||||
############################################################ PRINT G1Milgram (once a month)
|
||||
if [[ ${G1PUB} != "" && ${VoeuName} != "" && -d ~/.zen/tmp/${MOATS} ]]; then
|
||||
|
||||
#################################################################
|
||||
## MAKING SPECIAL amrzqr => G1Milgram TICKET
|
||||
## MAKING SPECIAL amrzqr => G1Milgram TICKET = G1Missive
|
||||
## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} ${G1PUB} :: G1${VoeuName}" avec PASS=YYYYMM
|
||||
SECRET1="${PLAYER} ${G1PUB}"
|
||||
SECRET2="G1${VoeuName}"
|
||||
|
@ -47,7 +47,7 @@ ASTRONAUTENS=$(ipfs key list -l | grep -w "${G1PUB}" | cut -d ' ' -f 1)
|
|||
-l H \
|
||||
-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
|
||||
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)
|
||||
|
@ -93,7 +93,8 @@ select zwish in "${vlist[@]}"; do
|
|||
;;
|
||||
|
||||
*) echo "IMPRESSION ${voeu}"
|
||||
TITLE=$(echo ${zwish} | cut -d ':' -f1) ## Get Voeu title
|
||||
|
||||
VoeuName=$(echo ${zwish} | cut -d ':' -f1) ## Get VoeuName
|
||||
voeu=$(echo ${zwish} | cut -d ':' -f2) ## Get G1PUB part
|
||||
|
||||
VOEUXNS=$(ipfs key list -l | grep -w ${voeu} | cut -d ' ' -f1)
|
||||
|
@ -106,43 +107,52 @@ select zwish in "${vlist[@]}"; do
|
|||
"TW")
|
||||
echo "Changer de Gateway $myIPFS ?"
|
||||
read GW && [[ ! $GW ]] && GW="$myIPFS"
|
||||
qrencode -s 12 -o "$HOME/.zen/game/world/${TITLE}/${voeu}/QR.WISHLINK.png" "$GW/ipns/$VOEUXNS"
|
||||
convert $HOME/.zen/game/world/${TITLE}/${voeu}/QR.WISHLINK.png -resize 600 ~/.zen/tmp/${MOATS}/START.png
|
||||
echo " QR code ${TITLE} : $GW/ipns/$VOEUXNS"
|
||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${voeu}/QR.WISHLINK.png" "$GW/ipns/$VOEUXNS"
|
||||
convert $HOME/.zen/game/world/${VoeuName}/${voeu}/QR.WISHLINK.png -resize 600 ~/.zen/tmp/${MOATS}/START.png
|
||||
echo " QR code ${VoeuName} : $GW/ipns/$VOEUXNS"
|
||||
break
|
||||
;;
|
||||
|
||||
"Ğ1")
|
||||
qrencode -s 12 -o "$HOME/.zen/game/world/${TITLE}/${voeu}/G1PUB.png" "${voeu}"
|
||||
convert $HOME/.zen/game/world/${TITLE}/${voeu}/G1PUB.png -resize 600 ~/.zen/tmp/${MOATS}/START.png
|
||||
qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${voeu}/G1PUB.png" "${voeu}"
|
||||
convert $HOME/.zen/game/world/${VoeuName}/${voeu}/G1PUB.png -resize 600 ~/.zen/tmp/${MOATS}/START.png
|
||||
break
|
||||
;;
|
||||
|
||||
"Ğ1Milgram")
|
||||
GW="https://qo-op.com"
|
||||
|
||||
GW="(•‿‿•) SCAN https://astroport.com/scan"
|
||||
# CREATE G1Milgram
|
||||
IMAGIC=$(${MY_PATH}/VOEUX.print.sh "${PLAYER}" "${TITLE}" "${MOATS}" | tail -n 1)
|
||||
IMAGIC=$(${MY_PATH}/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" | tail -n 1)
|
||||
|
||||
## EXTRACT TEXT FROM TIDDLER
|
||||
tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu \
|
||||
--render '.' "${PLAYER}.${TITLE}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${TITLE}"
|
||||
--render '.' "${PLAYER}.${VoeuName}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${VoeuName}"
|
||||
|
||||
cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.${TITLE}.json | jq -r '.[].text' > ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/index.html
|
||||
|
||||
MILGRAM=$(ipfs add -q ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/index.html)
|
||||
# cat ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/${PLAYER}.${VoeuName}.json | jq -r '.[].text' | html2text > ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/index.txt
|
||||
## COULD USE TEXT FROM TIDDLER (TODO)
|
||||
echo "POUVEZ-VOUS REALISER CE SOUHAIT? Sinon relayez cette missive. SVP." > ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/index.txt
|
||||
MILGRAM=$(ipfs add -q ~/.zen/tmp/${IPFSNODEID}/${PLAYER}/g1voeu/index.txt)
|
||||
|
||||
xdg-open http://ipfs.localhost:8080/ipfs/${IMAGIC}
|
||||
|
||||
# ${TITLE} key
|
||||
IK=$(ipfs key list -l | grep -w "${PLAYER}_${TITLE}" | cut -d ' ' -f 1 )
|
||||
[[ $IK ]] && ipfs key rm ${PLAYER}_${TITLE}
|
||||
ipfs key import ${PLAYER}_${TITLE} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${TITLE}.ipfskey
|
||||
IK=$(ipfs key list -l | grep -w "${PLAYER}_${TITLE}" | cut -d ' ' -f 1 )
|
||||
# ${VoeuName} key
|
||||
IK=$(ipfs key list -l | grep -w "${PLAYER}_${VoeuName}" | cut -d ' ' -f 1 )
|
||||
[[ $IK ]] && ipfs key rm ${PLAYER}_${VoeuName}
|
||||
ipfs key import ${PLAYER}_${VoeuName} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${VoeuName}.ipfskey
|
||||
IK=$(ipfs key list -l | grep -w "${PLAYER}_${VoeuName}" | cut -d ' ' -f 1 )
|
||||
|
||||
xdg-open http://ipfs.localhost:8080/ipfs/${MILGRAM}
|
||||
|
||||
echo "$GW" > ~/.zen/tmp/${MOATS}/intro.txt
|
||||
|
||||
## SEND BY EMAIL #############
|
||||
mpack -a -s "♥Box : ${UPASS} Missive ... (•‿‿•)" -d ~/.zen/tmp/${MOATS}/intro.txt ~/.zen/tmp/${MOATS}/START.png ${PLAYER} &
|
||||
|
||||
(
|
||||
ipfs name publish -k ${PLAYER}_${TITLE} /ipfs/${MILGRAM}
|
||||
echo "${TITLE} ${UPASS} G1Milgram emitted ${PLAYER}"
|
||||
ipfs name publish -k ${PLAYER}_${VoeuName} /ipfs/${MILGRAM}
|
||||
echo "${VoeuName} ${UPASS} G1Milgram emitted ${PLAYER}"
|
||||
xdg-open http://ipfs.localhost:8080/ipns/${IK}
|
||||
) &
|
||||
|
||||
break
|
||||
|
@ -155,7 +165,7 @@ select zwish in "${vlist[@]}"; do
|
|||
esac
|
||||
done
|
||||
|
||||
convert -gravity northwest -pointsize 40 -fill black -draw "text 50,2 \"${TITLE} ($typ)\"" ~/.zen/tmp/${MOATS}/START.png ~/.zen/tmp/${MOATS}/g1voeu1.png
|
||||
convert -gravity northeast -pointsize 30 -fill black -draw "text 50,2 \"${VoeuName} ($typ)\"" ~/.zen/tmp/${MOATS}/START.png ~/.zen/tmp/${MOATS}/g1voeu1.png
|
||||
convert -gravity southeast -pointsize 30 -fill black -draw "text 100,2 \"${GW}\"" ~/.zen/tmp/${MOATS}/g1voeu1.png ~/.zen/tmp/${MOATS}/g1voeu.png
|
||||
|
||||
#~ echo "~/.zen/tmp/${MOATS}/g1voeu.png READY ?"
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<link rel="icon" type="image/x-icon" href="http://127.0.0.1:8080/ipfs/QmQLQ5WdCEc7mpKw5rhUujUU1URKweei4Bb4esyVNd9Atx/favicon.ico">
|
||||
<title>♥Box - G1Missive - </title>
|
||||
<link rel="icon" type="image/x-icon" href="http://127.0.0.1:8080/ipfs/QmeDx4rAhXaMfmFNzi12iCinG7vpvMnMf9GvB4iigbPjJ9">
|
||||
<title>- G1Missive - </title>
|
||||
<link rel="stylesheet" href="http://127.0.0.1:8080/ipfs/QmQLQ5WdCEc7mpKw5rhUujUU1URKweei4Bb4esyVNd9Atx/G1PalPay_fichiers/demo.css">
|
||||
|
||||
<script src="http://127.0.0.1:8080/ipfs/QmYD4y1pXHVnGxxFcn2LWo84ytwmWdNbkyUeFnPCbrpUQy/openpgp.min.js"></script>
|
||||
|
@ -17,7 +17,7 @@
|
|||
<style>
|
||||
|
||||
body {
|
||||
background-image:url("http://127.0.0.1:8080/ipfs/QmPjA3g1ZK45VGGLSudZJ5VVtsGpbmyaokuj17HuPffVHY");
|
||||
background-image:url("http://127.0.0.1:8080/ipfs/QmWm9b7obNEqiomDNLBkMbxTJ5AvgWhiv63tTzRMAZPbGi");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
padding: 0;
|
||||
|
@ -49,7 +49,7 @@ header {
|
|||
position: absolute;
|
||||
bottom: 2%;
|
||||
left: 2%;
|
||||
width: 800px;
|
||||
width: 70%;
|
||||
visibility: hidden;
|
||||
}
|
||||
h1 {
|
||||
|
@ -80,7 +80,11 @@ a {
|
|||
padding-top: 15px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#ainfo {
|
||||
position: absolute;
|
||||
top: 2%;
|
||||
left: 50%;
|
||||
}
|
||||
#showoff {
|
||||
float: right;
|
||||
width: 30%;
|
||||
|
@ -94,7 +98,7 @@ a {
|
|||
}
|
||||
|
||||
#container {
|
||||
top: 120px;
|
||||
top: 10px;
|
||||
right: 0px;
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
|
@ -110,7 +114,8 @@ a {
|
|||
<div id="demo">
|
||||
<div id="description">
|
||||
<header>
|
||||
<h1><a href="http://astroport.localhost:1234"><span>♥Box</span> Ğ1Missive !</a></h1><br>
|
||||
<h1><a href="http://astroport.localhost:1234"><span>♥Box</span> petit Monde </a></h1><br>
|
||||
<p>Résolvez cette énigme où envoyez ce message à un de vos amis qui saurait (ou non) y répondre...</p>
|
||||
</header>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -122,11 +127,12 @@ a {
|
|||
<strong><div id="countdown">____</div></strong>
|
||||
|
||||
<p><input type="hidden" id="g1pub" value="DsEx1pS33vzYZg4MroyBV9hCw98j1gtHEhwiZ5tK7ech"/></p>
|
||||
<p><input type="text" id="newline" value=""/></p>
|
||||
<p>Email : <input type="text" id="email" value=""/></p>
|
||||
<p>NewLine : <input type="text" id="newline" value=""/></p>
|
||||
|
||||
<div id="appname">
|
||||
|
||||
<input type="radio" id="r0" name="appname" value="milgram" checked="checked"><p><b>G1PASS</b></p>
|
||||
<input type="radio" id="r0" name="appname" value="milgram" checked="checked"><p><b>G1Missive</b></p>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -138,35 +144,37 @@ a {
|
|||
|
||||
<script type="text/javascript">
|
||||
|
||||
var currentDate = new Date();
|
||||
var year = currentDate.getFullYear();
|
||||
var month = (currentDate.getMonth() + 1).toString().padStart(2, 0);
|
||||
var dateInYYYYMM = year + month;
|
||||
alert(dateInYYYYMM);
|
||||
var currentDate = new Date();
|
||||
var year = currentDate.getFullYear();
|
||||
var month = (currentDate.getMonth() + 1).toString().padStart(2, 0);
|
||||
var dateInYYYYMM = year + month;
|
||||
|
||||
let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
|
||||
|
||||
scanner.addListener('scan', function (content) {
|
||||
|
||||
alert(content);
|
||||
|
||||
if (content.startsWith('%40%40')) {
|
||||
// GET APPNAME (milgram)
|
||||
var appname = document.querySelector('input[name="appname"]:checked').value;
|
||||
// GET PASS THAT DECODE PGP
|
||||
var pass = prompt("Saisir PASS:");
|
||||
// SET PASS OF THE MONTH
|
||||
var pass = dateInYYYYMM ;
|
||||
|
||||
// GET DESTINATION
|
||||
// FROM PREVIOUS G1PUB SCAN
|
||||
var g1pub = document.getElementById("g1pub").value;
|
||||
// GET NEWLINE & EMAIL TO SEND NEXT
|
||||
var newline = document.getElementById("newline").value;
|
||||
var email = document.getElementById("email").value;
|
||||
|
||||
alert('PAY TO ' + g1pub + ' = ' + _PRICE_);
|
||||
var myU = 'http://astroport.localhost:1234/?qrcode=' + content +'&pass=' + pass + '&' + appname + '=' + newline + '&email=' + email;
|
||||
|
||||
var myU = 'http://astroport.localhost:1234/?qrcode=' + content +'&pass=' + pass + '&palpay=_PRICE_&g1pub=' + g1pub + '&who=' + document.getElementById("who").value ;
|
||||
// alert(myU);
|
||||
console.log(myU);
|
||||
homeAstroportStation(myU, 'aframe', 10000)
|
||||
|
||||
} else {
|
||||
|
||||
// COPY QRCODE IN g1pub input
|
||||
document.getElementById("who").value = content;
|
||||
// COPY QRCODE IN newline input
|
||||
document.getElementById("newline").value = content;
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -192,10 +200,12 @@ alert(dateInYYYYMM);
|
|||
</script>
|
||||
<h1><button id="ainfo" onclick="javascript:var x = document.getElementById('yellow'); if (x.style.visibility === 'hidden') {x.style.visibility = 'visible';} else {x.style.visibility = 'hidden';}">0/1</button></h1>
|
||||
<div id="yellow" >
|
||||
<!--
|
||||
<textarea id="myTextArea" name="myTextArea" rows="10" cols="50">
|
||||
Markdown content goes here
|
||||
</textarea>
|
||||
<iframe name="aframe" id="aframe" src="_STATION_" width="100%" height="320px"></iframe>
|
||||
-->
|
||||
<iframe name="aframe" id="aframe" src="http://127.0.0.1:8080/ipfs/QmNq8WAsEkJhfJz6cdcasRrP2G6qDEatFVP5pAzh5FCAP1" width="100%" height="320px"></iframe>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
|
Loading…
Reference in New Issue