#!/bin/bash ######################################################################## # Author: Astrocrew # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.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 MEDIAKEYIPNS="$1" 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 ## GO INTO $G1PUB EXCHANGE SPACE [[ ! -d ./$G1PUB ]] && mkdir $G1PUB cd $G1PUB ## DO I OWN THE KEY, OR SHOUD I REQUEST IT mediakeyid=$(cat ./*/.id) 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 count=$(cat .views.counter 2>/dev/null) || count=0 echo $((count+1)) > .views.counter ## PUBLISH NEW STATE I=$(ipfs add -qrH ./ | 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 "$id VIEW COUNTER UPDATED in https://tube.copylaradio.com/ipns/$J/$G1PUB/.views.counter"