From 662131198364c788693a910d842a8c5c98d9041e Mon Sep 17 00:00:00 2001 From: fred Date: Fri, 2 Dec 2022 17:45:45 +0100 Subject: [PATCH] Multimedia IPFS TW --- ajouter_media.sh | 109 +++++++++++++++++++++++++++++------------ ping_bootstrap.sh | 4 ++ tools/new_file_in_astroport.sh | 9 ---- 3 files changed, 83 insertions(+), 39 deletions(-) diff --git a/ajouter_media.sh b/ajouter_media.sh index 599e4421..e3984b09 100755 --- a/ajouter_media.sh +++ b/ajouter_media.sh @@ -134,7 +134,7 @@ espeak "Ready !" ######################################################################## # CHOOSE CATEGORY (remove anime, not working!) -[[ $CHOICE == "" ]] && CHOICE=$(zenity --entry --width 300 --title="Catégorie" --text="Choisissez la catégorie de votre media" --entry-text="Vlog" Film Serie Web Page Youtube Video) +[[ $CHOICE == "" ]] && CHOICE=$(zenity --entry --width 300 --title="Catégorie" --text="Choisissez la catégorie de votre media" --entry-text="Vlog" Film Serie Web Page Youtube Mp3 Video) [[ $CHOICE == "" ]] && exit 1 # LOWER CARACTERS @@ -312,8 +312,9 @@ rm -Rf ${YTEMP} espeak "Let's go. " ###################### HTTRACK COPYING - httrack -wxY --sockets=99 −−max−rate=0 --disable-security-limits −−keep−alive --ext-depth=0 --stay-on-same-domain --keep-links=0 -V "echo \$0 >> $FILE_PATH/files" "$URL" -* +*/$DOMAIN/* -*wget* -%l "fr" + httrack -wxY --sockets=99 −−max−rate=0 --disable-security-limits −−keep−alive --ext-depth=0 --stay-on-same-domain --keep-links=0 -V "echo \$0 >> $FILE_PATH/files" "$URL" -* +*/$DOMAIN/* -*wget* # -%l "fr" + mv $FILE_PATH/external.html $FILE_PATH/$DOMAIN/ ## G1PUB ENCODE.16 MEDIAKEY ${MY_PATH}/tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/tmp/$MEDIAKEY.ipns -o $HOME/.zen/tmp/$MEDIAKEY.ipns.enc cat $HOME/.zen/tmp/$MEDIAKEY.ipns.enc | base16 > $FILE_PATH/$DOMAIN/.ipnskey.$G1PUB.enc.16 @@ -327,7 +328,7 @@ rm -Rf ${YTEMP} ipfs name publish -k $MEDIAKEY /ipfs/$IPFSREPFILEID # PUBLISH $MEDIAKEY ## CREATE ajouter_video.txt - echo "web;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};$IPNSKEY;${RES};/ipfs/$IPFSREPFILEID" > ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt + echo "web;${MEDIAID};${MOATS};${TITLE};${SAISON};${GENRES};$IPNSKEY;${RES};/ipfs/$IPFSREPFILEID" > ~/Astroport/${CAT}/${MEDIAID}/ajouter_video.txt ## DURATION LOG end=`date +%s` @@ -340,14 +341,14 @@ rm -Rf ${YTEMP} 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] }') TEXT=" - <> + Web : $URL ----> <>
$FILE_SIZE" echo '[ { "created": "'${MOATS}'", "modified": "'${MOATS}'", - "title": "'$TITLE'", + "title": "'${NIAMOD}'", "type": "'text/vnd.tiddlywiki'", "text": "'$TEXT'", "size": "'${FILE_BSIZE}'", @@ -356,7 +357,7 @@ echo '[ "mediakey": "'${MEDIAKEY}'", "ipnskey16": "'$(cat $HOME/.zen/tmp/$MEDIAKEY.ipns.enc | base16)'", "ipns": "'/ipns/${IPNSKEY}'", - "tags": "'ipfs G1Web'" + "tags": "'ipfs G1Web $PLAYER $DOMAIN'" } ] ' > ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json @@ -445,16 +446,16 @@ echo '[ ######################################################################## mp3) - espeak "mp3 is music copying. Please help..." + espeak " Youtube music copying. Please help us to make the Web your Web" -zenity --warning --width 600 --text 'DEVELOPPER ZONE ONLY - https://git.p2p.legal' -exit 0 +zenity --warning --width 600 --text 'DEVELOPPEMENT ZONE - https://git.p2p.legal - P2P INTERNET FACTORY' # Create TEMP directory YTEMP="$HOME/.zen/tmp/$(date -u +%s%N | cut -b1-13)" mkdir -p ${YTEMP} -artist=$(zenity --entry --width 400 --title "Extraction MP3 depuis Youtube" --text "Artiste recherché ou Lien Youtube" --entry-text="") +YTURL="$URL" +[[ $YTURL == "" ]] && artist=$(zenity --entry --width 400 --title "Extraction MP3 depuis Youtube" --text "Artiste recherché ou Lien Youtube" --entry-text="") [[ $artist == "" ]] && exit 1 ## CHECK if artist is LINK or ID @@ -464,17 +465,23 @@ if [[ ! $islink && $length != 11 ]] then # Ask for song name song=$(zenity --entry --width 300 --title "Titre à chercher sur Youtube" --text "Titre recherché" --entry-text="") - [[ $song == "" ]] && exit 1 -else - song=$(zenity --entry --width 300 --title "Confirmer ID" --text "Titre recherché (ou confirmer la saisie précédente)" --entry-text="$artist") - [[ "$song" == "$artist" ]] && song="" -fi + [[ $song == "" ]] && espeak "I was expecting a song name. Sorry. I Am out." && exit 1 -# Download mp3 from 1st youtube search video result (--write-info-json) -/usr/local/bin/youtube-dl --default-search ytsearch1: \ + # Download mp3 from 1st youtube search video result (--write-info-json) + /usr/local/bin/youtube-dl --default-search ytsearch1: \ + --ignore-errors --no-mtime \ + --embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata \ + --extract-audio --audio-format mp3 -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" "$artist $song" + +else + +# artist is the URL ot the song +/usr/local/bin/youtube-dl \ --ignore-errors --no-mtime \ --embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata \ ---extract-audio --audio-format mp3 -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" "$artist $song" +--extract-audio --audio-format mp3 -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" "$artist" + +fi ls ${YTEMP} # Get filename, extract ID, make destination dir and move copy. @@ -486,8 +493,7 @@ YID=$(echo "${FILE_NAME}" | cut -d "&" -f 1) YNAME=$(echo "${FILE_NAME}" | cut -d "&" -f 2- | sed "s/[(][^)]*[)]//g" | sed -e 's/[^A-Za-z0-9._-]/_/g' | sed -e 's/__/_/g') # Remove YoutubeID_ and (what is in perentheses) [[ $(which detox) ]] && YNAME="$(echo "${FILE_NAME}" | cut -d "&" -f 2- | detox --inline)" -[[ ! $islink && "$song" != "" ]] && FILE_PATH="$HOME/Astroport/$CAT/$artist/_o-o_" \ -|| FILE_PATH="$HOME/Astroport/$CAT/${YID}" +FILE_PATH="$HOME/Astroport/$CAT/${YID}" mkdir -p "${FILE_PATH}" && mv -f ${YTEMP}/* "${FILE_PATH}/" # Remove "&" from FILE_NAME rename to YNAME @@ -501,12 +507,51 @@ MEDIAKEY="MP3_$MEDIAID" rm -Rf ${YTEMP} # zenity --warning --width ${large} --text "MP3 copié" -echo "${MY_PATH}/tools/new_mp3_in_astroport.sh \"${FILE_PATH}/\" \"${FILE_NAME}\"" -${MY_PATH}/tools/new_mp3_in_astroport.sh "${FILE_PATH}/" "${FILE_NAME}" > /tmp/${CHOICE}_${MEDIAID}.log 2>&1 +echo "new_mp3_in_astroport \"${FILE_PATH}/\" \"${FILE_NAME}\"" +# ${MY_PATH}/tools/new_mp3_in_astroport.sh "${FILE_PATH}/" "${FILE_NAME}" -cat /tmp/${CHOICE}_${MEDIAID}.log +## BLOCKCHAIN IT + start=`date +%s` -exit 0 + echo "$MOATS" > $FILE_PATH/.moats # TIMESTMAPING + + ### ADD TO IPFS + IPFSREPFILEID=$(ipfs add -q $FILE_PATH/$FILE_NAME | tail -n 1) # ADDIN TO IPFS + + ## CREATE ajouter_video.txt + echo "mp3;${MEDIAID};${MOATS};${TITLE};${SAISON};${GENRES};$GROUPES;${RES};/ipfs/$IPFSREPFILEID" > ${FILE_PATH}/ajouter_video.txt + + ## DURATION LOG + end=`date +%s` + dur=`expr $end - $start` + echo ${MOATS}:${G1PUB}:${PLAYER}:${MEDIAID}:$dur >> ~/.zen/tmp/${IPFSNODEID}/_timings + cat ~/.zen/tmp/${IPFSNODEID}/_timings | tail -n 1 + ## TIDDLER CREATION + FILE_BSIZE=$(du -b "$FILE_PATH/$FILE_NAME" | awk '{print $1}' | tail -n 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] }') + + TEXT="" + +mkdir -p ~/Astroport/${CAT}/${MEDIAID}/ + +echo '[ + { + "created": "'${MOATS}'", + "modified": "'${MOATS}'", + "_canonical_uri": "'${MOATS}'", + "title": "'$TITLE'", + "artist": "'$artist'", + "song": "'$song'", + "type": "'audio/mpeg'", + "text": "'$TEXT'", + "size": "'${FILE_BSIZE}'", + "g1pub": "'${G1PUB}'", + "ipfs": "'/ipfs/${IPFSREPFILEID}'", + "mediakey": "'${MEDIAKEY}'", + "tags": "'$:/isAttachment $:/isIpfs ipfs mp3 G1Mp3 $artist $song $PLAYER'" + } +] +' > ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json ;; @@ -629,10 +674,11 @@ FILM_GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut}\ # FORMAT GENRES ["genre1","genre2"] # USE IF YOU ACTIVATE KODI COMPATIBILITY GENRES="[\"$(echo ${FILM_GENRES} | sed s/\|/\",\"/g)\"]" -mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" +[[ ! -s "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" ]] \ +&& cp "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" if [ $? != 0 ]; then - zenity --warning --width ${large} --text "Impossible de déplacer votre fichier ${FILE_PATH}/${FILE_NAME} vers ~/astroport - EXIT -" + zenity --warning --width ${large} --text "(☓‿‿☓) ${FILE_PATH}/${FILE_NAME} vers ~/Astroport - EXIT -" exit 1 fi @@ -681,7 +727,9 @@ echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/i ## CREATE SIMPLE JSON (REMOVE== it ? jq -n --arg ts "$MEDIAID" --arg title "$TITLE" --arg desc "$DESCRIPTION" --arg htag "$HASHTAG" '{"timestamp":$ts,"ipfs":"_IPFSREPFILEID_","ipns":"_IPNSKEY_","title":$title,"desc":$desc,"tag":$htag}' > ~/Astroport/${CAT}/${MEDIAID}/video.json ## MOVE FILE TO IMPORT ZONE - mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" + [[ ! -s "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" ]] \ + && cp "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" + # mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/Astroport/${CAT}/${MEDIAID}/${TITLE}${SAISON}.${FILE_EXT}" FILE_NAME="${TITLE}.${FILE_EXT}" ;; @@ -765,7 +813,7 @@ if [[ ! -s ~/Astroport/${CAT}/${MEDIAID}/${MEDIAKEY}.dragdrop.json ]]; then ######################################################################## - zenity --warning --width 360 --text "(♥‿‿♥) $MEDIAKEY IPFS MIAM (ᵔ◡◡ᵔ)" +# zenity --warning --width 360 --text "(♥‿‿♥) $MEDIAKEY IPFS MIAM (ᵔ◡◡ᵔ)" espeak "Adding $CAT to I P F S. Please Wait" @@ -781,11 +829,12 @@ espeak "Updating T W" echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" ## GETTING LAST TW via IPFS or HTTP GW LIBRA=$(head -n 2 ${MY_PATH}/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) -rm ~/.zen/tmp/ajouter_media.html > /dev/null 2>&1 -[[ $YOU ]] && echo " ipfs --timeout 12s cat /ipns/${ASTRONAUTENS} ($YOU)" && ipfs --timeout 12s cat /ipns/${ASTRONAUTENS} > ~/.zen/tmp/ajouter_media.html +rm -f ~/.zen/tmp/ajouter_media.html > /dev/null 2>&1 +[[ $YOU ]] && echo " ipfs --timeout 30s cat /ipns/${ASTRONAUTENS} ($YOU)" && ipfs --timeout 30s cat /ipns/${ASTRONAUTENS} > ~/.zen/tmp/ajouter_media.html [[ ! -s ~/.zen/tmp/ajouter_media.html ]] && echo "curl -m 12 $LIBRA/ipns/${ASTRONAUTENS}" && curl -m 12 -so ~/.zen/tmp/ajouter_media.html "$LIBRA/ipns/${ASTRONAUTENS}" [[ ! -s ~/.zen/tmp/ajouter_media.html ]] && espeak "WARNING. WARNING. impossible to find your TW online" [[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ]] && espeak "FATAL ERROR. No player TW copy found ! EXIT" && exit 1 +## TODO : CHECK CACHE LAST MODIFIED echo "%%%%%%%%%%%%%% I GOT YOUR TW %%%%%%%%%%%%%%%%%%%%%%%%%%" [[ -s ~/.zen/tmp/ajouter_media.html ]] && cp -f ~/.zen/tmp/ajouter_media.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html && espeak "TW Found" diff --git a/ping_bootstrap.sh b/ping_bootstrap.sh index d4085126..68cf4072 100755 --- a/ping_bootstrap.sh +++ b/ping_bootstrap.sh @@ -18,3 +18,7 @@ for friendnode in $(cat ~/.zen/game/players/*/FRIENDS/*/.astronautens | uniq); || echo "UNCONNECTED $friendnode" ipfs swarm peers | grep $friendnode done + +ipfs stats dht wan + +echo "TODO : search for bootstrap and friends better connectivity" diff --git a/tools/new_file_in_astroport.sh b/tools/new_file_in_astroport.sh index e121538d..4d77903b 100755 --- a/tools/new_file_in_astroport.sh +++ b/tools/new_file_in_astroport.sh @@ -129,15 +129,6 @@ case ${type} in REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) TITLE="${file%.*}" ;; - mp3) - ## DIFFERENT TREATMENT - INDEXPREFIX="MP3_" - REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) - TITLE=$(echo "$file" | cut -d "&" -f 2-) - er="$er | Please use new_mp3_in_astroport.sh ... EXIT" - echo "$er" - exit 1 - ;; film | serie) INDEXPREFIX="TMDB_" REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) # Path contains TMDB id