#!/bin/bash ######################################################################## # Author: Astrocrew # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ######################################################################## MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l) [[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0 YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1 G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) && [[ ! $G1PUB ]] && echo "NO ~/.zen/secret.dunikey EXIT" && exit 1 IPFSNODEID=$(ipfs --timeout=20s id -f='\n') && [[ ! $IPFSNODEID ]] && echo 'NO IPFS RUNNING. EXIT' && exit 1 MEDIAKEYIPNS="$1"&& [[ ! $MEDIAKEYIPNS ]] && echo 'NO MEDIAKEY. Enter ipns/??? value. EXIT' && exit 1 OPENACCES="$2" && [[ ! $OPENACCES ]] && echo 'OPEN ACCES TO "$2=$G1PUB"' tempdir=$(mktemp -d) cd $tempdir ## GET CURRENT DHT PROPAGATED VERSION ipfs --timeout=10s get --output="$tempdir" /ipns/$MEDIAKEYIPNS [[ ! $? == 0 ]] && echo "CANNOT GET MEDIAKEY" && exit 1 ## DO I OWN THE KEY, OR SHOUD I REQUEST IT mediakeyid=$(cat ./*/.id | tail -n 1) if [[ ! $(ipfs key list -l | grep $mediakeyid) ]]; then ## SEND A MESSAGE ASKING FOR THE KEY (I am a bootstrap or http gateway) for sharedowners in $(ls -d */ | cut -d '/' -f 1); do ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" send -d "$sharedowners" -t "MEDIAKEY ask for sharing contract" -m "I was wishing to increment $mediakeyid views, but not in your contracts yet. Please send me your ./ipfs/keystore/$MEDIAKEYIPNS to activate." done exit 1 fi ## INCREMENT COUNTER ## GO INTO $G1PUB EXCHANGE SPACE [[ ! -d ./$G1PUB ]] && mkdir $G1PUB cd $G1PUB count=$(cat .views.counter 2>/dev/null) || count=0 echo $((count+1)) > .views.counter ## PUBLISH NEW STATE I=$(ipfs add -qrH $tempdir | tail -n 1) echo "CHAIN: $I" echo $I > .chain echo "${mediakeyid} NAME PUBLISHING " # MEDIAKEY IPNS name publish J=$(ipfs name publish --quieter -k ${mediakeyid} /ipfs/${I}) echo "$mediakeyid VIEW COUNTER UPDATED in https://tube.copylaradio.com/ipns/$J/$G1PUB/.views.counter" # TODO REFRESH LOCAL STATE echo 'cp -Rf *.* /home/$YOU/.zen/ipfs/.$IPFSNODEID/KEY/$mediakeyid/' if [[ $OPENACCES ]]; then ## CREATE OFFICIAL SPACE DETECTED BY autoPINfriends.sh :: ~/.zen/ipfs_swarm/.12D*/KEY/*/*/${G1PUB}/.ipfsid.encrypt mkdir -p /home/$YOU/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${OPENACCES}/ /home/$YOU/.zen/astrXbian/zen/tools/natools.py encrypt -p $OPENACCES -i $HOME/.ipfs/keystore/$KEYFILE -o /home/$YOU/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${OPENACCES}/.ipns.mediakey.encrypt ## TODO COULD SEND JUNE FOR THAT ## PUBLISH NEW STATE I=$(ipfs add -qrH $tempdir | tail -n 1) echo "CHAIN: $I" echo $I > .chain echo "${mediakeyid} NAME PUBLISHING " # MEDIAKEY IPNS name publish J=$(ipfs name publish --quieter -k ${mediakeyid} /ipfs/${I}) echo "$mediakeyid VIEW COUNTER UPDATED in https://tube.copylaradio.com/ipns/$J/$G1PUB/.views.counter" fi