diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh index b6bf6e4..945a711 100755 --- a/zen/new_file_in_astroport.sh +++ b/zen/new_file_in_astroport.sh @@ -1,13 +1,18 @@ #!/bin/bash ######################################################################## # Author: Fred (support@qo-op.com) -# Version: 2020.12.15 +# Version: 0.3 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ######################################################################## # COPY ~/astroport/* files to IPFS # Publish INDEX ~/.zen/ipfs/.*/${PREFIX}ASTRXBIAN ######## #### ### ## # - +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" +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='\n') +G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) # ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN # Astropot/Kodi/Vstream source reads ${PREFIX}ASTRXBIAN from http://127.0.0.1:8181/.$IPFNODEID/ # Index File Format (could be enhanced) is using Kodi TMDB enhancement @@ -31,12 +36,12 @@ TITLE="${file%.*}" # GET XZUID [[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(hostname) -rm -f ~/.zen/ipfs/.${IPFSNODEID}/_xbian.zuid # CLEANING OLD FILE STRUCTURE (TO BE REMOVED AFTER SWARM CODE UPGRADE) -rm -f ~/.zen/ipfs/xbian/_${XZUID} TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... films, youtube, mp3 +type=$(echo "$TYPE" | awk '{ print tolowper($0) }') PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M TMDB=$(echo "$path" | cut -d '/' -f 6 ) +[ "$TMDB" -ne "$TMDB" ] && echo "ERROR: $path missing TMDB code. CHECK it https://www.themoviedb.org/ " && exit 1 # $TMDB NOT A NUMBER RES=$(echo "$path" | cut -d '/' -f 7 ) # File is placed in ROOT ~/astroport ? @@ -57,7 +62,6 @@ mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri) # Init ${PREFIX}ASTRXBIAN header -mv ~/.zen/ipfs/xbian/$PREFIX$XZUID ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN # MOVE OLD FS [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ]] && echo "CAT;TMDB;YEAR;TITLE;SAISON;GENRES;GROUPES;RES;URLS=http://127.0.0.1:8181" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ## CHECK IF $IPFSREPFILEID is NEW, or an already existing in SWARMs? @@ -71,7 +75,8 @@ isLINKinMYINDEX=$(grep "$IPFSREPFILEID" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kod if [[ ! $isFILEinINDEX && ! $isLINKinINDEX ]]; then mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/PIN/${IPFSREPFILEID}/$G1PUB/ # SIMILAR with "ipfs ls /ipns/${IPFSNODEID}/.${IPFSNODEID}/PIN/ (...)" - echo "film;$TMDB;$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN + # TODO: switch case $PREFIX + echo "$type;$TMDB;$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN else if [[ $isFILEinMYINDEX ]]; then echo "$file already in index" ## File was updated => Change OLDLINK @@ -81,17 +86,34 @@ else [[ $isLINKinINDEX ]] && echo "$IPFSREPFILEID already in index. DO NOTHING" fi -echo "CREATE ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN ($TYPE) from ~/.zen/ipfs*/xbian/${PREFIX}*" +echo "($TYPE) => CREATE ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN" echo "-----------------------------------------------------------------" -cat ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/${PREFIX}* | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN +cat ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | cat ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/${PREFIX}* | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN + +# CLEAN all ipns keys except self +# for key in $(ipfs key list | grep -Ev 'self'); do ipfs key rm $key; done + +## CREATE NEW ipns KEY +[[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/ && KEY=$(ipfs key gen "$type_$TMDB") && KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) +## INIT ipns +if [[ $KEY ]]; then + echo "$KEYFILE" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/.ipns.key.keystore_filename + echo "$G1PUB" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/.g1_creator + touch ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/.zen + echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/ipns.html + $MY_PATH/jaklis/lib/natools.py encrypt -k $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/.ipns.key.encrypt.natools +fi + +echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB/index.html +NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB | tail -n 1 ) +ipfs name publish --key="$type_$TMDB" $NEWIPFS ######################################################################## -echo "PUBLISH ~/.zen/ipfs to IPNS self for SWARM SHARING" -echo "-----------------------------------------------------------------" -echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/.timestamp -MIPFS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1) -echo $MIPFS > ~/.zen/ipfs/.${IPFSNODEID}/.chain ## THIS SIMPLE LINE IS BLOCKCHAIN POWERING ANY DATA PUBLISHED TO IPFS !!! -NODEIPNS=$(ipfs name publish --quieter /ipfs/$MIPFS) +# REFRESH IPNS SELF PUBLISH +######################################################################## +~/.zen/astrXbian/zen/ipns_self_publish.sh +######################################################################## echo "NEW $TYPE ($file) ADDED." echo "INDEX UPDATED : http://127.0.0.1:8181/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN" +echo "VIDEO IPNS LINK : http://localhost:8181/ipns/$KEY"