diff --git a/RUNTIME/PLAYER.refresh.sh b/RUNTIME/PLAYER.refresh.sh index 6312db46..ab13f85f 100755 --- a/RUNTIME/PLAYER.refresh.sh +++ b/RUNTIME/PLAYER.refresh.sh @@ -99,26 +99,28 @@ for PLAYER in ${PLAYERONE[@]}; do NOWCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) LASTCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.* | tail -n 1) + try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3 echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
" echo "TW REFRESH FAILED" - echo ">> %%% WARNING %%%" + echo ">> %%% WARNING TRY LEFT : $try %%%" echo "------------------------------------------------" echo " * LAST" - echo " *NOW" + echo " * NOW" echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ## SEND AN EMAIL ALERT TO PLAYER echo "TW REFRESH FAILED" > ~/.zen/tmp/result echo "
------------------------------------------------" >> ~/.zen/tmp/result - echo "" >> ~/.zen/tmp/result - echo "
ANCIENT" >> ~/.zen/tmp/result - echo "
NEW" >> ~/.zen/tmp/result - echo "" >> ~/.zen/tmp/result - echo "
%%% WARNING %%%" >> ~/.zen/tmp/result + echo "
" >> ~/.zen/tmp/result + echo "
TW[-1]" >> ~/.zen/tmp/result + echo "
TW[0]" >> ~/.zen/tmp/result + echo "
" >> ~/.zen/tmp/result + echo "
%%% WARNING %%% $try TRY LEFT %%%" >> ~/.zen/tmp/result echo "
------------------------------------------------" >> ~/.zen/tmp/result - echo "
PLEASE REPAIR BY SAVING ONLINE" >> ~/.zen/tmp/result - echo "OR RUNNING CLI COMMAND : ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result + echo "
REPAIR BY SAVING ONLINE
" >> ~/.zen/tmp/result + echo "COMMAND :
ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result + echo "" >> ~/.zen/tmp/result - try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3 [[ $try == 0 ]] \ && echo "PLAYER ${PLAYER} UNPLUG" \ @@ -127,8 +129,8 @@ for PLAYER in ${PLAYERONE[@]}; do try=$((try-1)) echo "$try" > ~/.zen/game/players/${PLAYER}/ipfs/moa/.try - echo " %%% WARNING %%% ${PLAYER} STATION UNPLUG IN $try DAY(S)." >> ~/.zen/tmp/result - $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "UNPLUG WARNING" + + $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "TW[+1] REFRESH WARNING" continue @@ -248,12 +250,12 @@ for PLAYER in ${PLAYERONE[@]}; do [[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]] \ && echo "## Connect_PLAYER_To_Gchange.sh" \ && ${MY_PATH}/../tools/Connect_PLAYER_To_Gchange.sh "${PLAYER}" \ - || echo "$COINS <= 1 G1 + 10 ẑen : stars exchange (★★★★★) level" + || echo "$COINS <= 1 G1 + 10 ẑen : bypass Gchange stars exchange (★★★★★)" ############################################################## - # G1PalPay - 1 G1 mini -> Check for G1 TX incoming comments # + # G1PalPay - 2 G1 mini -> Check for G1 TX incoming comments # ############################################################## - if [[ $(echo "$COINS >= 1" | bc -l) -eq 1 ]]; then + if [[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]]; then ############################################################## # G1PalPay.sh # ############################################################## @@ -271,10 +273,12 @@ for PLAYER in ${PLAYERONE[@]}; do ${MY_PATH}/VOEUX.refresh.sh "${PLAYER}" "${MOATS}" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html else - echo "> ZenCard not activated ($ZEN)" + echo "> ZenCard not activated ($ZEN ZEN)" fi + ##################################################################### # (RE)MAKE "CESIUM" TIDDLER + echo "Create CESIUM Tiddler" cat ${MY_PATH}/../templates/data/CESIUM.json \ | sed -e "s~_G1PUB_~${G1PUB}~g" \ -e "s~_CESIUMIPFS_~${CESIUMIPFS}~g" \ @@ -282,7 +286,8 @@ for PLAYER in ${PLAYERONE[@]}; do > ~/.zen/tmp/${MOATS}/CESIUM.json ##################################################################### - ## GET $:/moa Tiddlers ####################################### + ##################################################################### + ## GET $:/moa Tiddlers ####################################### START echo "GET $:/moa Tiddlers" ###################################################### [tag[$:/moa]] tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ @@ -294,55 +299,80 @@ for PLAYER in ${PLAYERONE[@]}; do INPUTPLAYERS=() for fp in ${fplayers[@]}; do - [[ "${fp}" == "${PLAYER}" ]] && echo "moa" && continue + [[ ! "${fp}" =~ ^[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]] && echo "BAD ${fp} FORMAT" && continue + [[ "${fp}" == "${PLAYER}" ]] && echo "IT'S ME - CONTINUE" && continue - FPLAYER=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .president') - [[ $FPLAYER == 'null' ]] && echo "null" && continue - echo "$FPLAYER coucou" + FPLAYER=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .player') + [[ $FPLAYER == 'null' || $FPLAYER == '' ]] && echo "FPLAYER null - CONTINUE" && continue FTW=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .tw') - echo "TW: $FTW" + [[ ${FTW} == "/ipns/" && ${FTW} == "null" && ${FTW} == "" ]] && echo "WEIRD FTW ${FTW} - CONTINUE" && continue FG1PUB=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .g1pub') - echo "G1: $FG1PUB" + [[ $FG1PUB == 'null' || $FG1PUB == '' ]] && echo "FG1PUB null - CONTINUE" && continue - IHASH=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .text' | sha256sum | cut -d ' ' -f 1) + IHASH=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .text' | sha256sum | cut -d ' ' -f 1) + + echo ":: coucou :: $FPLAYER :: (ᵔ◡◡ᵔ) ::" + echo "TW: $FTW" + echo "G1: $FG1PUB" echo "IHASH: $IHASH" - if [[ ${FTW} != "/ipns/" && ${FTW} != "null" && ${FTW} != "" ]]; then + ## GET ORIGINH FROM LAST KNOWN TW STATE + mkdir -p ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER} + if [[ -s ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html ]]; then + rm -f ~/.zen/tmp/${MOATS}/forigin.json + tiddlywiki --load ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' "${FPLAYER}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '${FPLAYER}' ## GET ORIGIN - ## CHECK ALREADY IN IHASH - rm -f ~/.zen/tmp/${MOATS}/finside.json - tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --output ~/.zen/tmp/${MOATS} \ - --render '.' 'finside.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '${FPLAYER^^}' ## $:/moa EMAIL Tiddlers + ORIGINH=$(cat ~/.zen/tmp/${MOATS}/${FPLAYER}.json | jq -r '.[].text' | sha256sum | cut -d ' ' -f 1) + echo "ORIGINH: $ORIGINH" + fi - INSIDEH=$(cat ~/.zen/tmp/${MOATS}/finside.json | jq .[] | jq -r 'select(.title=="'${FPLAYER^^}'") | .ihash') - echo $INSIDEH - ## UPDATE IF IHASH CHANGED - if [[ ! $INSIDEH || $INSIDEH != $IHASH ]]; then - cat ${MY_PATH}/../templates/data/_UPPERFPLAYER_.json \ - | sed -e "s~_UPPERFPLAYER_~${FPLAYER^^}~g" \ - -e "s~_FPLAYER_~${FPLAYER}~g" \ - -e "s~_MOATS_~${MOATS}~g" \ - -e "s~_IHASH_~${IHASH}~g" \ - -e "s~_FRIENDTW_~${FTW}~g" \ - -e "s~_PLAYER_~${PLAYER}~g" \ - > ~/.zen/tmp/${MOATS}/${FPLAYER}.json - echo "( ---- /G |\ |Z / / /" - cat ~/.zen/tmp/${MOATS}/${FPLAYER}.json | jq - INPUTPLAYERS+=(" --import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER}.json 'application/json' ") # Append to the array - fi + ( ## REFRESH LOCAL PLAYER CACHE with FRIEND ACTUAL TW (&) + ipfs --timeout 180s cat ${FTW} > ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html + ) & + + ## CHECK ALREADY IN ${FPLAYER^^} IHASH + rm -f ~/.zen/tmp/${MOATS}/finside.json + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'finside.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '${FPLAYER^^}' ## ${FPLAYER^^} autoload Tiddlers + + INSIDEH=$(cat ~/.zen/tmp/${MOATS}/finside.json | jq -rc '.[].ihash') + echo "INSIDEH: $INSIDEH" + + ## UPDATE IF IHASH CHANGED -> New drawing => Friend get informed + if [[ -z $INSIDEH || $INSIDEH != $IHASH || $ORIGINH != $INSIDEH ]]; then + cat ${MY_PATH}/../templates/data/_UPPERFPLAYER_.json \ + | sed -e "s~_UPPERFPLAYER_~${FPLAYER^^}~g" \ + -e "s~_FPLAYER_~${FPLAYER}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_IHASH_~${IHASH}~g" \ + -e "s~_FRIENDTW_~${FTW}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + > ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json + + echo "Insert New ${FPLAYER^^}.json" + cat ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json | jq + + INPUTPLAYERS+=(" --import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER^^}.json 'application/json' ") # Append to the array + [[ $ORIGINH != $INSIDEH ]] \ + && echo "ORIGINH Update" \ + && INPUTPLAYERS+=(" --import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER}.json 'application/json' ") fi done - ## FRIENDS TW FLUX TO IMPORT - echo "${INPUTPLAYERS[@]}" - + ## FRIENDS TW FLUX TO IMPORT + echo "${INPUTPLAYERS[@]}" + ##################################################################### + ## GET $:/moa Tiddlers ####################################### END + ##################################################################### ################### - # REFRESH PLAYER_feed # (could be deprecated) + # REFRESH PLAYER_feed KEY ################################## echo "# TW : GW API + LightBeam Feed + Friends" TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3) @@ -369,7 +399,7 @@ for PLAYER in ${PLAYERONE[@]}; do #~ echo '[{"title":"$:/plugins/astroport/lightbeams/state/subscriptions","text":"'${FRIENDSFEEDS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/friends.json #~ ## ADD --import "$HOME/.zen/tmp/${MOATS}/friends.json" "application/json" \ ## MANUAL TW RSS REGISTRATION - ## PATCH : RESTORE PLAYER GPS.json (can be erase by WISH treatment) + ## PATCH : RESTORE PLAYER GPS.json (protect cache erased by WISH treatment) cp -f ~/.zen/game/players/${PLAYER}/GPS.json ~/.zen/tmp/${MOATS}/ ## WRITE TIDDLERS IN TW SECTORTW_NEWS.json tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ diff --git a/tools/COINScheck.sh b/tools/COINScheck.sh index dedf739f..6f6a08cc 100755 --- a/tools/COINScheck.sh +++ b/tools/COINScheck.sh @@ -26,15 +26,15 @@ ASTROTOIPFS=$(~/.zen/Astroport.ONE/tools/g1_to_ipfs.py ${G1PUB} 2>/dev/null) && echo "INVALID G1PUB : ${G1PUB}" \ && exit 1 -echo "TW ? $myIPFS/ipns/${ASTROTOIPFS}" +echo "COINCHECK ${G1PUB} -> TW : $myIPFS/ipns/${ASTROTOIPFS}" ####################################################### ## CLEANING DAY+1 COINS CACHE FILES # find ~/.zen/game/players/ -mtime +1 -type f -name "COINS" -exec rm -f '{}' \; +echo "Cleaning ${G1PUB}.COINS" find ~/.zen/tmp/ -mtime +1 -type f -name "${G1PUB}.COINS" -exec mv '{}' $HOME/.zen/tmp/backup.${G1PUB} \; -[ $? == 0 ] && echo "Cleaning ${G1PUB}.COINS" +echo "Cleaning ${G1PUB}.g1history.json" find ~/.zen/tmp/coucou/ -mtime +1 -type f -name "${G1PUB}.g1history.json" -exec rm '{}' \; -[ $? == 0 ] && echo "Cleaning ${G1PUB}.g1history.json" ####################################################### ## IDENTIFY IF "ASTROPORT" PLAYER @@ -56,7 +56,7 @@ ${MY_PATH}/GetGCAttributesFromG1PUB.sh ${G1PUB} # echo "ACTUAL $COINSFILE CONTAINS" CURCOINS=$(cat $COINSFILE 2>/dev/null) -echo "$CURCOINS (G1)" +echo "SOLDE : $CURCOINS G1" ## NO or NULL RESULT in CACHE : REFRESHING if [[ $CURCOINS == "" || $CURCOINS == "null" ]]; then @@ -75,6 +75,6 @@ if [[ $CURCOINS == "" || $CURCOINS == "null" ]]; then echo $CURCOINS ) & fi - +#### tail -n 1 FUNCTION RESULT echo $CURCOINS exit 0