diff --git a/RUNTIME/REGION.refresh.sh b/RUNTIME/REGION.refresh.sh index 0fa23a7d4..7bce6864d 100755 --- a/RUNTIME/REGION.refresh.sh +++ b/RUNTIME/REGION.refresh.sh @@ -9,71 +9,102 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized . "$MY_PATH/../tools/my.sh" ################################################################################ ## REGION REFRESH -# SHARE & UPDATE IPNS TOGETHER +# UMAP > SECTOR > REGION +## Get from 100 sectors tiddlers with more than 2 signatures ############################################ -echo "## RUNNING REGION.refresh" +echo "# # # # RUNNING REGION.refresh" [[ ${IPFSNODEID} == "" ]] && echo "IPFSNODEID is empty - EXIT -" && exit 1 -## CALLED BY UPLANET.refresh.sh -LAT=$1 -LON=$2 -MOATS=$3 -UMAP=$4 -REGIONNODE=$5 +MOATS=$(date -u +"%Y%m%d%H%M%S%4N") +mkdir ~/.zen/tmp/${MOATS} -[[ ! -d ~/.zen/tmp/${MOATS-undefined}/${UMAP-undefined} ]] && echo "MISSING UMAP CONTEXT" && exit 1 +## UMAPS list made BY UPLANET.refresh.sh +for i in $*; do + UMAPS=("$i" ${UMAPS[@]}) +done -REGLAT=$(echo ${LAT} | cut -d '.' -f 1) -REGLON=$(echo ${LON} | cut -d '.' -f 1) -REGION="_${REGLAT}_${REGLON}" -echo "REGION ${REGION}" -[[ -s ~/.zen/tmp/${MOATS}/${UMAP}/${REGION}/index.html ]] && echo "ALREADY DONE" && exit 0 +[[ ${#UMAPS[@]} == 0 ]] && UMAPS="_0.00_0.00" -[[ "${REGIONNODE}" == "${IPFSNODEID}" ]] && echo ">>> MANAGING REGION PUBLICATION" || exit 0 +######## INIT SECTORS ######################## +for UMAP in ${UMAPS[@]}; do -############################################################## -REGIONG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}") -[[ ! ${REGIONG1PUB} ]] && echo "ERROR generating REGION WALLET" && exit 1 - COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1) - echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}" + LAT=$(echo ${UMAP} | cut -d '_' -f 2) + LON=$(echo ${UMAP} | cut -d '_' -f 3) -${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/REGION.priv "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}" -ipfs key rm ${REGIONG1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT -REGIONNS=$(ipfs key import ${REGIONG1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/REGION.priv) -############################################################## -mkdir -p ~/.zen/tmp/${MOATS}/${UMAP}/${REGION} -echo "" > ~/.zen/tmp/${MOATS}/${UMAP}/${REGION}/index.html + [[ ${LAT} == "" || ${LON} == "" ]] && echo ">> ERROR BAD ${LAT} ${LON}" && continue + [[ ${LAT} == "null" || ${LON} == "null" ]] && echo ">> ERROR BAD ${LAT} ${LON}" && continue -REGIONMAPGEN="${EARTHCID}/Umap.html?southWestLat=${REGLAT}&southWestLon=${REGLON}°=1&ipns=${REGIONNS}" -REGIONSATGEN="${EARTHCID}/Usat.html?southWestLat=${REGLAT}&southWestLon=${REGLON}°=1&ipns=${REGIONNS}" -echo "" > ~/.zen/tmp/${MOATS}/${UMAP}/REGION${REGION}.Map.html -echo "" > ~/.zen/tmp/${MOATS}/${UMAP}/REGION${REGION}.Sat.html + REGLAT=$(echo ${LAT} | cut -d '.' -f 1) + REGLON=$(echo ${LON} | cut -d '.' -f 1) - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - #~ ## IPFS GET ONLINE SECTORNS - mkdir ~/.zen/tmp/${MOATS}/${REGION} - ipfs --timeout 42s get -o ~/.zen/tmp/${MOATS}/${REGION}/ /ipns/${REGIONNS}/ - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - RSSNODE=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/_${REGLAT}*_${REGLON}*/RSS/*.rss.json 2>/dev/null)) - for RSS in ${RSSNODE[@]}; do - echo ${RSS} - done - NL=${#RSSNODE[@]} - RSSWARM=($(ls ~/.zen/tmp/swarm/*/UPLANET/_${REGLAT}*_${REGLON}*/RSS/*.rss.json 2>/dev/null)) - for RSS in ${RSSWARM[@]}; do - echo ${RSS} - done - NS=${#RSSWARM[@]} - TOTL=$((${NL}+${NS})) + MYREGIONS=("_${REGLAT}_${REGLON}" ${MYREGIONS[@]}) -echo "Number of RSS : "${TOTL} - echo ${TOTL} > ~/.zen/tmp/${MOATS}/${REGION}/N_RSS - IPFSPOP=$(ipfs add -q ~/.zen/tmp/${MOATS}/${REGION}/N_RSS) +done - ipfs name publish -k ${REGIONG1PUB} /ipfs/${IPFSPOP} +## GET UNIQ SECTORS LIST +REGIONS=($(echo "${MYREGIONS[@]}" | tr ' ' '\n' | sort -u)) -ipfs key rm ${REGIONG1PUB} > /dev/null 2>&1 +[[ ${REGIONS[@]} == "" ]] && echo "> NO REGION FOUND" && exit 0 + +echo "ACTIVATED SECTORS : ${SECTORS[@]}" + +for REGION in ${REGIONS[@]}; do + + echo "_____REGION ${REGION}" + mkdir -p ~/.zen/tmp/${MOATS}/${REGION} + REGLAT=$(echo ${REGION} | cut -d '_' -f 2) + REGLON=$(echo ${REGION} | cut -d '_' -f 3) + + ################################## TODO : make sharing key protocol evolve + ## FOR NOW ONLY 1ST BOOSTRAP PUBLISH REGION KEYS + # with bigger planetary swam will be closest "IA Station", or it could be choosen according to ZEN value... + STRAPS=($(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#" | rev | cut -d '/' -f 1 | rev | grep -v '^[[:space:]]*$')) ## ${STRAPS[@]} + ACTINGNODE=${ALLNODES[0]} ## FIST NODE IN SECTOR.refresher + [[ "${ACTINGNODE}" != "${IPFSNODEID}" ]] \ + && echo ">> ACTINGNODE=${ACTINGNODE} is not ME - CONTINUE -" \ + && continue + + ############################################################## + REGIONG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}") + [[ ! ${REGIONG1PUB} ]] && echo "ERROR generating REGION WALLET" && exit 1 + COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1) + echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}" + + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/REGION.priv "${UPLANETNAME}${REGION}" "${UPLANETNAME}${REGION}" + ipfs key rm ${REGIONG1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT + REGIONNS=$(ipfs key import ${REGIONG1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/REGION.priv) + ############################################################## + ## GET from IPNS + ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${REGION}/ /ipns/${REGIONNS}/ + # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + mkdir -p ~/.zen/tmp/${MOATS}/${REGION}/RSS + ## START WITH LOCAL WEEK + cp -f ~/.zen/tmp/${IPFSNODEID}/_${REGLAT}_${REGLON}.week.rss.json \ + ~/.zen/tmp/${MOATS}/${REGION}/RSS/ 2>/dev/null \ + && NL=1 \ + || NL=0 + ## ADD SWARM RSS WEEK + RSSWARM=($(ls ~/.zen/tmp/swarm/*/_${REGLAT}_${REGLON}.week.rss.json 2>/dev/null)) + for RSS in ${RSSWARM[@]}; do + cat ${RSS} >> ~/.zen/tmp/${MOATS}/${REGION}/RSS/_${REGLAT}_${REGLON}.week.rss.json + done + NS=${#RSSWARM[@]} + + TOTL=$((${NL}+${NS})) + # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + echo "Numbers of SECTOR WEEK RSS : "${TOTL} + + echo ${TOTL} > ~/.zen/tmp/${MOATS}/${REGION}/N + IPFSPOP=$(ipfs add -rwq ~/.zen/tmp/${MOATS}/${REGION}/) + + ipfs name publish -k ${REGIONG1PUB} /ipfs/${IPFSPOP} + + echo "EXTRACT MORE THAN 2 SIGNATURES TIDDLERS. + FEED WITH IA. LOADING CONTEXT FROM." > ~/.zen/tmp/${MOATS}/${REGION}/TODO + + ipfs key rm ${REGIONG1PUB} > /dev/null 2>&1 + +done exit 0 diff --git a/RUNTIME/UPLANET.refresh.sh b/RUNTIME/UPLANET.refresh.sh index ce68cc765..b77c9a4b3 100755 --- a/RUNTIME/UPLANET.refresh.sh +++ b/RUNTIME/UPLANET.refresh.sh @@ -94,8 +94,10 @@ echo "" > ~/ echo "GETTING YESTERDAY UMAP.refresher" YESTERDAY=$(ipfs cat /ipfs/${ZCHAIN}/${LAT}_${LON}/UMAP.refresher | head -n 1) ## GET UMAP.refresher from PREVIOUS _chain ... - echo "TODAY : $(cat ~/.zen/tmp/${MOATS}/${UMAP}/${LAT}_${LON}/UMAP.refresher | head -n 1)" + TODAY=$(cat ~/.zen/tmp/${MOATS}/${UMAP}/${LAT}_${LON}/UMAP.refresher | head -n 1) + echo "TODAY : ${TODAY}" echo "YESTERDAY : ${YESTERDAY}" + echo "------------------------------------------------->>>>>>>>>>>>>>>>" continue fi @@ -378,5 +380,6 @@ echo "" > ~/ ${MY_PATH}/SECTOR.refresh.sh "${unique_combined[@]}" ### REGION = 1° Planet Slice - # ${MY_PATH}/REGION.refresh.sh "${LAT}" "${LON}" "${MOATS}" "${UMAP}" "${ACTINGNODE}" + ${MY_PATH}/REGION.refresh.sh "${unique_combined[@]}" + diff --git a/tools/RSS2UPlanetTW.sh b/tools/RSS2UPlanetTW.sh index 495627c46..9315790ba 100755 --- a/tools/RSS2UPlanetTW.sh +++ b/tools/RSS2UPlanetTW.sh @@ -6,15 +6,16 @@ # INSERT NEW TIDDLERS FROM RSS JSON INTO UPLANET TW # DETECTING CONFLICT WITH SAME TITLE # ASKING TO EXISTING SIGNATURES TO UPDATE THEIR TW OR FORK TITLE +# CALLED BY "SECTOR.refresh.sh" ######################################################################## MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" -RSS=$1 -SECTOR=$2 -MOATS=$3 -INDEX=$4 +RSS=$1 ## filepath to RSS +SECTOR=$2 ## Sector identifier _0.0_0.0 +MOATS=$3 ## temp cache access +INDEX=$4 ## SECTOR TW index file [[ ! -s ${RSS} ]] && echo "BAD RSS INPUT" && exit 1 [[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "BAD UPLANET CONTEXT" && exit 1 @@ -94,13 +95,13 @@ while read title; do ## CHECK FOR EMAIL SIGNATURES DIFFERENCE NTAGS=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .tags) NEMAILS=($(echo "$NTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b")) - N=${#NEMAILS[@]} - echo "New Tiddler signatures : ${NEMAILS[*]}" + NSIGN=${#NEMAILS[@]} + echo "New Tiddler $NSIGN signatures : ${NEMAILS[*]}" ITAGS=$(cat ~/.zen/tmp/${MOATS}/INSIDE.json | jq -r .tags) IEMAILS=($(echo "$ITAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b")) - I=${#IEMAILS[@]} - echo "Inside Tiddler signatures : ${IEMAILS[*]}" + ISIGN=${#IEMAILS[@]} + echo "Inside Tiddler $ISIGN signatures : ${IEMAILS[*]}" if [[ "${NEMAILS[*]}" != "${IEMAILS[*]}" ]]; then @@ -188,16 +189,24 @@ To Refuse
&& rm ${INDEX} \ && mv ~/.zen/tmp/${MOATS}/${SECTOR}.html ${INDEX} - ## TODO : NEWER EMAIL SENDS N GRATITUDE TO ALL PLAYER - # can use G1PalPay WISH sending it tho 1st, relaying to others... - fi fi done < ~/.zen/tmp/${MOATS}/${SECTOR}/tiddlers.list +################################################### +## EXTRACT LAST WEEK TIDDLERS TO IPFSNODEID CACHE + echo "(☉_☉ ) (☉_☉ ) (☉_☉ ) RSS" + rm -f ~/.zen/tmp/${IPFSNODEID}/${SECTOR}.week.rss.json + ## CREATING 7 DAYS JSON RSS STREAM + tiddlywiki --load ${INDEX} \ + --output ~/.zen/tmp/${IPFSNODEID} --render '.' "${SECTOR}.week.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-7]!is[system]!tag[G1Voeu]]' + ## TODO FILTER INFORMATION WITH MULTIPLE SIGNATURES (DONE in REGION.refresh.sh) + ## TODO EXPORT AS RSS ## https://talk.tiddlywiki.org/t/has-anyone-generated-an-rss-feed-from-tiddlywiki/966/28 + +#################################################### ################################################ ## SECTOR SENDS GRATITUDE TO PUBLISHING PLAYER ################################################### @@ -205,6 +214,9 @@ done < ~/.zen/tmp/${MOATS}/${SECTOR}/tiddlers.list if [[ ${gloups} -gt 0 && ${ASTROG1} ]]; then # GENERATE SECTOR PIVATE KEY ################################ ${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/sector.dunikey "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}" + G1SECTOR=$(cat ~/.zen/tmp/${MOATS}/sector.dunikey | grep 'pub:' | cut -d ' ' -f 2) + cp -f ~/.zen/tmp/coucou/${G1SECTOR}.COINS ~/.zen/tmp/${IPFSNODEID}/${SECTOR}.COINS + ############################################################## GRATITUDE=$($MY_PATH/../tools/getcoins_from_gratitude_box.sh) G1AMOUNT=$(echo "$GRATITUDE / 10" | bc -l | xargs printf "%.2f" | sed "s~,~.~g" )