myIP:12345 publish IPFSNODE & MySwarm DATALINKS

This commit is contained in:
fred 2022-11-18 22:47:45 +01:00
parent 0b5b01b9ec
commit f741106511
3 changed files with 79 additions and 44 deletions

View File

@ -193,12 +193,18 @@ done
################################################################# #################################################################
## IPFSNODEID ASTRONAUTES SIGNALING ## 12345 port ## IPFSNODEID ASTRONAUTES SIGNALING ## 12345 port
############################ ############################
# Scan local cache
ls ~/.zen/tmp/${IPFSNODEID}/ ls ~/.zen/tmp/${IPFSNODEID}/
BSIZE=$(du -b ~/.zen/tmp/${IPFSNODEID} | tail -n 1 | cut -f 1)
ROUTING=$(ipfs add -rwq ~/.zen/tmp/${IPFSNODEID}/* | tail -n 1 ) ## Merge actual online version
ipfs get -o ~/.zen/tmp/${IPFSNODEID} /ipns/${IPFSNODEID}/
NSIZE=$(du -b ~/.zen/tmp/${IPFSNODEID} | tail -n 1 | cut -f 1)
echo "PUBLISHING STATION INDEXES" [[ $BSIZE != $NSIZE ]] \
ipfs name publish --allow-offline -t 72h /ipfs/$ROUTING && ROUTING=$(ipfs add -rwq ~/.zen/tmp/${IPFSNODEID}/* | tail -n 1 ) \
&& echo "BALISE STATION /ipns/${IPFSNODEID} INDEXES = $NSIZE octets" \
&& ipfs name publish --allow-offline -t 72h /ipfs/$ROUTING
echo "PLAYER.refresh DONE." echo "PLAYER.refresh DONE."

View File

@ -9,70 +9,104 @@
# Then publish map of json DApp data # Then publish map of json DApp data
# #
MOATS=$(date -u +"%Y%m%d%H%M%S%4N") MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
IPFSNODEID=$(ipfs id -f='<id>\n') IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
myIP=$(hostname -I | awk '{print $1}' | head -n 1) myIP=$(hostname -I | awk '{print $1}' | head -n 1)
isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/")
[[ ! $myIP || $isLAN ]] && myIP="127.0.1.1" [[ ! $myIP || $isLAN ]] && myIP="astroport.localhost"
PORT=12345 PORT=12345
YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs
LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL
ncrunning=$(ps auxf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) ncrunning=$(ps axf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 2)
[[ $ncrunning ]] && echo "(≖‿‿≖) - API Server Already Running - (≖‿‿≖) " && exit 1 [[ $ncrunning ]] && echo "(≖‿‿≖) - API Server Already Running - (≖‿‿≖) " && kill -9 $ncrunning
## RESET MEMORY ## RESET MEMORY
rm -Rf ~/.zen/tmp/swarm/* rm -Rf ~/.zen/tmp/swarm/*
## NAME PUBLISH EMPTY !!! ## NAME PUBLISH EMPTY !!!
ipfs name publish --allow-offline /ipfs/Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ # ipfs name publish --allow-offline /ipfs/Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ
## INDICATE IPFSNODEID IS RUNNING
##############################################
mkdir -p ~/.zen/tmp/swarm
mkdir -p ~/.zen/tmp/$IPFSNODEID
echo "${MOATS}" > ~/.zen/tmp/${IPFSNODEID}/.MySwarm.moats
## CREATE CHAN = MySwarm_$IPFSNODEID
CHAN=$(ipfs key list -l | grep -w "MySwarm_$IPFSNODEID" | cut -d ' ' -f 1)
[[ ! $CHAN ]] && CHAN=$(ipfs key gen "MySwarm_$IPFSNODEID")
## PUBLISH CHANNEL IPNS
echo "/ipns/$CHAN" > ~/.zen/tmp/$IPFSNODEID/.MySwarm
mkdir -p ~/.zen/tmp/swarm/${IPFSNODEID}
echo "${MOATS}" > ~/.zen/tmp/swarm/${IPFSNODEID}/.moats
# REFRESH FROM BOOTSTRAP (COULD, SHOULD BE MY FRIENDS !) # REFRESH FROM BOOTSTRAP (COULD, SHOULD BE MY FRIENDS !)
while true; do while true; do
start=`date +%s` start=`date +%s`
MOATS=$(date -u +"%Y%m%d%H%M%S%4N") MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
lastrun=$(cat ~/.zen/tmp/swarm/${IPFSNODEID}/.moats) lastrun=$(cat ~/.zen/tmp/${IPFSNODEID}/.MySwarm.moats)
duree=$(expr ${MOATS} - $lastrun) duree=$(expr ${MOATS} - $lastrun)
## FIXING TIC TAC FOR NODE & SWARM REFRESH
if [[ duree -gt 3600000 ]]; then if [[ duree -gt 3600000 ]]; then
( (
start=`date +%s` start=`date +%s`
############# GET BOOTSTRAP SWARM DATA
for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#") # remove comments for bootnode in $(cat ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | grep -Ev "#") # remove comments
do do
echo "############# RUN LOOP #########" echo "############# RUN LOOP #########"
ipfsnodeid=${bootnode##*/} ipfsnodeid=${bootnode##*/}
mkdir -p ~/.zen/tmp/swarm/$ipfsnodeid mkdir -p ~/.zen/tmp/swarm/$ipfsnodeid
echo "IPFS get /ipns/$ipfsnodeid"
[[ $YOU ]] && echo "http://$myIP:8080/ipns/${ipfsnodeid} ($YOU)" && ipfs --timeout 12s get -o ~/.zen/tmp/swarm /ipns/$ipfsnodeid
## [[ ! -s ~/.zen/tmp/swarm/$ipfsnodeid/index.json ]] && echo "$LIBRA/ipns/${ipfsnodeid}" && curl -m 6 -so ~/.zen/tmp/swarm/$ipfsnodeid/index.json "$LIBRA/ipns/${ipfsnodeid}"
## TODO LOOP CREATE bootstrap json array echo "IPFS get /ipns/$ipfsnodeid"
# [[ $YOU ]] && ipfs --timeout 12s get -o ~/.zen/tmp/swarm/$ipfsnodeid /ipns/$ipfsnodeid/
echo "Updated : ~/.zen/tmp/swarm/$ipfsnodeid" echo "Updated : ~/.zen/tmp/swarm/$ipfsnodeid"
ls ~/.zen/tmp/swarm/$ipfsnodeid ls ~/.zen/tmp/swarm/$ipfsnodeid
done done
ls ~/.zen/tmp/swarm/ ############### UPDATE MySwarm CHAN
ROUTING=$(ipfs add -rwq ~/.zen/tmp/swarm/* | tail -n 1 ) ls ~/.zen/tmp/swarm
echo "SELF PUBLISHING SWARM STATUS" BSIZE=$(du -b ~/.zen/tmp/swarm | tail -n 1 | cut -f 1)
ipfs name publish --allow-offline /ipfs/$ROUTING
## SIZE MODIFIED
[[ $BSIZE != $(cat ~/.zen/tmp/swarm/.bsize) ]] \
&& echo $BSIZE > ~/.zen/tmp/swarm/.bsize \
&& SWARMH=$(ipfs add -rwq ~/.zen/tmp/swarm/* | tail -n 1 ) \
&& ipfs name publish --key "MySwarm_$IPFSNODEID" --allow-offline /ipfs/$SWARMH
############# PUBLISH IPFSNODEID BALISE
# Scan local cache
ls ~/.zen/tmp/${IPFSNODEID}/
BSIZE=$(du -b ~/.zen/tmp/${IPFSNODEID} | tail -n 1 | cut -f 1)
## Merge with actual online version
ipfs get -o ~/.zen/tmp/${IPFSNODEID} /ipns/${IPFSNODEID}/
NSIZE=$(du -b ~/.zen/tmp/${IPFSNODEID} | tail -n 1 | cut -f 1)
## Local / IPNS size differ => Publish
[[ $BSIZE != $NSIZE ]] \
&& ROUTING=$(ipfs add -rwq ~/.zen/tmp/${IPFSNODEID}/* | tail -n 1 ) \
&& echo "BALISE STATION /ipns/${IPFSNODEID} INDEXES = $NSIZE octets" \
&& ipfs name publish --allow-offline /ipfs/$ROUTING
end=`date +%s` end=`date +%s`
echo '(*__*) UPDATE & PUBLISH duration was '`expr $end - $start`' seconds.' echo '(*__*) MySwam Update ($BSIZE B) duration was '`expr $end - $start`' seconds.'
# last run recording
echo "${MOATS}" > ~/.zen/tmp/swarm/${IPFSNODEID}/.moats
) & ) &
# last run recording
echo "${MOATS}" > ~/.zen/tmp/${IPFSNODEID}/.MySwarm.moats
else else
echo "$duree only cache life" echo "$duree only cache life"
@ -90,7 +124,8 @@ Content-Type: application/json; charset=UTF-8
\"hostname\" : \"$(hostname)\", \"hostname\" : \"$(hostname)\",
\"myIP\" : \"${myIP}\", \"myIP\" : \"${myIP}\",
\"ipfsnodeid\" : \"${IPFSNODEID}\", \"ipfsnodeid\" : \"${IPFSNODEID}\",
\"url\" : \"http://${myIP}:8080/ipns/${IPFSNODEID}\" \"url\" : \"http://${myIP}:8080/ipns/${IPFSNODEID}\",
\"myswarm\" : \"http://${myIP}:8080/ipns/${CHAN}\"
} }
" "
###################################################################################### ######################################################################################

View File

@ -61,6 +61,7 @@ TITLE="${file%.*}"
MIME=$(file --mime-type -b "${path}${file}") MIME=$(file --mime-type -b "${path}${file}")
############# EXTEND MEDIAKEY IDENTIFATORS https://github.com/NapoleonWils0n/ffmpeg-scripts
if [[ $(echo "$MIME" | grep 'video') ]]; then if [[ $(echo "$MIME" | grep 'video') ]]; then
## Create gifanime ## TODO Search for similarities BEFORE ADD ## Create gifanime ## TODO Search for similarities BEFORE ADD
echo "(✜‿‿✜) GIFANIME (✜‿‿✜)" echo "(✜‿‿✜) GIFANIME (✜‿‿✜)"
@ -80,12 +81,12 @@ mkdir -p ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}
### SOURCE IS ~/astroport/ !! ### SOURCE IS ~/astroport/ !!
[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && er="Les fichiers sont à placer dans ~/astroport/ MERCI" && echo "$er" && exit 1 [[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && er="Les fichiers sont à placer dans ~/astroport/ MERCI" && echo "$er" && exit 1
### TyPE & type & T ### TyPE & type & T = related to ~/astroport location of the infile (mimetype subdivision)
TyPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TyPE(film, youtube, mp3, video, page)/ REFERENCE / TyPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TyPE(film, youtube, mp3, video, page)/ REFERENCE /
type=$(echo "$TyPE" | awk '{ print tolower($0) }') type=$(echo "$TyPE" | awk '{ print tolower($0) }')
PREFIX=$(echo "$TyPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y (all the alaphabet can address a data type PREFIX=$(echo "$TyPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y (all the alaphabet can address a data type
# File is placed in ROOT ~/astroport ? # File cannot be without "TyPE" in ~/astroport
if [[ $PREFIX == "" ]] if [[ $PREFIX == "" ]]
then then
[[ ! $3 ]] && [[ "$USER" != "xbian" ]] && zenity --warning --width 300 --text "Désolé votre fichier ne peut pas être traité" [[ ! $3 ]] && [[ "$USER" != "xbian" ]] && zenity --warning --width 300 --text "Désolé votre fichier ne peut pas être traité"
@ -93,7 +94,7 @@ then
fi fi
######################################################################## ########################################################################
# EXTRACT INDEX REFERENCE : TMDB or YOUTUBE (can be extended with new ) # EXTRACT INDEX REFERENCE : TMDB or YOUTUBE (TODO : EXTEND)
######################################################################## ########################################################################
case ${type} in case ${type} in
video) video)
@ -126,7 +127,7 @@ case ${type} in
REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Path contains TMDB id REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Path contains TMDB id
if ! [[ "$REFERENCE" =~ ^[0-9]+$ ]] # ${REFERENCE} NOT A NUMBER if ! [[ "$REFERENCE" =~ ^[0-9]+$ ]] # ${REFERENCE} NOT A NUMBER
then then
er="$er | ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ or use your 06 phone number" er="$er | ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ or use your a mobile phone number ;)"
echo "$er" echo "$er"
exit 1 exit 1
fi fi
@ -139,16 +140,18 @@ case ${type} in
;; ;;
esac esac
### SET MEDIAKEY
MEDIAKEY="${INDEXPREFIX}${REFERENCE}" MEDIAKEY="${INDEXPREFIX}${REFERENCE}"
echo ">>>>>>>>>> $MEDIAKEY ($MIME) <<<<<<<<<<<<<<<" echo ">>>>>>>>>> $MEDIAKEY ($MIME) <<<<<<<<<<<<<<<"
## RUBISH ??
######################################################################## ########################################################################
mkdir -p ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ mkdir -p ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/
echo "ADDING ${path}${file} to IPFS " echo "ADDING ${path}${file} to IPFS "
echo "~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN" echo "~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN"
echo "-----------------------------------------------------------------" echo "-----------------------------------------------------------------"
echo "FOUND : ${path}${file}" ### FILE SIZING ####
FILE_BSIZE=$(du -b "${path}${file}" | awk '{print $1}') FILE_BSIZE=$(du -b "${path}${file}" | awk '{print $1}')
FILE_SIZE=$(echo "${FILE_BSIZE}" | awk '{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }') FILE_SIZE=$(echo "${FILE_BSIZE}" | awk '{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }')
@ -171,22 +174,14 @@ echo IPFS ADD time was $ipfsdur seconds.
########################################################### ###########################################################
############################################ ############################################
################################ ################################
APPNAME="KEY"
echo "-----------------------------------------------------------------" echo "-----------------------------------------------------------------"
echo "IPFS $file DIRECTORY: ipfs ls /ipfs/$IPFSREPFILEID" echo "IPFS $file DIRECTORY: ipfs ls /ipfs/$IPFSREPFILEID"
echo "-----------------------------------------------------------------" echo "APP $APPNAME OUTPUT -----------------------------------------------------------------"
echo "New $TyPE INDEX ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN " echo "$HOME/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/${APPNAME}/${MIME}/${MEDIAKEY}/${G1PUB}/ "
URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri) URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri)
#~ ########################################################################
## TODO : URL SWALLOW (MEDIAKEY=REVERSEURL moc/...)
# ipfs add MEDIA + inode_json
## ARCHIVE = Look & Listen = ScreenShot + Gif + Mazsah
#~ ########################################################################
#~ ########################################################################
#~ ### MEDIAKEY FORGE #~ ### MEDIAKEY FORGE
#~ ######################################################################## #~ ########################################################################
#~ ## CREATE NEW ipns KEY : ${MEDIAKEY} #~ ## CREATE NEW ipns KEY : ${MEDIAKEY}
@ -436,7 +431,7 @@ then
FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${path}${file}" | cut -d "x" -f 2) FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${path}${file}" | cut -d "x" -f 2)
RES=${FILE_RES%?}0p RES=${FILE_RES%?}0p
# ADD NEW LINE TO INDEX # REFRESH ajouter_video.txt FILE
if [[ -f ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt ]] if [[ -f ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt ]]
then then
line=$(cat ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g" | sed "s/_IPNSKEY_/$IPNS/g" ) line=$(cat ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g" | sed "s/_IPNSKEY_/$IPNS/g" )
@ -445,7 +440,6 @@ then
fi fi
echo "-------------------- UPDATE ${PREFIX}ASTRXBIAN INDEX -----------------------------" echo "-------------------- UPDATE ${PREFIX}ASTRXBIAN INDEX -----------------------------"
echo "$line" echo "$line"
# echo "$line" >> ~/.zen/game/players/$PLAYER/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
echo "UPDATE ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt" echo "UPDATE ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt"
echo "$line" > ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt echo "$line" > ~/astroport/${TyPE}/${REFERENCE}/ajouter_video.txt
@ -457,7 +451,7 @@ then
echo "----------------- PREPARING TIDDLER ----------------------" echo "----------------- PREPARING TIDDLER ----------------------"
CAT=$(echo "$CAT" | sed -r 's/\<./\U&/g' | sed 's/ //g') # CapitalGluedWords CAT=$(echo "$type" | sed -r 's/\<./\U&/g' | sed 's/ //g') # CapitalGluedWords
## Adapt TMDB url ## Adapt TMDB url
[[ $CAT == "Film" ]] && tdb="movie" [[ $CAT == "Film" ]] && tdb="movie"
[[ $CAT == "Serie" ]] && tdb="tv" [[ $CAT == "Serie" ]] && tdb="tv"