2021-08-11 04:27:53 +02:00
#!/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= '<id>\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
MEDIAKEY = $( cat ./*/.id | tail -n 1)
[ [ ! $MEDIAKEY ] ] && echo "MISSING MATCHING MEDIAKEY ID" && exit 1
if [ [ ! $( ipfs key list -l | grep $MEDIAKEY ) ] ] ; 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
2021-08-12 02:09:36 +02:00
~/.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 $MEDIAKEY views, but not in your contracts yet. Please run ~/.zen/astrXbian/actions/view_counter_increment_or_allow.sh $MEDIAKEYIPNS $G1PUB to activate. "
2021-08-11 04:27:53 +02:00
done
exit 1
fi
## INCREMENT COUNTER
## GO INTO $G1PUB EXCHANGE SPACE
[ [ ! -d ./$G1PUB ] ] && echo " MISSING RELATION WITH $G1PUB . EXIT " && exit 1
cd $G1PUB
count = $( cat .views.counter 2>/dev/null) || count = 0
echo $(( count+1)) > .views.counter
if [ [ $OPENACCES ] ] ; then
echo " Creating ${ OPENACCES } /.ipns.mediakey.encrypt and .ipfsid.encrypt "
## CREATE OFFICIAL RELATION DETECTED BY autoPINfriends.sh with ~/.zen/ipfs_swarm/.12D*/KEY/*/*/${G1PUB}/.ipfsid.encrypt
mkdir -p /home/$YOU /.zen/ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /${ OPENACCES } /
key2send = $( /home/$YOU /.zen/astrXbian/zen/tools/give_me_keystore_filename.py $MEDIAKEY )
/home/$YOU /.zen/astrXbian/zen/tools/natools.py encrypt -p ${ OPENACCES } -i /home/$YOU /.ipfs/keystore/$key2send -o /home/$YOU /.zen/ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /${ OPENACCES } /.ipns.mediakey.encrypt
/home/$YOU /.zen/astrXbian/zen/tools/natools.py decrypt -f pubsec -k " /home/ $YOU /.zen/secret.dunikey " -i " /home/ $YOU /.zen/ipfs/. ${ IPFSNODEID } /KEY/ ${ MEDIAKEY } / ${ G1PUB } /.ipfsid.encrypt " -o " ./ipfsid_ $MEDIAKEY .txt "
/home/$YOU /.zen/astrXbian/zen/tools/natools.py encrypt -p ${ OPENACCES } -i ./ipfsid_$MEDIAKEY .txt -o /home/$YOU /.zen/ipfs/.${ IPFSNODEID } /KEY/${ MEDIAKEY } /${ G1PUB } /${ OPENACCES } /.ipfsid.encrypt
## Ask PIN to Bootstraps executed through autoPINfriends.sh
rm ./ipfsid_$MEDIAKEY .txt
## TODO COULD SEND JUNE FOR THAT?
syncronizedir = " /home/ $YOU /.zen/ipfs/. ${ IPFSNODEID } /KEY/ ${ MEDIAKEY } "
else
syncronizedir = " $tempdir "
fi
echo " WE ARE in $syncronizedir "
cd $syncronizedir
## PUBLISH NEW STATE
I = $( ipfs add -qrH $syncronizedir | tail -n 1)
echo " CHAIN: $I "
echo " $( date -u +%s%N | cut -b1-13) " > .timestamp
echo $I > .chain
I = $( ipfs add -qrH $syncronizedir | tail -n 1)
echo " ${ MEDIAKEY } NAME PUBLISHING "
# MEDIAKEY IPNS name publish
J = $( ipfs --timeout= 180s name publish --quieter -k ${ MEDIAKEY } /ipfs/${ I } )
echo " $MEDIAKEY VIEW COUNTER UPDATED in https://tube.copylaradio.com/ipns/ $J / $G1PUB /.views.counter "