diff --git a/zen/gchange_INIT.sh b/zen/gchange_INIT.sh index 5e5e575..d0d2ea7 100755 --- a/zen/gchange_INIT.sh +++ b/zen/gchange_INIT.sh @@ -22,6 +22,7 @@ IPFSNODEID=$(ipfs id -f='\n') [[ ! -f ~/.zen/secret.dunikey ]] && echo "Missing ~/.zen/secret.dunikey. EXIT" && exit 1 G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) [[ $G1PUB == "" ]] && echo "ERROR G1PUB empty !! EXIT" && exit 1 +[[ -f ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid ]] && AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid) ######################################################################## @@ -46,7 +47,7 @@ title=$(cat /tmp/A_${G1PUB}.cache | jq -r '._source.title') # CREATE _g1.astroport_title with city rm -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.astroport_title -title="Station $USER@$(hostname)" +title="Station $USER@$AXID" city=$(cat /tmp/A_${G1PUB}.cache | jq -r '._source.city') [[ "$city" != "null" ]] && title="$title in $city" echo "$title" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.astroport_title diff --git a/zen/gchange_IPFS_swarm.sh b/zen/gchange_IPFS_swarm.sh index 7b7588c..95e69ba 100755 --- a/zen/gchange_IPFS_swarm.sh +++ b/zen/gchange_IPFS_swarm.sh @@ -38,56 +38,48 @@ do # SI JE SUIS LEUR AMI EN RETOUR, je conserve leur ID dans ~/.zen/A_my_swarm.txt # Check if my like is reverse liking_me_count=$((liking_me_count+1)) - echo ">>>>>> CHECKING my friend n° $liking_me_count" - echo "READING 'ipfstryme' message from $liking_me" + echo ">>>>>> CHECKING liking_me n° $liking_me_count : READING 'ipfstryme' message from $liking_me" for peerline in $(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey read -n300 -j | jq -r --arg friendKEY "$liking_me" '.[] | select(.pubkey == $friendKEY)' | jq 'select(.title == "ipfstryme")' | jq -r '.content'); do - echo "" - echo "PEERLINE: $peerline" + echo "======================================================" # REFERSH A_swarm_map.txt echo $peerline >> ~/.zen/A_swarm_map.txt cat ~/.zen/A_swarm_map.txt | sort | uniq > /tmp/A_swarm_map.txt cp -f /tmp/A_swarm_map.txt ~/.zen/A_swarm_map.txt # GET $ipfsnodeid AND $whoisg1 FROM $peerline - ipfsnodeid=$(echo "$peerline" | awk -F '/' '{print $8}') + ipfsnodeid=${peerline##*/} [[ "$ipfsnodeid" == "" ]] && continue [[ $(cat ~/.zen/A_my_swarm.txt | grep $ipfsnodeid ) ]] && continue # ALREADY in my SWARM + echo "PEERLINE: $peerline" whoisg1=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $ipfsnodeid) - echo "AM I FRIEND WITH MY FRIEND FRIEND $whoisg1 ?" + + # REMOVING OLD ipfstryme MESSAGES + nbmessage=0 + for messageid in $(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey read -n300 -j | jq -r --arg friendKEY "$whoisg1" '.[] | select(.pubkey == $friendKEY)' | jq 'select(.title == "ipfstryme")' | jq -r '.id') + do + nbmessage=$((nbmessage+1)) + [ $nbmessage -gt 1 ] && echo "Delete $nbmessage OLD 'ipfstryme' messages from $whoisg1" && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey delete -i $messageid + sleep 0.5 + done + [[ $nbmessage == 0 ]] && echo "NO ipfstryme MESSAGE from $whoisg1" && continue + # SEND MESSAGE ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $whoisg1 -t 'Astroport' -m 'Aucun message de ta part https://copylaradio.com'" + + echo "Am I friend with my FRIEND friend $whoisg1 ?" friend_of_mine=$(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey stars -p $whoisg1 | jq -r '.yours.pseudo'); # must contains my XZUID if [[ "$friend_of_mine" != "null" ]]; then - - stars=$(cat ~/.zen/ipfs/.${ipfsnodeid}/FRIENDS/$friend_of_mine/stars.level) - echo "STARGATE_$stars !!! " - if [[ -f ~/.zen/key/send ]]; then - echo "sending new stars..." && rm -f ~/.zen/ipfs/.${ipfsnodeid}/FRIENDS/$friend_of_mine/$stars.encrypt - ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $friend_of_mine -t "stargate_$stars" -m $(cat ~/.zen/key/$stars/key_* | base58) - $MY_PATH/tools/natools.py encrypt -p $friend_of_mine -i ~/.zen/key/$stars/key_* -o ~/.zen/ipfs/.${ipfsnodeid}/FRIENDS/$friend_of_mine/$stars.encrypt - rm -f ~/.zen/key/send - fi - - - # COUNT UNIQ FRIENDS - if [[ ! $(grep "$peerline" ~/.zen/A_my_swarm.txt) ]] + if [[ ! $(grep "$ipfsnodeid" ~/.zen/A_my_swarm.txt) ]] then + echo "OK FRIEND" + # COUNT UNIQ FRIENDS friend_of_mine_count=$((friend_of_mine_count+1)) echo "$peerline" >> ~/.zen/A_my_swarm.txt else echo "ALREADY RECORDED FRIEND" fi - # REMOVING OLD ipfstryme MESSAGES - nbmessage=0 - for messageid in $(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey read -n300 -j | jq -r --arg friendKEY "$whoisg1" '.[] | select(.pubkey == $friendKEY)' | jq 'select(.title == "ipfstryme")' | jq -r '.id') - do - nbmessage=$((nbmessage+1)) - [ $nbmessage -gt 1 ] && echo "Delete $nbmessage OLD 'ipfstryme' messages from $whoisg1" && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey delete -i $messageid - sleep 0.5 - done - [[ $nbmessage == 0 ]] && echo "NO ipfstryme MESSAGE FROM THIS FRIEND $whoisg1" - # SEND MESSAGE ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $whoisg1 -t 'Astroport' -m 'Aucun message de ta part https://copylaradio.com'" else echo "NOT FULL FRIEND $ipfsnodeid / $whoisg1" + [[ "$liking_me" != "" ]] && rm -Rf ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/$liking_me # SEND ME A MESSAGE TO DECIDE WHAT TO DO ? # SEND MESSAGE ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $whoisg1 -t 'Astroport' -m 'Rejoins mon #Swarm0 https://copylaradio.com'" fi diff --git a/zen/ipfs_SWARM_refresh.sh b/zen/ipfs_SWARM_refresh.sh index 4f7726d..3acd51b 100755 --- a/zen/ipfs_SWARM_refresh.sh +++ b/zen/ipfs_SWARM_refresh.sh @@ -35,13 +35,19 @@ rm /tmp/treated.ipfs.swarm touch /tmp/treated.ipfs.swarm touch ~/.zen/A_dead_swarm.txt +## RESET BOOTSTRAP LIST +ipfs bootstrap rm --all > /dev/null 2>&1 + count=1 -for ipfsnodeid in $(ipfs swarm peers | grep -o '[^/]*$' && cat ~/.zen/A_swarm_map.txt | grep -o '[^/]*$' | sort | uniq); +for ipfsnodeid in $( (ipfs swarm peers | grep -o '[^/]*$' && cat ~/.zen/A_swarm_map.txt | grep -o '[^/]*$' ) | sort | uniq); do ## $ipfsnodeid already Treated ? + [[ -f ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid ]] && XID=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/_xbian.zuid) + [[ -f ~/.zen/ipfs_swarm/.$ipfsnodeid/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs_swarm/.$ipfsnodeid/G1SSB/_g1.gchange_title) [[ $(cat /tmp/treated.ipfs.swarm | grep "$ipfsnodeid") ]] && continue [[ $(cat ~/.zen/A_dead_swarm.txt | grep "$ipfsnodeid") ]] && continue - + [[ "$ipfsnodeid" == "$IPFSNODEID" ]] && continue + # Convert ipfsnodeid into g1pub whoisg1=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $ipfsnodeid) @@ -52,32 +58,39 @@ do isLAN=$(echo $ip | cut -f3 -d '/' | grep -E "(^127\.)|(^192\.168\.)|(^fd42\:)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") nowdate=$(date) - + echo "#############################################################" - echo "### ANALYZING $whoisg1 = $ipfsnodeid ($ip) ###" + echo "### ANALYZING $whoisg1 = $ipfsnodeid ($ip) $XID $XZUID ###" echo "$peerline" myfriendpeer=$(cat ~/.zen/A_my_swarm.txt | grep $ipfsnodeid ) if [[ "$myfriendpeer" != "" ]]; then - [[ ! $(ipfs swarm peers | grep $ipfsnodeid) ]] && ipfs swarm connect "$peerline" && ipfs bootstrap add "$peerline" + if [[ ! $(ipfs swarm peers | grep $ipfsnodeid) ]]; then + ipfs swarm connect "$peerline" + if [ $? != 0 ]; then + grep -vEi $ip ~/.zen/A_my_swarm.txt + echo $ipfsnodeid > ~/.zen/A_dead_swarm.txt + echo "SEND MESSAGE ABOUT UNREACHABLE FRIEND $whoisg1 ($XID) ($XZUID)" + ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $G1PUB -t "ALERT" -m "Impossible de se synchroniser avec $whoisg1 ($XID) ($XZUID)" + # KEEPING LAST 10 ALERT MESSAGES + nbmessage=0 + for messageid in $(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey read -n300 -j | jq -r --arg friendKEY "$G1PUB" '.[] | select(.pubkey == $friendKEY)' | jq 'select(.title == "ALERT")' | jq -r '.id') + do + nbmessage=$((nbmessage+1)) + [ $nbmessage -gt 10 ] && echo "Delete $nbmessage OLD 'ALERT' messages from $G1PUB" && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey delete -i $messageid && sleep 0.5 + done + continue + fi + fi + ipfs bootstrap add "$peerline" echo "OK Friend REFRESH /ipns/$ipfsnodeid INTO ~/.zen/ipfs_swarm/" $MY_PATH/tools/timeout.sh -t 12 ipfs get --output=/home/$YOU/.zen/ipfs_swarm/ /ipns/$ipfsnodeid if [ $? != 0 ]; then echo "TIMEOUT REACHED ___ REMOVE $ipfsnodeid FROM ~/.zen/A_my_swarm.txt"; - grep -vEi $ip ~/.zen/A_my_swarm.txt - echo $ipfsnodeid > ~/.zen/A_dead_swarm.txt - ## SEND MESSAGE ABOUT UNREACHABLE FRIEND - [[ "$IPFSNODEID" != "$ipfsnodeid" ]] && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey send -d $G1PUB -t "ALERT" -m "Impossible de se synchroniser avec $whoisg1" - # KEEPING LAST 10 ALERT MESSAGES - nbmessage=0 - for messageid in $(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey read -n300 -j | jq -r --arg friendKEY "$G1PUB" '.[] | select(.pubkey == $friendKEY)' | jq 'select(.title == "ALERT")' | jq -r '.id') - do - nbmessage=$((nbmessage+1)) - [ $nbmessage -gt 10 ] && echo "Delete $nbmessage OLD 'ALERT' messages from $G1PUB" && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey delete -i $messageid && sleep 0.5 - done fi else [[ -f ~/.zen/DEFCON ]] && export DEFCON=$(cat ~/.zen/DEFCON) || export DEFCON=$(cat ~/.zen/astrXbian/DEFCON) # like in crom_MINUTE.sh echo "!!! UNKNOWN FRIEND !!! $ip ___ $ipfsnodeid ________ # DEFCON : $DEFCON " + rm -Rf ~/.zen/ipfs_swarm/.$ipfsnodeid if [[ ( $DEFCON < 5 ) && ! $isLAN ]] then ## DEFCON 4 @@ -111,6 +124,8 @@ done ######################################################################## # REFRESH Film Serie Anime Youtube ${PREFIX}ASTRXBIAN index ######################################################################## +echo "******************************************************************" +echo "### REFRESH Film Serie Anime Youtube ${PREFIX}ASTRXBIAN ###" mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ AXID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid); @@ -121,8 +136,10 @@ do done ######################################################################## -# TODO PUBLISH tiddlywiki WALL OF FRIENDS +# PUBLISH tiddlywiki WALL OF FRIENDS ######################################################################## +echo "******************************************************************" +echo "### PUBLISH tiddlywiki WALL OF FRIENDS ###" echo "" > ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/index.html for wiki in $(ls ~/.zen/ipfs_swarm/.12D*/index.html 2>/dev/null); do ipfsnodeid=$(echo $wiki | cut -d '.' -f 3- | cut -d '/' -f 1) @@ -138,11 +155,14 @@ echo "" >> ~/.zen/ipfs/.${IPFSNODEID}/FRIENDS/index.html ######################################################################## ######################################################################## +echo "******************************************************************" echo "RETRIEVING MY OWN DATA FROM IPNS TO ~/.zen/ipfs_swarm" ipfs get --output=/home/$YOU/.zen/ipfs_swarm/ /ipns/$IPFSNODEID # REFRESH IPNS SELF PUBLISH ######################################################################## +echo "******************************************************************" +echo "REFRESH IPNS SELF PUBLISH" ~/.zen/astrXbian/zen/ipns_self_publish.sh ########################################################################