diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh
index 7fa0c2a..1906a67 100755
--- a/zen/new_file_in_astroport.sh
+++ b/zen/new_file_in_astroport.sh
@@ -24,31 +24,29 @@ G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
# mkdir -p ~/astroport/mp3
########################################################################
path="$1"
+# Add trailing / if needed
+length=${#path}
+last_char=${path:length-1:1}
+[[ $last_char != "/" ]] && path="$path/"; :
+
file="$2"
ipns="$3"
+
echo "~/.zen/astrXbian/zen/new_file_in_astroport.sh PATH/ \"$path\" FILE \"$file\" IPNS \"$ipns\""
+
extension="${file##*.}"
TITLE="${file%.*}"
-# .part file false flag correcting
+
+# .part file false flag correcting (inotify mode)
[[ ! -f "${path}${file}" ]] && file="${TITLE%.*}" && extension="${TITLE##*.}" && [[ ! -f "${path}${file}" ]] && echo "NO FILE" && exit 1
# GET XZUID
-[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(hostname)
+[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title ]] && XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.gchange_title) || XZUID=$(cat /etc/hostname)
[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && echo "Les fichiers sont à placer dans ~/astroport/ MERCI" && exit 1
-TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... film, youtube, mp3
+TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TYPE(film, youtube, mp3)/ REFERENCE /
CAT=$(echo "$TYPE" | awk '{ print tolower($0) }')
-[[ ! $CAT ]] && echo "CAT est le 5e sous-répertoire de $path" && exit 1
PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y
-if [[ "$PREFIX" == "Y" || "$PREFIX" == "M" ]]; then
- INDEXPREFIX="YOUTUBE_"
- REFERENCE=$(echo "$file" | cut -d "_" -f 1) # Youtube filename starts with ID_
-else
- INDEXPREFIX="TMDB_"
- REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Contains TMDB id
- [ "${REFERENCE}" -ne "${REFERENCE}" ] && echo "ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ " && exit 1 # ${REFERENCE} NOT A NUMBER
-fi
-
# File is placed in ROOT ~/astroport ?
if [[ $PREFIX == "" ]]
then
@@ -56,6 +54,56 @@ then
echo "WARNING. $TYPE is root file UNTREATED" && exit 1
fi
+########################################################################
+# EXTRACT INDEX REFERENCE : TMDB or YOUTUBE (can be extended with new )
+########################################################################
+case ${PREFIX} in
+ Y)
+ INDEXPREFIX="YOUTUBE_"
+ REFERENCE=$(echo "$file" | cut -d "_" -f 1) # Youtube filename starts with ID_
+ ;;
+ M)
+ INDEXPREFIX="MP3TUBE_"
+ REFERENCE=$(echo "$file" | cut -d "_" -f 1) # Youtube filename starts with ID_
+ ;;
+ F | S | A)
+ INDEXPREFIX="TMDB_"
+ REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Path contains TMDB id
+ [ "${REFERENCE}" -ne "${REFERENCE}" ] && echo "ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ " && exit 1 # ${REFERENCE} NOT A NUMBER
+ ;;
+ *)
+ echo "$PREFIX inconnu" && exit 1
+ ;;
+esac
+
+########################################################################
+## CHECK if ${INDEXPREFIX}${REFERENCE} KEY exists
+########################################################################
+isREFERENCEinINDEX=$(grep ";$REFERENCE;" ~/.zen/ipfs_swarm/.*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN)
+if [[ ${isREFERENCEinINDEX} ]]
+then
+ if [[ -d ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} ]]
+ then
+ # FILE IS MINE, replacing it in INDEX
+ ipnslink=$(cat ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link)
+ echo "CLEF IPNS ${INDEXPREFIX}${REFERENCE} = $ipnslink"
+
+ # DELETING GCHANGE AD
+ gchangeAD=$(cat ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad)
+ ~/.zen/astrXbian/zen/jaklis/jaklis.py deleteoffer -i $gchangeAD
+ rm ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad
+
+ # DELETING OLD LINE FROM INDEX
+ sed -i "/;$REFERENCE;/d" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
+
+ else
+ echo "FILE IS FROM ANOTHER"
+ echo ${isREFERENCEinINDEX}
+ # I could send message to my friend, PIN, exchange contract... TODO
+ fi
+fi
+
+########################################################################
echo "ADDING ${path}${file} to IPFS and create ${PREFIX}ASTRXBIAN INDEX"
echo "~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN"
echo "-----------------------------------------------------------------"
@@ -83,16 +131,21 @@ if [[ $KEY ]]; then
echo "$KEY" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link
# .zen could contain ZEN for economic value
touch ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.zen
- # CLEAR ipfs link (is then cyphered to manage exchange regulation)
- echo "/ipfs/$IPFSREPFILEID/${file}" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
- echo "${file}" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filename
- # TRANSFERT from ajouter_video.sh "ajouter_video.txt" later used line 118
- [[ -f ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ]] && mv ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/
-################ ENCRYPT SENSIBLE DATA
+ ################ ENCRYPT keystore/$KEYFILE
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.key.natools.encrypt
- $MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink -o ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink.natools.encrypt
- rm ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
fi
+
+# CLEAR ipfs link (is then cyphered to manage exchange regulation)
+echo "/ipfs/$IPFSREPFILEID/${file}" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
+################ ENCRYPT .ipfs.filelink
+$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink -o ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink.natools.encrypt
+rm ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
+
+echo "${file}" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filename
+
+# TRANSFERT from ajouter_video.sh "ajouter_video.txt" later used
+[[ -f ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ]] && mv ~/astroport/${CAT}/${TMDB}/ajouter_video.txt ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/
+
# IPNS index.html Redirect to ipfs streaming link (could be contract or anything !!)
echo "" > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html
echo "
@@ -104,11 +157,13 @@ IPNS=$(ipfs name publish --quieter --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS)
########################################################################
# PUBLISH GCHANGE AD
########################################################################
-GOFFER=$(~/.zen/astrXbian/zen/jaklis/jaklis.py setoffer -t "#kodi / ${file}" -d "${INDEXPREFIX}${REFERENCE} https://aries.copylaradio.com/ipns/$IPNS/" -p ~/.zen/astrXbian/disk.png)
-echo $GOFFER > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad
-NEWIPFS=$(ipfs add -rHq ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/ | tail -n 1 )
-IPNS=$(ipfs name publish --quieter --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS)
-
+if [[ ! -f ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad ]]
+then
+ GOFFER=$(~/.zen/astrXbian/zen/jaklis/jaklis.py setoffer -t "#astroport ${INDEXPREFIX}${REFERENCE} ${TITLE}" -d "https://aries.copylaradio.com/ipns/$IPNS/" -p ~/.zen/astrXbian/disk.png)
+ echo $GOFFER > ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad
+ NEWIPFS=$(ipfs add -rHq ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/ | tail -n 1 )
+ IPNS=$(ipfs name publish --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS)
+fi
########################################################################
# FIRST ${PREFIX}ASTRXBIAN header
[[ ! -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
@@ -126,7 +181,12 @@ if [[ ! $isFILEinINDEX && ! $isLINKinINDEX ]]; then
touch ~/.zen/ipfs/.${IPFSNODEID}/PIN/${IPFSREPFILEID}/$G1PUB
# SIMILAR with "ipfs ls /ipns/${IPFSNODEID}/.${IPFSNODEID}/PIN/ (...)"
# TODO: switch case $PREFIX
- [[ -f ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt ]] && line=$(cat ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g") || line="$CAT;${REFERENCE};$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
+ if [[ -f ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt ]]
+ then
+ line=$(cat ~/.zen/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g")
+ else
+ line="$CAT;${REFERENCE};$YEAR;$TITLE;$SAISON;;${XZUID};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
+ fi
echo "$line" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
else
if [[ $isFILEinMYINDEX ]]; then