IPNS adding ~/.zen/ipfs/.${IPFSNODEID}/KEY/$type_$TMDB

This commit is contained in:
qo-op 2021-02-17 03:33:41 +01:00
parent 81d17708ad
commit feffba9d4f
1 changed files with 36 additions and 14 deletions

View File

@ -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='<id>\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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipns/$KEY\">" > ~/.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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://localhost:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.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"