2021-02-20 02:03:53 +01:00
|
|
|
#!/bin/bash
|
|
|
|
########################################################################
|
2021-08-05 04:09:35 +02:00
|
|
|
# Author:
|
2021-02-20 02:03:53 +01:00
|
|
|
# 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##*/}"
|
2021-08-06 00:25:58 +02:00
|
|
|
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
|
|
|
|
|
2021-02-20 02:03:53 +01:00
|
|
|
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
|
|
|
|
IPFSNODEID=$(ipfs id -f='<id>\n')
|
|
|
|
G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
|
|
|
|
|
2021-04-04 20:34:07 +02:00
|
|
|
# This script is called to manage SWARM autoPIN
|
|
|
|
# Actual behaviour is to accept anything from
|
2021-06-14 16:35:38 +02:00
|
|
|
# SOURCE: ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.ipfsid.encrypt (new_file_in_astroport.sh)
|
2021-08-05 04:09:35 +02:00
|
|
|
# MEDIAKEY: ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.ipns.mediakey.encrypt
|
2021-02-22 02:17:21 +01:00
|
|
|
|
2021-02-20 02:03:53 +01:00
|
|
|
## AUTO PIN FRIENDS ACTIVATION
|
2021-09-03 23:55:08 +02:00
|
|
|
## TODO Source should rename ".ipfsid.encrypt" to stop asking for autoPIN
|
2021-05-18 01:24:07 +02:00
|
|
|
for astrofile in $(ls -dt ~/.zen/ipfs_swarm/.12D*/KEY/*/*/${G1PUB}/.ipfsid.encrypt | shuf);
|
2021-02-20 02:03:53 +01:00
|
|
|
do
|
2021-09-03 23:55:08 +02:00
|
|
|
astrofilelinksec=$(echo "$astrofile" | sed "s/.ipfsid.encrypt/.ipfs.filelink.encrypt/g")
|
2021-06-14 16:35:38 +02:00
|
|
|
# decrypt $astrofile
|
|
|
|
mediakey=$(echo "$astrofile" | cut -d '/' -f 8 )
|
|
|
|
keytype=$(echo "$mediakey" | cut -d '_' -f 1 )
|
2021-09-04 00:11:51 +02:00
|
|
|
mediaid=$(echo "$mediakey" | cut -d '_' -f 2- )
|
2021-08-05 04:09:35 +02:00
|
|
|
|
2021-06-14 16:35:38 +02:00
|
|
|
g1source=$(echo "$astrofile" | cut -d '/' -f 9 )
|
|
|
|
ipfsnodesource=$(~/.zen/astrXbian/zen/tools/g1_to_ipfs.py $g1source)
|
|
|
|
|
2021-09-04 00:33:23 +02:00
|
|
|
# CHECK FRIENDSHIP LEVELS
|
2021-09-04 00:39:33 +02:00
|
|
|
# only talk to 12D not Qm
|
|
|
|
[[ "${ipfsnodesource:0:2}" == "Qm" ]] && echo "NO COMPATIBLE STATION $ipfsnodesource" && continue
|
2021-09-04 00:33:23 +02:00
|
|
|
starsin=$(ipfs --timeout=10s cat /ipns/$ipfsnodesource/.$ipfsnodesource/FRIENDS/$G1PUB/stars.level)
|
|
|
|
starsout=$(ipfs --timeout=10s cat /ipns/$IPFSNODEID/.$IPFSNODEID/FRIENDS/$g1source/stars.level)
|
|
|
|
|
|
|
|
## PIN COULD BE ONLY ALLOWED FROM SOME LEVEL FRIENDS ONLY
|
|
|
|
echo "RX $starsin / TX $starsout (stars)"
|
|
|
|
|
2021-06-14 16:35:38 +02:00
|
|
|
echo "$mediakey PINNING ASKED BY $g1source"
|
2021-09-03 23:55:08 +02:00
|
|
|
## DECRYPT FINAL IPFS LINKS...
|
2021-06-14 16:35:38 +02:00
|
|
|
$MY_PATH/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$astrofile" -o "/tmp/ipfslink.txt"
|
2021-09-03 23:59:33 +02:00
|
|
|
astrofile=$(cat /tmp/ipfslink.txt) && [[ -d ~/.zen/PIN/${astrofile} ]] && echo "removing old pin reference" && rm -Rf ~/.zen/PIN/${astrofile}/ ## REMOVE OLD PIN REFERENCE to keep directory (easier reading)
|
2021-09-03 23:55:08 +02:00
|
|
|
$MY_PATH/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$astrofilelinksec" -o "/tmp/ipfsfilelink.txt"
|
|
|
|
ipfsrepidfile=$(cat /tmp/ipfsfilelink.txt | rev | cut -d '/' -f 2 | rev)
|
|
|
|
# PINNING NEW DIRECTORY & FILE
|
|
|
|
echo "SHOULD I PIN ~/.zen/PIN/${ipfsrepidfile} ??"
|
|
|
|
if [[ ! -d ~/.zen/PIN/${ipfsrepidfile} ]];
|
2021-06-14 16:35:38 +02:00
|
|
|
then
|
2021-09-03 23:55:08 +02:00
|
|
|
echo "PIN ADD : $ipfsrepidfile"
|
|
|
|
ipfs pin add /ipfs/$ipfsrepidfile && mkdir -p ~/.zen/PIN/${ipfsrepidfile}/
|
2021-09-04 00:04:27 +02:00
|
|
|
echo "RECORDING NEW PIN ~/.zen/PIN/${ipfsrepidfile}"
|
|
|
|
[[ -d ~/.zen/PIN/${ipfsrepidfile} ]] && echo "$G1PUB" > ~/.zen/PIN/${ipfsrepidfile}/$ipfsnodesource
|
2021-08-05 04:09:35 +02:00
|
|
|
|
2021-08-06 12:25:05 +02:00
|
|
|
## COPY IPNS MEDIAKEY TO ipfs keystore (UPDATE IF STATION OFF)
|
2021-06-14 16:35:38 +02:00
|
|
|
echo "ADD ${mediakey} to my local keystore (SO I CAN UPDATE IPNS LINK LATER with ipns_TAG_refresh.sh)"
|
|
|
|
if [[ -f $HOME/.zen/ipfs_swarm/.${ipfsnodesource}/KEY/${mediakey}/${g1source}/${G1PUB}/.ipns.mediakey.encrypt ]]; then
|
|
|
|
$MY_PATH/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$HOME/.zen/ipfs_swarm/.${ipfsnodesource}/KEY/${mediakey}/${g1source}/${G1PUB}/.ipns.mediakey.encrypt" -o "/tmp/ipns.mediakey"
|
2021-08-05 04:09:35 +02:00
|
|
|
if [[ -f /tmp/ipns.mediakey ]]; then
|
2021-06-17 23:41:27 +02:00
|
|
|
KEYFILE=$($MY_PATH/give_me_keystore_filename.py "${mediakey}")
|
2021-09-04 00:01:03 +02:00
|
|
|
[[ ! -f ~/.ipfs/keystore/$KEYFILE ]] && mv /tmp/ipns.mediakey ~/.ipfs/keystore/$KEYFILE || ( echo "$KEYFILE already existing in local keystore. CONTINUE" )
|
2021-09-03 23:55:08 +02:00
|
|
|
echo "${mediakey}" > ~/.zen/PIN/${ipfsrepidfile}/MEDIAKEY
|
|
|
|
echo "$(ipfs key list -l | grep ${mediakey} | cut -d ' ' -f 1)" > ~/.zen/PIN/${ipfsrepidfile}/IPNSLINK
|
2021-06-29 02:16:03 +02:00
|
|
|
## USED BY BOOTSTRAP IN ipns_TAG_refresh.sh TO REFRESH MEDIAKEY publishing
|
2021-06-14 16:35:38 +02:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
2021-08-05 04:09:35 +02:00
|
|
|
echo "ALREADY PINNED"
|
|
|
|
continue
|
2021-06-14 16:35:38 +02:00
|
|
|
fi
|
2021-08-05 04:09:35 +02:00
|
|
|
|
2021-09-04 14:45:42 +02:00
|
|
|
########## PIN MAKES YOU OFFICIAL FASTRXBIAN FILM DISTRIBUTOR
|
2021-08-11 18:15:35 +02:00
|
|
|
############################################ PINNING NODE MAKES ALL HIS FRIENDS MOVIES AVAILABLE TO ALL
|
2021-08-06 12:25:05 +02:00
|
|
|
## TODO : DECIDE TO ACTIVATE THIS BEHAVIOUR OR NOT ?
|
2021-06-14 16:35:38 +02:00
|
|
|
## Copy FASTRXBIAN index (makes movies available for ALL)
|
|
|
|
[[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN ]] && echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8181" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
2021-09-04 14:45:42 +02:00
|
|
|
if [[ "$keytype" == "TMDB" ]]; then
|
|
|
|
cat ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/FASTRXBIAN | grep ";$mediaid;" | tail -n 1 >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
|
|
|
cat ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN | uniq > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/FASTRXBIAN
|
|
|
|
fi
|
2021-06-14 16:35:38 +02:00
|
|
|
# EXIT AFTER ONE PIN ONLY (next PIN in cron_MINUTE time)
|
2021-09-03 23:55:08 +02:00
|
|
|
[[ -f ~/.zen/PIN/${ipfsrepidfile}/$G1PUB ]] && break
|
2021-02-20 02:03:53 +01:00
|
|
|
done
|
|
|
|
|
2021-06-14 16:35:38 +02:00
|
|
|
exit 0
|