From 767b29c5fa28a73926d09adf196bb16edbdaa7dc Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 31 Mar 2024 17:19:32 +0200 Subject: [PATCH] UPLANET CONTEXT - look inside code - --- ASTROBOT/G1ForkUPlanetZERO.sh | 141 ++++++++++++++++++--------------- RUNTIME/RSS2UPlanetSECTORTW.sh | 15 ++-- 2 files changed, 87 insertions(+), 69 deletions(-) diff --git a/ASTROBOT/G1ForkUPlanetZERO.sh b/ASTROBOT/G1ForkUPlanetZERO.sh index fe1d5c8f..99affd39 100644 --- a/ASTROBOT/G1ForkUPlanetZERO.sh +++ b/ASTROBOT/G1ForkUPlanetZERO.sh @@ -48,85 +48,102 @@ MOATS="$3" echo "${PLAYER} ${INDEX} ${ASTRONAUTENS} ${G1PUB} " mkdir -p $HOME/.zen/tmp/${MOATS} echo "~/.zen/tmp/${MOATS}/swarm.key" -JSONWISH="$4" -## SHOW WISH CONTAINS SELF CRYPTED SWARMKEY (+ SIGNERS) -cat ${JSONWISH} | jq -r PLAYERPUB=$(cat $HOME/.zen/game/${PLAYER}/secret.dunikey | grep pub | cut -d ' ' -f 2) [[ "${PLAYERPUB}" == "" ]] && echo "FATAL ERROR PLAYER KEY MISSING" && exit 1 -WISHNAME=$(cat ${JSONWISH} | jq .title) # ForkUPlanetZERO ! -UPNAME=$(cat ${JSONWISH} | jq -r ".UPname") ## What name is given ? -[[ "${UPNAME}" == "null" || "${UPNAME}" == "" ]] && echo "FATAL ERROR UPNAME .UPname MISSING" && exit 1 -HASH=$(cat ${JSONWISH} | jq -r ".hash") ## What text hash it has ? -[[ "${HASH}" == "null" || "${HASH}" == "" ]] && echo "FATAL ERROR UPNAME .hash MISSING" && exit 1 -SECRET=$(cat ${JSONWISH} | jq -r ".secret") ## What is secret ? -[[ "${SECRET}" == "null" || "${SECRET}" == "" ]] && echo "FATAL ERROR UPNAME .secret MISSING" && exit 1 -CONTRACT=$(cat ${JSONWISH} | jq -r ".text") ## What contract is applying ? -[[ "${CONTRACT}" == "null" || "${CONTRACT}" == "" ]] && CONTRACT="☼☼☼☼☼ floating points ☼☼☼☼☼" -echo "- CONTRACT -------------------------------------" -echo $CONTRACT -echo "--------------------------------------" -AHAH=$(echo $CONTRACT | sha512sum | cut -d ' ' -f 1) -[[ $AHAH != $HASH ]] && echo "CONTACT CHANGED - INFORMATION" +################################################################### +## tag[ForkUPlanetZERO] TW EXTRACTION +################################################################### +tiddlywiki --load ${INDEX} \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'G1ForkUPlanetZERO.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[ForkUPlanetZERO]]' + +echo "PREPARE INLINE JSON : cat ~/.zen/tmp/${MOATS}/G1ForkUPlanetZERO.json | jq -rc .[]" + cat ~/.zen/tmp/${MOATS}/G1ForkUPlanetZERO.json \ + | jq -rc .[] > ~/.zen/tmp/${MOATS}/inlineuplanets.json + +while read JSONUPLANET; do + + echo "JSONUPLANET=${JSONUPLANET}" + + UPNAME=$(cat ${JSONUPLANET} | jq .title) # What name is given ? + [[ "${UPNAME}" == "null" || "${UPNAME}" == "" ]] && echo "FATAL ERROR UPNAME .UPname MISSING" && exit 1 + HASH=$(cat ${JSONUPLANET} | jq -r ".hash") ## What text hash it has ? + [[ "${HASH}" == "null" || "${HASH}" == "" ]] && echo "FATAL ERROR UPNAME .hash MISSING" && exit 1 + SECRET=$(cat ${JSONUPLANET} | jq -r ".secret") ## What is secret ? + [[ "${SECRET}" == "null" || "${SECRET}" == "" ]] && echo "FATAL ERROR UPNAME .secret MISSING" && exit 1 + + # jq '.[] | .UPname = "${UPNAME}" | .hash = "${HASH}" | .secret = "${SECRET}"' ${JSONUPLANET} + + CONTRACT=$(cat ${JSONUPLANET} | jq -r ".text") ## What contract is applying ? + [[ "${CONTRACT}" == "null" || "${CONTRACT}" == "" ]] && CONTRACT="☼☼☼☼☼ floating points ☼☼☼☼☼" + echo "- CONTRACT -------------------------------------" + echo $CONTRACT + echo "--------------------------------------" + AHAH=$(echo $CONTRACT | sha512sum | cut -d ' ' -f 1) + + [[ $AHAH != $HASH ]] && echo " - WARNING - CONTRACT CHANGED - WARNING -" -## CHECK EXISTING ${WISHNAME}.${UPNAME}.swarm.key -[[ ! -s $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key ]] \ - && MSG=$MSG" ${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key NOT FOUND" && ERR="NO LOCAL KEY" + ## CHECK EXISTING ${WISHNAME}.${UPNAME}.swarm.key + [[ ! -s $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key ]] \ + && MSG=$MSG" ${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key NOT FOUND" && ERR="NO LOCAL KEY" -## CREATE 64 bit swarm.key ( maximum individual Fork 1,844674407×10¹⁹ ) -echo -e '/key/swarm/psk/1.0.0/\n/base16/' > $HOME/.zen/tmp/${MOATS}/swarm.key -head -c 64 /dev/urandom | od -t x1 -A none - | tr -d '\n ' >> $HOME/.zen/tmp/${MOATS}/swarm.key -echo '' >> $HOME/.zen/tmp/${MOATS}/swarm.key + ## CREATE 64 bit swarm.key ( maximum individual Fork 1,844674407×10¹⁹ ) + echo -e '/key/swarm/psk/1.0.0/\n/base16/' > $HOME/.zen/tmp/${MOATS}/swarm.key + head -c 64 /dev/urandom | od -t x1 -A none - | tr -d '\n ' >> $HOME/.zen/tmp/${MOATS}/swarm.key + echo '' >> $HOME/.zen/tmp/${MOATS}/swarm.key -## EXTRACT CURRENT SECRET FROM JSONWISH -######################################## -OLD16=$(cat ${JSONWISH} | jq -r ".secret") + ## EXTRACT CURRENT SECRET FROM JSONUPLANET + ######################################## + OLD16=$(cat ${JSONUPLANET} | jq -r ".secret") -if [[ ${OLD16} == "" || ${OLD16} == "null" ]]; then + if [[ ${OLD16} == "" || ${OLD16} == "null" ]]; then - echo "NO SECRET FOUND" \ - && echo "NEW SECRET SWARM.KEY GENERATION" \ - && cat $HOME/.zen/tmp/${MOATS}/swarm.key \ - && cp $HOME/.zen/tmp/${MOATS}/swarm.key $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ - && echo "------- KEY LOADED -----> ${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key" + echo "NO SECRET FOUND" \ + && echo "NEW SECRET SWARM.KEY GENERATION" \ + && cat $HOME/.zen/tmp/${MOATS}/swarm.key \ + && cp $HOME/.zen/tmp/${MOATS}/swarm.key $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ + && echo "------- KEY LOADED -----> ${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key" - ## CREATE SUB WORLD... MONITOR TEXT + ## CREATE SUB WORLD... MONITOR TEXT -else - ## DEBASE16 - echo "${OLD16}" | base16 -d \ - > ~/.zen/tmp/${MOATS}/swarmkey.crypted + else + ## DEBASE16 + echo "${OLD16}" | base16 -d \ + > ~/.zen/tmp/${MOATS}/swarmkey.crypted - ## TRY TO DECODE with PLAYER secret.dunikey - ${MY_PATH}/../tools/natools.py decrypt \ - -f pubsec \ - -k $HOME/.zen/game/${PLAYER}/secret.dunikey \ - -i ~/.zen/tmp/${MOATS}/swarmkey.crypted \ - -o ~/.zen/tmp/${MOATS}/swarmkey.decrypted + ## TRY TO DECODE with PLAYER secret.dunikey + ${MY_PATH}/../tools/natools.py decrypt \ + -f pubsec \ + -k $HOME/.zen/game/${PLAYER}/secret.dunikey \ + -i ~/.zen/tmp/${MOATS}/swarmkey.crypted \ + -o ~/.zen/tmp/${MOATS}/swarmkey.decrypted - [[ $(diff ~/.zen/tmp/${MOATS}/swarmkey.decrypted $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key) ]] \\ - && echo " SWARM AND LOCAL KEY ARE DIFFERENT " && ERR="TW SWARM CHANGED" + [[ $(diff ~/.zen/tmp/${MOATS}/swarmkey.decrypted $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key) ]] \\ + && echo " SWARM AND LOCAL KEY ARE DIFFERENT " && ERR="TW SWARM CHANGED" - ## UPDATE PLAYER LOCAL SWARMKEY FROM VALUE FOUND IN HIS OWN WISH TIDDLER ! - [[ -s ~/.zen/tmp/${MOATS}/swarmkey.decrypted ]] \ - && cp ~/.zen/tmp/${MOATS}/swarmkey.decrypted \ - $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ - || echo "ERROR RELOADING SWARMKEY" -fi + ## UPDATE PLAYER LOCAL SWARMKEY FROM VALUE FOUND IN HIS OWN WISH TIDDLER ! + [[ -s ~/.zen/tmp/${MOATS}/swarmkey.decrypted ]] \ + && cp ~/.zen/tmp/${MOATS}/swarmkey.decrypted \ + $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ + || echo "ERROR RELOADING SWARMKEY" + fi -if [[ "$HAHA" != "" ]] ; then - #~ REPLACE SECRET - ${MY_PATH}/../tools/natools.py encrypt \ - -p ${PLAYERPUB} \ - -i $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ - -o $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key.enc - ENCODING=$(cat $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key.enc | base16) - sed -i "s~${OLD16}~${ENCODING}~g" ${JSONWISH} - echo "${OLD16} : ${ENCODING}" + if [[ "$HAHA" != "" ]] ; then + #~ REPLACE SECRET + ${MY_PATH}/../tools/natools.py encrypt \ + -p ${PLAYERPUB} \ + -i $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key \ + -o $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key.enc + ENCODING=$(cat $HOME/.zen/game/${PLAYER}/${WISHNAME}.${UPNAME}.swarm.key.enc | base16) + sed -i "s~${OLD16}~${ENCODING}~g" ${JSONUPLANET} + echo "${OLD16} : ${ENCODING}" -fi + fi + +done < ~/.zen/tmp/${MOATS}/inlineuplanets.json diff --git a/RUNTIME/RSS2UPlanetSECTORTW.sh b/RUNTIME/RSS2UPlanetSECTORTW.sh index 8b02d319..e7af9612 100755 --- a/RUNTIME/RSS2UPlanetSECTORTW.sh +++ b/RUNTIME/RSS2UPlanetSECTORTW.sh @@ -24,10 +24,10 @@ echo [[ ! -s ${RSS} ]] && echo "BAD RSS INPUT" && exit 1 [[ "$(cat ${RSS})" == "[]" ]] && echo "EMPTY RSS " && exit 0 -[[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "BAD UPLANET CONTEXT" && exit 1 +[[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "- ERROR - BAD UPLANET CONTEXT - look inside code - " && exit 1 [[ ! -s ${INDEX} ]] \ && sed "s~_SECTOR_~${SECTOR}~g" ${MY_PATH}/../templates/twsector.html > ${INDEX} \ - && echo "REFRESHING SECTOR FROM empty TEMPLATE *****" + && echo "- WARNING - REFRESHING SECTOR FROM empty TEMPLATE *****" ## EXTRACT PLAYER FROM RSS FILE NAME PLAYER=$(echo ${RSS} | rev | cut -d '/' -f 1 | rev | sed "s~.rss.json~~g") @@ -46,7 +46,7 @@ signatures=0 while read title; do - [[ ${floop} -gt 1 ]] && echo "0lder Tiddlers are similaR... BREAK LOOP" && break + [[ ${floop} -gt 1 ]] && echo "Other Tiddlers are similaR... BREAK LOOP" && break # FILTER "UPPERCASE" + Astroport Tid, less than 4 characters title Tiddlers (ex: GPS, ...). [[ ${title} == "GettingStarted" || "${title^^}" == "${title}" || "${title::3}" == '$:/' || ${title::4} == ${title} || ${title} == "AstroID" || ${title} == "Voeu1.png" || ${title} == "Astroport" || ${title} == "MadeInZion" || ${title} == "G1Visa" || ${title} == "ZenCard" || ${title::5} == "Draft" ]] \ @@ -85,7 +85,7 @@ while read title; do && echo "GLOOPS (${gloops}) : ${title}" \ && signatures=$((signatures + TMPSIGN)) - [[ ! -s ${INDEX} ]] && echo "ERROR. TW could not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1 + [[ ! -s ${INDEX} ]] && echo "ERROR. TW could not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1 else @@ -215,8 +215,8 @@ Tiddler appears in ${unique_combined[*]} TW(s) fi echo "______________________" - echo "CHECKING DIFFERENCES" - diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json + #~ echo "CHECKING DIFFERENCES" + #~ diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json ## TODO CHECK MORE DIFFERENCE DATENEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .modified) @@ -240,7 +240,8 @@ Tiddler appears in ${unique_combined[*]} TW(s) [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.html ]] \ && rm ${INDEX} \ - && mv ~/.zen/tmp/${MOATS}/${SECTOR}.html ${INDEX} + && mv ~/.zen/tmp/${MOATS}/${SECTOR}.html ${INDEX} \ + || ((gloops--)) signatures=$((signatures + ISIGN))