diff --git a/tools/CHANNELS.populate.sh b/tools/CHANNELS.populate.sh
index 4342cdd6..48bf77ff 100755
--- a/tools/CHANNELS.populate.sh
+++ b/tools/CHANNELS.populate.sh
@@ -26,6 +26,7 @@ source ~/.zen/ipfs.sync; echo "CAPTAIN is $CAPTAIN"
[[ $PLAYER != $CAPTAIN ]] && echo "CAPTAIN RUN ONLY. EXIT" && exit 1
MOANS=$(ipfs key list -l | grep -w moa | cut -d ' ' -f 1) ## GET CAPTAIN PLAYER NS PUBKEY
+[[ $MOANS == "" ]] && echo "NO MOA KEY EXIT" && exit 1
CAPTAINNS=$(ipfs key list -l | grep -w $CAPTAIN | cut -d ' ' -f 1) ## GET CAPTAIN PLAYER NS PUBKEY
CAPTAINMOANS=$(ipfs key list -l | grep -w moa_$CAPTAIN | cut -d ' ' -f 1)
@@ -48,28 +49,40 @@ CAPTAINQOOPNS=$(ipfs key list -l | grep -w qo-op_$CAPTAIN | cut -d ' ' -f 1)
ipfs name publish --key=${CAPTAIN} /ipfs/$IPUSH 2>/dev/null
echo "http://127.0.0.1:8080/ipns/$CAPTAINNS/slick.html"
+echo
-
+# CHECK tokenring
+# Indicate who is next.
+# If it is my turn...
# UPDATE TW UPDATE CHAIN
-for player in $(ls ~/.zen/game/players/); do
-
- moans=$(cat ~/.zen/game/players/$player/.moans)
+for astronaut in $(ls ~/.zen/game/players/); do
+ [[ $astronaut == $CAPTAIN ]] && continue
+ moans=$(cat ~/.zen/game/players/$astronaut/.moans)
# CHECK DIFFERENCES FROM LATEST TIME CHECK
## GETTING LAST 'player_moa' ONLINE VERSION
- echo "Getting $player/.moans /ipns/$moans"
- ipfs --timeout=10s get -o ~/.zen/game/players/$player/moa/ /ipns/$moans || continue
- IPUSH=$(ipfs add -Hq ~/.zen/game/players/$player/moa/index.html | tail -n 1)
+ echo "Getting $astronaut/.moans /ipns/$moans"
+ cp ~/.zen/game/players/$astronaut/moa/index.html ~/.zen/tmp/index.html
+ ipfs --timeout=10s get -o ~/.zen/game/players/$astronaut/moa/ /ipns/$moans
+ IPUSH=$(ipfs add -Hq ~/.zen/game/players/$astronaut/moa/index.html | tail -n 1)
- # Avance la blockchain CAPTAIN pour archiver les '$player.moa.chain' des Etats modifiés
- [[ $(cat ~/.zen/game/players/$CAPTAIN/moa/$player.moa.chain 2>/dev/null) != "$IPUSH" ]] &&\
- echo $IPUSH > ~/.zen/game/players/$CAPTAIN/moa/$player.moa.chain && \
- echo $MOATS > ~/.zen/game/players/$CAPTAIN/moa/$player.moa.ts && \
- echo "$player 'moa' UPDATE : $MOATS $IPUSH" && \
- echo "
$player
" >> ~/.zen/game/players/$CAPTAIN/moa/slick.div
-# echo "" >> ~/.zen/game/players/$CAPTAIN/moa/slick.div && \
+ if [[ $IPUSH != "Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ" ]]; then
+ # Qmc5m94Gu7z62RC8waSKkZUrCCBJPyHbkpmGzEePxy2oXJ = VIDE !!
+ echo $IPUSH > ~/.zen/game/players/$astronaut/moa/$astronaut.moa.chain
+ echo $MOATS > ~/.zen/game/players/$astronaut/moa/$astronaut.moa.ts
+ num=$(cat ~/.zen/game/players/$astronaut/moa/$astronaut.moa.n 2>/dev/null) || num=0
+ echo $(expr $num + 1) > ~/.zen/game/players/$astronaut/moa/$astronaut.moa.n
+ ipfs name publish --key=moa_${astronaut} /ipfs/$IPUSH 2>/dev/null
+ # Avance la blockchain CAPTAIN pour archiver les '$astronaut.moa.chain' des Etats modifiés
+ [[ $(cat ~/.zen/game/players/$CAPTAIN/moa/$astronaut.moa.chain 2>/dev/null) != "$IPUSH" ]] &&\
+ echo $IPUSH > ~/.zen/game/players/$CAPTAIN/moa/$astronaut.moa.chain && \
+ echo $MOATS > ~/.zen/game/players/$CAPTAIN/moa/$astronaut.moa.ts && \
+ echo "$astronaut 'moa' UPDATE : $MOATS $IPUSH" && \
+ diff ~/.zen/tmp/index.html ~/.zen/game/players/$astronaut/moa/index.html | sed -n -e 's/^> //p'
+# echo "" >> ~/.zen/game/players/$CAPTAIN/moa/slick.div
+
+ fi
done
-
exit 0
diff --git a/tools/FRIENDS.manage.sh b/tools/FRIENDS.manage.sh
index c9faf2c4..e977d39a 100755
--- a/tools/FRIENDS.manage.sh
+++ b/tools/FRIENDS.manage.sh
@@ -51,3 +51,4 @@ for player in $(ls ~/.zen/game/players/); do
done
+# TODO USE WEB INTERFACE
diff --git a/tools/PLAYER.entrance.sh b/tools/PLAYER.entrance.sh
index 6754562b..19cd32ce 100755
--- a/tools/PLAYER.entrance.sh
+++ b/tools/PLAYER.entrance.sh
@@ -105,17 +105,34 @@ echo "==== qo-op & moa Captain/Station keystore ===="; sleep 2
###################################################################################
echo
echo "===== Connect captain IPFS datadir to Station (balise junction) ====="; sleep 2
+ ## TODO MAKE FUNCTIONS
+ echo
+ echo "=== Switching ~/.ipfs/config ==="; sleep 2
- [[ ! -d ~/.zen/ipfs.astrXbian ]] && mv ~/.zen/ipfs ~/.zen/ipfs.astrXbian && echo "BACKUP ~/.zen/ipfs.astrXbian" || rm ~/.zen/ipfs; sleep 2
- mv ~/.zen/ipfs ~/.zen/ipfs.astrXbian && echo "BACKUP current ~/.zen/ipfs"; sleep 2
+ [[ ! -f ~/.ipfs/config.astrXbian ]] && mv ~/.ipfs/config ~/.ipfs/config.astrXbian && echo "BACKUP OLD ipfs config" || rm ~/.ipfs/config
+ ln -s ~/.zen/game/players/$PLAYER/ipfs.config ~/.ipfs/config && echo "Installing $PLAYER 'G1' ipfs config"; sleep 2
+ IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID); echo $IPFSNODEID
- # Linking ~/.zen/ipfs
- # ~/.zen/secret.dunikey
- [[ ! -f ~/.zen/secret.dunikey.astrXbian ]] && mv ~/.zen/secret.dunikey ~/.zen/secret.dunikey.astrXbian && echo "BACKUP ~/.zen/secret.dunikey.astrXbian" || rm ~/.zen/secret.dunikey; sleep 2
+ echo
+ echo "==== Astronaute keystore switch ===="; sleep 2
- echo "CAPITAINE VOUS PRENEZ POSSESSION DE LA STATION ET SES CANAUX 'qo-op', 'moa', etc ..."
- ln -s ~/.zen/game/players/$PLAYER/ipfs ~/.zen/ipfs && echo "$PLAYER become IPFS 'self'" && sleep 1
- ln -s ~/.zen/game/players/$PLAYER/secret.dunikey ~/.zen/secret.dunikey && echo "Linking your ~/.zen/secret.dunikey to Station" && sleep 1
+ [[ ! -d ~/.ipfs/keystore.astrXbian ]] && mv ~/.ipfs/keystore ~/.ipfs/keystore.astrXbian || rm ~/.ipfs/keystore
+ ln -s ~/.zen/game/players/$PLAYER/keystore ~/.ipfs/keystore
+
+
+ echo "==== linking G1 Libre ID and Station ~/.zen/ipfs ===="; sleep 2
+
+ [[ ! -f ~/.zen/secret.dunikey.astrXbian ]] && mv ~/.zen/secret.dunikey ~/.zen/secret.dunikey.astrXbian || rm ~/.zen/secret.dunikey
+ ln -s ~/.zen/game/players/$PLAYER/secret.dunikey ~/.zen/secret.dunikey
+
+ [[ ! -f ~/.zen/secret.june.astrXbian ]] && mv ~/.zen/secret.june ~/.zen/secret.june.astrXbian || rm ~/.zen/secret.june
+ ln -s ~/.zen/game/players/$PLAYER/secret.june ~/.zen/secret.june
+
+ [[ ! -d ~/.zen/ipfs.astrXbian ]] && mv ~/.zen/ipfs ~/.zen/ipfs.astrXbian && echo "BACKUP ~/.zen/ipfs.astrXbian" || rm ~/.zen/ipfs
+ ln -s ~/.zen/game/players/$PLAYER/ipfs ~/.zen/ipfs && echo "$PLAYER ~/.zen/ipfs "
+
+
+ echo "VOUS ETES CAPITAINE DE LA STATION ET SES CANAUX 'qo-op', 'moa', etc ..."
echo "##################################################### OK"
echo "Identité 'self' Balise IPFS"; sleep 1
@@ -146,18 +163,13 @@ echo "==== linking G1 Libre ID and Station ~/.zen/ipfs ===="; sleep 2
[[ ! -f ~/.zen/secret.dunikey.astrXbian ]] && mv ~/.zen/secret.dunikey ~/.zen/secret.dunikey.astrXbian || rm ~/.zen/secret.dunikey
ln -s ~/.zen/game/players/$PLAYER/secret.dunikey ~/.zen/secret.dunikey
+ [[ ! -f ~/.zen/secret.june.astrXbian ]] && mv ~/.zen/secret.june ~/.zen/secret.june.astrXbian || rm ~/.zen/secret.june
+ ln -s ~/.zen/game/players/$PLAYER/secret.june ~/.zen/secret.june
+
[[ ! -d ~/.zen/ipfs.astrXbian ]] && mv ~/.zen/ipfs ~/.zen/ipfs.astrXbian && echo "BACKUP ~/.zen/ipfs.astrXbian" || rm ~/.zen/ipfs
ln -s ~/.zen/game/players/$PLAYER/ipfs ~/.zen/ipfs && echo "$PLAYER ~/.zen/ipfs "
- echo
- echo "** Restart IPFS DAEMON **"
- sudo service ipfs start
- YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
- [[ ! $YOU ]] && ipfs daemon --writable &
- #-----------------------------------
- echo "#-----------------------------------"
-
if [[ $CAPTAIN == "$PLAYER" ]]; then
## THE CAPTAIN IS LOGGED IN
echo "Bienvenue CAPITAINE !"; sleep 2
@@ -181,8 +193,8 @@ echo "==== linking G1 Libre ID and Station ~/.zen/ipfs ===="; sleep 2
fi
-echo
-echo "** Restart IPFS DAEMON **"
+ echo
+ echo "** Restart IPFS DAEMON **"
sudo service ipfs start
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
[[ ! $YOU ]] && ipfs daemon --writable &
diff --git a/tools/ajouter_media.sh b/tools/ajouter_media.sh
deleted file mode 100755
index 2edf708c..00000000
--- a/tools/ajouter_media.sh
+++ /dev/null
@@ -1,615 +0,0 @@
-#!/bin/bash
-########################################################################
-# Author: Fred (support@qo-op.com)
-# Version: 0.2
-# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
-########################################################################
-# SCRIPT INTERACTIF POUR AJOUTER UN FICHIER à ASTROPORT/KODI
-#
-# 1. CAT: film, serie
-# 2. TMDB: ID de la fiche sur https://www.themoviedb.org/
-# 3. TITLE: Titre de la vidéo
-# 4. YEAR: Année de la vidéo
-# 5. RES: Résolution 1080p, 4K, SD, 720, HD
-# 6. SAISON: Pour les séries, c'est le numéro de saison.
-# Pour un film, le champ SAISON est utilisé pour renseigner la Saga
-# 7. GENRES: Action, Aventure, Fantastique, Animation, etc (choix multiple).
-# 8. GROUPES: Stocker la clef IPNS du MEDIAKEY.
-#
-# https://github.com/Kodi-vStream/venom-xbmc-addons/wiki/Voir-et-partager-sa-biblioth%C3%A8que-priv%C3%A9e#d%C3%A9clarer-des-films
-########################################################################
-MY_PATH="`dirname \"$0\"`" # relative
-MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
-ME="${0##*/}"
-
-G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
-########################################################################
-[[ $(which ipfs) == "" ]] && echo "ERREUR! Installez ipfs" && echo "wget https://git.p2p.legal/axiom-team/astrXbian/raw/master/.install/ipfs_alone.sh -O /tmp/ipfs_install.sh && chmod +x /tmp/ipfs_install.sh && /tmp/ipfs_install.sh" && exit 1
-[[ $(which zenity) == "" ]] && echo "ERREUR! Installez zenity" && echo "sudo apt install zenity" && exit 1
-[[ $(which ffmpeg) == "" ]] && echo "ERREUR! Installez ffmpeg" && echo "sudo apt install ffmpeg" && exit 1
-[[ $(which xdpyinfo) == "" ]] && echo "ERREUR! Installez x11-utils" && echo "sudo apt install x11-utils" && exit 1
-
-URL="$1"
-if [ $URL ]; then
- echo "URL: $URL"
- REVSOURCE="$(echo "$URL" | awk -F/ '{print $3}' | rev)_"
- [ ! $2 ] && IMPORT=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Que copier depuis cette source ?" --entry-text="Video" MP3 Web) || IMPORT="Youtube"
- [[ $IMPORT == "Video" ]] && IMPORT="Youtube"
- CHOICE="$IMPORT"
-fi
-
-[[ $CHOICE == "Web" ]] && CHOICE=$(zenity --entry --width 640 --title="$URL => Astroport" --text="Cette source Web est à enregistrer comme " --entry-text="Page" WebSite)
-
-# REMOVE GtkDialog errors for zenity
-shopt -s expand_aliases
-alias zenity='zenity 2> >(grep -v GtkDialog >&2)'
-
-# GET SCREEN DIMENSIONS
-screen=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')
-width=$(echo $screen | cut -d 'x' -f 1)
-height=$(echo $screen | cut -d 'x' -f 2)
-large=$((width-300))
-haut=$((height-200))
-
-########################################################################
-IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
-XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid 2>/dev/null) || XZUID="noplayer"
-
-########################################################################
-## CADRE EXCEPTION COPIE PRIVE
-# https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006278917/2008-12-11/
-if [[ ! -f ~/.zen/legal ]]; then
-zenity --width ${large} --height=${haut} --text-info \
- --title="Action conforme avec le Code de la propriété intellectuelle" \
- --html \
- --url="https://fr.wikipedia.org/wiki/Droit_d%27auteur_en_France#Les_exceptions_au_droit_d%E2%80%99auteur" \
- --checkbox="J'ai lu et j'accepte les termes."
-
-case $? in
- 0)
- echo "AUTORISATION COPIE PRIVE ASTROPORT OK !"
- echo "$G1PUB" > ~/.zen/legal
- # next step
- ;;
- 1)
- echo "Refus conditions"
- rm -f ~/.zen/legal
- exit 1
- ;;
- -1)
- echo "Erreur."
- exit 1
- ;;
-esac
-fi
-
-## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING
-YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
-[[ ! $YOU ]] && RUN=$(zenity --entry --width 300 --title="Astroport IPFS OFF" --text="Activer Astroport ?" --entry-text="OUI" NON) && [[ $RUN == "" || $RUN == "NON" ]] && exit 1
-[[ $YOU && ! $1 ]] && RUN=$(zenity --entry --width 300 --title="Astroport IPFS ON" --text="Désactiver Astroport ? Non, vous voulez ajouter un Media?" --entry-text="OUI" NON)
-## DES/ACTIVATION ASTROPORT
-if [[ $RUN == "OUI" ]]; then
- STRAP=$(ipfs bootstrap)
- BOOT=$(zenity --entry --width 300 --title="Catégorie" --text="$STRAP Changez de Bootstrap" --entry-text="Aucun" astrXbian Public)
- [[ $BOOT == "Aucun" ]] && ipfs bootstrap rm --all
- ## TODO REWRITE, Now init_friends.sh populated swarm bootstrapping
- [[ $BOOT == "astrXbian" ]] && for bootnode in $(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
- [[ $BOOT == "Public" ]] && for bootnode in $(cat ~/.zen/astrXbian/A_boostrap_public.txt | grep -Ev "#"); do ipfs bootstrap add $bootnode; done
- REP=$(~/.zen/astrXbian/zen/cron_VRFY.sh) && zenity --warning --width 600 --text "$REP"
-fi
-YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1)
-[[ $YOU == "" ]] && echo "IPFS not running" && exit 1
-
-########################################################################
-# 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="Film" Serie Youtube Video)
-[[ $CHOICE == "" ]] && exit 1
-
-# LOWER CARACTERS
-CAT=$(echo "${CHOICE}" | awk '{print tolower($0)}')
-# UPPER CARACTERS
-CHOICE=$(echo "${CAT}" | awk '{print toupper($0)}')
-
-PREFIX=$(echo "${CAT}" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, S, A, Y, M ... P W
-[[ $PREFIX == "" ]] && exit 1
-
-########################################################################
-########################################################################
-case ${CAT} in
-########################################################################
-# CASE ## YOUTUBE
-# _ _
-# _ _ ___ _ _| |_ _ _| |__ ___
-#| | | |/ _ \| | | | __| | | | '_ \ / _ \
-#| |_| | (_) | |_| | |_| |_| | |_) | __/
-# \__, |\___/ \__,_|\__|\__,_|_.__/ \___|
-# |___/
-########################################################################
- youtube)
-
-YTURL="$URL"
-[[ $YTURL == "" ]] && YTURL=$(zenity --entry --width 300 --title "Lien ou identifiant à copier" --text "Indiquez le lien (URL) ou l'ID de la vidéo" --entry-text="")
-[[ $YTURL == "" ]] && exit 1
-
-REVSOURCE="$(echo "$YTURL" | awk -F/ '{print $3}' | rev)_"
-
-# Create TEMP directory to copy $YID_$TITLE.$FILE_EXT
-YTEMP="$HOME/astroport/tmp/$(date -u +%s%N | cut -b1-13)"
-mkdir -p ${YTEMP}
-
-# youtube-dl $YTURL
-echo "VIDEO $YTURL"
-if [[ ! -f /usr/local/bin/youtube-dl ]]; then
- sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
- sudo chmod a+rx /usr/local/bin/youtube-dl
-fi
-/usr/local/bin/youtube-dl -f '[height=360]/best' \
---no-playlist --write-info-json \
---no-mtime -o "${YTEMP}/%(id)s&%(title)s.%(ext)s" $YTURL
-
-# Get filename, extract ID, make destination dir and move copy.
-YFILE=$(ls -S ${YTEMP} | head -n 1)
-FILE_NAME="$(basename "${YFILE}")"
-FILE_EXT="${FILE_NAME##*.}"
-
-JSON_FILE=$(echo ${FILE_NAME} | sed "s/${FILE_EXT}/json/g")
-
-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)
-MEDIAID="$REVSOURCE${YID}"
-TITLE="${YNAME%.*}"
-MEDIAKEY="YOUTUBE_${MEDIAID}"
-## CORRECT PARAMETERS to Make Kodi compatible YASTRXBIAN FILE
-
-[ ! $2 ] && GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut} \
- --text="Choisissez le(s) genre(s) d'information(s) contenue(s) dans cette vidéo \"${TITLE}\" publiée sur OASIS" \
- --column="Use" \
- --column="Feature" \
- FALSE Savoir \
- FALSE Nature \
- FALSE Habiter \
- FALSE Nourrir \
- FALSE Deplacer \
- FALSE Guerir \
- FALSE Divertir \
- FALSE Musique \
- FALSE DIY \
- FALSE Science \
- FALSE Humain \
- FALSE Animal \
- TRUE Eveil \
- TRUE ${XZUID// /-}) || GENRES="${XZUID// /-}"
-
-# FORMAT GENRES genre1|genre2|genre3
-
-FILE_PATH="$HOME/astroport/youtube/$MEDIAID"
-mkdir -p ${FILE_PATH} && mv -f ${YTEMP}/* ${FILE_PATH}/
-# rename FILE_NAME to YNAME (URL clean)
-mv "${FILE_PATH}/${FILE_NAME}" "${FILE_PATH}/${YNAME}" && FILE_NAME="${YNAME}"
-# get & rename video.json
-jsonfile=$(ls ${FILE_PATH}/*.json)
-mv "${jsonfile}" "${FILE_PATH}/video.json"
-
-FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${FILE_PATH}/${FILE_NAME}" | cut -d "x" -f 2)
-RES=${FILE_RES%?}0p
-
-## CREATE "~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt" and video.json
-URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
-echo "youtube;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
-
-# _IPFSREPFILEID_ is replaced later
-
-rm -Rf ${YTEMP}
-
- ;;
-
-########################################################################
-# CASE ## WEB
- web)
-
- ## wget current URL -> index.html ## TEST ## TEST httrack ??
- [[ ! $(which httrack) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de site web absent.. Lancez la commande 'sudo apt install httrack'" && exit 1
- echo "httrack --mirror $URL"
- FILE_NAME="index.html"
- REVSOURCE="$(echo "$URL" | rev | sha256sum | cut -d ' ' -f 1)_"; echo $REVSOURCE # URL="https://discuss.ipfs.io/t/limit-ipfs-get-command/3573/6"
- MEDIAID="$REVSOURCE" # MEDIAID=1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
- MEDIAKEY="WWW_${MEDIAID}" # MEDIAKEY=PAGE_1252ff59950395070a0cc56bb058cbb1ccfd2f8d8a32476acaf472f62b14d97d_
- FILE_PATH="$HOME/astroport/web/$MEDIAID";
- mkdir -p $FILE_PATH
-
- wget -mpck --user-agent="" -e robots=off --wait 1 "$URL" > ${FILE_PATH}/
-
- echo "web;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
-
- zenity --warning --width ${large} --text "Vérifiez que la copie de votre site se trouve bien dans ${FILE_PATH}/"
-
- ;;
-
-
-########################################################################
-# CASE ## PAGE
- page)
-
- ## record one page to PDF
- [[ ! $(which chromium) ]] && zenity --warning --width ${large} --text "Utilitaire de copie de page web absent.. Lancez la commande 'sudo apt install chromium'" && exit 1
- cd /tmp/ && rm -f output.pdf
- chromium --headless --no-sandbox --print-to-pdf $URL
-
- TITLE=$(zenity --entry --width 480 --title "Titre" --text "Quel nom de fichier à donner à cette page ? " --entry-text="${URL}")
- [[ $TITLE == "" ]] && exit 1
- FILE_NAME="$(echo "${TITLE}" | detox --inline).pdf" ## TODO make it better
-
- MEDIAID="$REVSOURCE$(echo "${TITLE}" | detox --inline)"
- MEDIAKEY="PAGE_${MEDIAID}"
- FILE_PATH="$HOME/astroport/page/$MEDIAID"
- mkdir -p ${FILE_PATH} && mv output.pdf ${FILE_PATH}/${FILE_NAME}
-
- echo "page;${MEDIAID};$(date -u +%s%N | cut -b1-13);${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
-
- ;;
-
-########################################################################
-# CASE ## MP3
-# _____
-# _ __ ___ _ __|___ /
-#| '_ ` _ \| '_ \ |_ \
-#| | | | | | |_) |__) |
-#|_| |_| |_| .__/____/
-# |_|
-########################################################################
- mp3)
-
-zenity --warning --width 600 --text 'DEV ZONE . Please Participate https://git.p2p.legal'
-
-# Create TEMP directory
-YTEMP="$HOME/astroport/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="")
-[[ $artist == "" ]] && exit 1
-
-## CHECK if artist is LINK or ID
-length=${#artist}
-islink=$(echo "$artist" | grep "http")
-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
-
-# 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"
-
-ls ${YTEMP}
-# Get filename, extract ID, make destination dir and move copy.
-YFILE=$(ls -t ${YTEMP} | head -n 1)
-FILE_NAME="$(basename "${YFILE}")"
-FILE_EXT="${FILE_NAME##*.}"
-
-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}"
-
-mkdir -p "${FILE_PATH}" && mv -f ${YTEMP}/* "${FILE_PATH}/"
-# Remove "&" from FILE_NAME rename to YNAME
-mv "${FILE_PATH}/${FILE_NAME}" "${FILE_PATH}/${YNAME}" && FILE_NAME="${YNAME}"
-
-MEDIAID="${YID}"
-TITLE="${YNAME%.*}"
-GENRES="[\"$XZUID\"]"
-GROUPES="_IPNSKEY_" # USE GROUPS TO RECORD IPNS MEDIAKEY
-MEDIAKEY="MP3_$MEDIAID"
-
-rm -Rf ${YTEMP}
-# zenity --warning --width ${large} --text "MP3 copié"
-echo "~/.zen/astrXbian/zen/new_mp3_in_astroport.sh \"${FILE_PATH}/\" \"${FILE_NAME}\""
-~/.zen/astrXbian/zen/new_mp3_in_astroport.sh "${FILE_PATH}/" "${FILE_NAME}" > /tmp/${CHOICE}_${MEDIAID}.log 2>&1
-
-cat /tmp/${CHOICE}_${MEDIAID}.log
-
-exit 0
-
- ;;
-
-########################################################################
-# __ _ _
-# / _(_) |_ __ ___
-#| |_| | | '_ ` _ \
-#| _| | | | | | | |
-#|_| |_|_|_| |_| |_| THE MOVIE DATABASE INDEX
-#
-########################################################################
- film | serie)
-
-# SELECT FILE TO ADD TO ASTROPORT/KODI
-FILE=$(zenity --file-selection --title="Sélectionner le fichier à ajouter")
-echo "${FILE}"
-[[ $FILE == "" ]] && exit 1
-
-# Remove file extension to get file name => STITLE
-FILE_PATH="$(dirname "${FILE}")"
-FILE_NAME="$(basename "${FILE}")"
-FILE_EXT="${FILE_NAME##*.}"
-FILE_TITLE="${FILE_NAME%.*}"
-
-# OPEN default browser and search TMDB
-zenity --question --width 300 --text "Ouvrir https://www.themoviedb.org pou récupérer le numéro d'identification de $(echo ${FILE_TITLE} | sed 's/_/%20/g') ?"
-[ $? == 0 ] && xdg-open "https://www.themoviedb.org/search?query=$(echo ${FILE_TITLE} | sed 's/_/%20/g')"
-
-MEDIAID=$(zenity --entry --title="Identification TMDB" --text="Copiez le nom de la page du film. Ex: 301528-toy-story-4 pour une adresse https://www.themoviedb.org/movie/301528-toy-story-4)" --entry-text="")
-[[ $MEDIAID == "" ]] && exit 1
-CMED=$(echo $MEDIAID | cut -d '-' -f 1)
-TMTL=$(echo $MEDIAID | cut -d '-' -f 2-) # contient la fin du nom de fichier tmdb (peut servir?)
-
-if ! [[ "$CMED" =~ ^[0-9]+$ ]]
-then
- zenity --warning --width ${large} --text "Vous devez renseigner un numéro! Merci de recommencer... Seules les vidéos référencées sur The Movie Database sont acceptées." && exit 1
-fi
-MEDIAID=$CMED
-MEDIAKEY="TMDB_$MEDIAID"
-
-# VIDEO TITLE
-TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez le titre de la vidéo" --entry-text="${FILE_TITLE}")
-[[ $TITLE == "" ]] && exit 1
-TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
-
-# VIDEO YEAR
-YEAR=$(zenity --entry --width 300 --title "Année" --text "Indiquez année de la vidéo. Exemple: 1985" --entry-text="")
-
-# VIDEO RESOLUTION
-FILE_RES=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "${FILE}" | cut -d "x" -f 2)
-RES=${FILE_RES%?}0p # Rounding. Replace last digit with 0
-#RES=$(zenity --entry --width 300 --title="Résolution" --text="Résolution de la vidéo" --entry-text="${FILE_RES}" SD HD 4K 360p 480p 720p 1080p)
-
-# VIDEO SEASON or SAGA
-[[ "${CAT}" == "serie" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saison" --text "Indiquez SAISON et EPISODE. Exemple: S02E05" --entry-text="")
-[[ "${CAT}" == "film" ]] && SAISON=$(zenity --entry --width 300 --title "${CHOICE} Saga" --text "Indiquez une SAGA (optionnel). Exemple: James Bond" --entry-text="")
-
-# VIDEO GENRES
-FILM_GENRES=$(zenity --list --checklist --title="GENRE" --height=${haut}\
- --text="Choisissez le(s) genre(s) de la vidéo \"${TITLE}\""\
- --column="Use"\
- --column="Feature"\
- FALSE '+18'\
- FALSE Action\
- FALSE Animation\
- FALSE 'Arts martiaux'\
- FALSE Aventure\
- FALSE Autre\
- FALSE Biographie\
- FALSE Biopic\
- FALSE Comedie\
- FALSE 'Comedie dramatique'\
- FALSE 'Comedie musicale'\
- FALSE Crime\
- FALSE Documentaire\
- FALSE Drame\
- FALSE Divers\
- FALSE Educatif\
- FALSE Enfant\
- FALSE 'Epouvante horreur'\
- FALSE Espionnage\
- FALSE Famille\
- FALSE Fantastique\
- FALSE Guerre\
- FALSE Histoire\
- FALSE Historique\
- FALSE Judiciaire\
- FALSE Opera\
- FALSE Medical\
- FALSE Musique\
- FALSE Mystere\
- FALSE Peplum\
- FALSE Policier\
- FALSE Romance\
- FALSE 'Science fiction'\
- FALSE Soap\
- FALSE Spectacle\
- FALSE Sport\
- FALSE Telefilm\
- FALSE Thriller\
- FALSE Western\
- TRUE ${XZUID// /-})
-
-# FORMAT GENRES ["genre1","genre2"]
-GENRES="[\"$(echo ${FILM_GENRES} | sed s/\|/\",\"/g)\"]"
-
-# DEBUG VERIFICATION
-# zenity --question --width ${large} --title "EMBARQUEMENT ASTROPORT! OK?"\
-# --text "${FILE_NAME} (${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES})"
-# [ $? == 1 ] && echo "ANNULATION." && exit 1
-
-########################################################################
-# Screen capture is used as thumbnail
-########################################################################
-zenity --warning --width 300 --text "Cliquez nous capturons votre écran comme vignette MEDIA"
-sleep 1
-[[ $(echo $DISPLAY | cut -d ':' -f 1) == "" ]] && import -window root /tmp/screen.png
-
-
-###################################
-### MOVING FILE TO ~/astroport ####
-###################################
-mkdir -p ~/astroport/${CAT}/${MEDIAID}/
-mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT}"
-mv /tmp/screen.png ~/astroport/${CAT}/${MEDIAID}/screen.png
-
-if [ $? == 0 ]; then
- zenity --warning --width ${large} --text "Votre fichier ~/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} est prêt à embarquer. Cliquez sur OK, nous allons préparer son script d'ajout à Astroport..."
-else
- zenity --warning --width ${large} --text "Impossible de déplacer votre fichier ${FILE_PATH}/${FILE_NAME} vers ~/astroport - EXIT -"
- exit 1
-fi
-FILE_NAME="${TITLE}.${FILE_EXT}"
-
-
-## CREATE "~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt"
-URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
-echo "${CAT};${MEDIAID};${YEAR};${TITLE};${SAISON};${GENRES};_IPNSKEY_;${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
-# _IPFSREPFILEID_ is replaced later
-
- ;;
-# _ _
-#__ _(_) __| | ___ ___
-#\ \ / / |/ _` |/ _ \/ _ \
-# \ V /| | (_| | __/ (_) |
-# \_/ |_|\__,_|\___|\___/
-# TIMESTAMP INDEX
-
- video)
-
- zenity --warning --width 600 --text 'DEVELOPPEMENT. SVP. Inscrivez-vous sur https://git.p2p.legal'
-
- ## GENERAL MEDIAKEY for uploaded video. Title + Decription + hashtag + hashipfs
- # SELECT FILE TO ADD TO ASTROPORT/KODI
- FILE=$(zenity --file-selection --title="Sélectionner le fichier vidéo à ajouter")
- echo "${FILE}"
- [[ $FILE == "" ]] && exit 1
-
- # Remove file extension to get file name => STITLE
- FILE_PATH="$(dirname "${FILE}")"
- FILE_NAME="$(basename "${FILE}")"
- FILE_EXT="${FILE_NAME##*.}"
- FILE_TITLE="${FILE_NAME%.*}"
- # VIDEO TITLE
- TITLE=$(zenity --entry --width 300 --title "Titre" --text "Indiquez le titre de la vidéo" --entry-text="${FILE_TITLE}")
- [[ $TITLE == "" ]] && exit 1
- TITLE=$(echo "${TITLE}" | sed "s/[(][^)]*[)]//g" | sed -e 's/;/_/g' ) # Clean TITLE (NO ;)
-
- OUTPUT=$(zenity --forms --width ${large} --title="METADATA" --text="Ajouter des métadonnées" --separator=";" --add-entry="Sous titres" --add-entry="Hashtag(s)")
- [[ $? != 0 ]] && echo "FAIL" && exit 1
-
- DESCRIPTION=$(awk -F ';' '{print $1}' <<<$OUTPUT)
- HASHTAG=$(awk -F ';' '{print $2}' <<<$OUTPUT)
-
- ## video_timestamp INDEX
- MEDIAID="$(date -u +%s%N | cut -b1-13)"
- mkdir -p ~/astroport/${CAT}/${MEDIAID}/
- MEDIAKEY="VIDEO_${MEDIAID}"
-
- ## CREATE SIMPLE JSON
- jq -n --arg ts "$MEDIAID" --arg title "$TITLE" --arg desc "$DESCRIPTION" --arg htag "$HASHTAG" '{"timestamp":$ts,"ipfs":"_IPFSREPFILEID_","ipns":"_IPNSKEY_","title":$title,"desc":$desc,"htag":$htag}' > ~/astroport/${CAT}/${MEDIAID}/video.json
- ## MOVE FILE TO IMPORT ZONE
- mv -f "${FILE_PATH}/${FILE_NAME}" "$HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT}"
- FILE_NAME="${TITLE}.${FILE_EXT}"
-
- ;;
-
-########################################################################
-# CASE ## DEFAULT
-########################################################################
- *)
-
- zenity --warning --width ${large} --text "Impossible d'interpréter votre commande $CAT"
- exit 1
-
- ;;
-
-esac
-
-## Extract thumbnail
-MIME=$(file --mime-type $HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} | cut -d ' ' -f 2)
-
-[[ $(echo $MIME | grep video) ]] && ffmpeg -i $HOME/astroport/${CAT}/${MEDIAID}/${TITLE}.${FILE_EXT} -r 1/300 -vf scale=-1:120 -vcodec png $HOME/astroport/${CAT}/${MEDIAID}/${CAT}.png
-[[ ! -f /astroport/${CAT}/${MEDIAID}/${CAT}.png ]] && echo "DEFAULT THUMBNAIL NEEDED"
-
-########################################################################
-# ADD $FILE to IPFS / ASTROPORT / KODI
-echo "new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\""
-[[ -f ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt ]] && cat ~/astroport/${CAT}/${MEDIAID}/ajouter_video.txt
-# LOG NOISE # [[ -f ~/astroport/${CAT}/${MEDIAID}/video.json ]] && cat ~/astroport/${CAT}/${MEDIAID}/video.json
-########################################################################
-## CREATION DU FICHIER ajouter_video.txt OK
-########################################################################
-### AJOUT DANS IPFS #######################################################
-########################################################################
-####################################new_file_in_astroport.sh##################
-########################################################################
-[[ "$CAT" == "film" || "$CAT" == "serie" ]] && CHOICE="TMDB"
-
-timestamp=$(date -u +%s%N | cut -b1-13)
-
-
-## AUTO DESTRUCTIVE ADD TO ASTROPORT IPFS SCRIPT
-echo "MEDIAKEY=${MEDIAKEY}" > ~/astroport/Add_${MEDIAKEY}_script.sh
-[[ $CHOICE == "TMDB" ]] && echo "echo \"Encoder ${FILE_NAME} en h265 avant import ? Tapez sur ENTER.. Sinon saisissez qqch avant...\"
-reponse=\$1
-[[ ! \$reponse ]] && read reponse
-if [[ ! \$reponse ]]; then
- ffmpeg -i \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}\" -vcodec libx265 -crf 28 $HOME/astroport/${MEDIAID}.mp4
- mv \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}\" \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}.old\"
- mv $HOME/astroport/${MEDIAID}.mp4 \"$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}.mp4\"
- ~/.zen/astrXbian/zen/new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}.mp4\"
-else" >> ~/astroport/Add_${MEDIAKEY}_script.sh
-
-echo "${MY_PATH}/new_file_in_astroport.sh \"$HOME/astroport/${CAT}/${MEDIAID}/\" \"${FILE_NAME}\" " >> ~/astroport/Add_${MEDIAKEY}_script.sh
-
-[[ $CHOICE == "TMDB" ]] && echo "fi" >> ~/astroport/Add_${MEDIAKEY}_script.sh
-
-echo "rm -f /tmp/\${MEDIAKEY}.pass
-rm -f /tmp/\${MEDIAKEY}.dunikey ## REMOVE KEYS
-echo 'Si tout est OK, appuyez dur ENTER, sinon ESC'
-[[ ! \$1 ]] && read finish
-rm ~/astroport/Add_${MEDIAKEY}_script.sh
-" >> ~/astroport/Add_${MEDIAKEY}_script.sh
-
-
-
-chmod +x ~/astroport/Add_${MEDIAKEY}_script.sh
-
-## DELAYED IPFS ADD TO ASTROPORT ... COULD BE MANAGED BY CRON
-
-# ~/.zen/astrXbian/zen/new_file_in_astroport.sh "$HOME/astroport/${CAT}/${MEDIAID}/" "${FILE_NAME}" > /tmp/${MEDIAKEY}.log 2>&1
-# [ ! $? == 0 ] && zenity --warning --width 300 --text "Désolé une erreur est survenue... Signalez ce log /tmp/${MEDIAKEY}.log sur https://git.p2p.legal/axiom-team/astrXbian" && exit 1
-########################################################################
-########################################################################
-########################################################################
-########################################################################
-########################################################################
-MEDIAPUBKEY=$(cat $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/MEDIAPUBKEY)
-
-#[ ! $2 ] && zenity --width=500 --height=500 --text-info \
-# --title="QR CODE MEDIA ${MEDIAKEY} (PASS=$(cat /tmp/${MEDIAKEY}.pass))" \
-# --html \
-# --url="http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png" \
-# --checkbox="Je m'engage à respecter les auteurs et promet d'offrir la Monnaie Libre collectée à qui de droit."
-
-########################################################################
-echo "# ZENBALANCE for ${MEDIAKEY} , WALLET $MEDIAPUBKEY"
-########################################################################
-FILE_BSIZE=$(du -b "$HOME/astroport/${CAT}/${MEDIAID}/${FILE_NAME}" | 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] }')
-
-#G1BALANCE=$(~/.zen/astrXbian/zen/jaklis/jaklis.py balance -p $G1PUB) && [[ "$G1BALANCE" == "null" ]] && G1BALANCE=0 || G1BALANCE=$(echo "$G1BALANCE" | cut -d '.' -f 1)
-#if [[ $G1BALANCE -gt 0 ]]; then
-# [ ! $2 ] && G1AMOUNT=$(zenity --entry --width 400 --title "VIRER DE LA MONNAIE LIBRE AU MEDIAKEY (MAX $G1BALANCE)" --text "Combien de JUNE (G1) souhaitez-vous offrir à ce MEDIA ($FILE_SIZE)" --entry-text="")
-# [[ ! "$G1AMOUNT" =~ ^[0-9]+$ ]] && G1AMOUNT=0
-# ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey pay -p ${MEDIAPUBKEY} -a $G1AMOUNT -c "#ASTROPORT:${MEDIAKEY} DON"
-# ZENBALANCE=$(echo "100 * $G1AMOUNT" | bc -l | cut -d '.' -f 1)
-#else
- ZENBALANCE=0
-#fi
-########################################################################
-########################################################################
-
-zenity --question --width 300 --text "OK! ~/astroport/Add_${MEDIAKEY}_script.sh ($FILE_SIZE). Voulez-vous lancer immédiatement l'ajout dans Astroport ?"; \
- [ $? == 0 ] && bash ~/astroport/Add_${MEDIAKEY}_script.sh "noh265" \
- && zenity --warning --width 300 --text "Ajoutez ce media dans vos journaux public 'qo-op' ou administratif 'moa'" \
- && [[ $(cat ~/.zen/game/players/.current/.playerns 2>/dev/null) ]] \
- && xdg-open "http://127.0.0.1:8080/ipns/$(cat ~/.zen/game/players/.current/.playerns)" \
- || ( zenity --warning --width 300 --text "Désolé une erreur est survenue... /tmp/${MEDIAKEY}.log" && exit 1 )\
- exit 0
-
-echo "${MEDIAKEY} = RECORDED TO IPFS."
-cat /tmp/${MEDIAKEY}.log
diff --git a/tools/get_tagcloud_data.sh b/tools/get_tagcloud_data.sh
index 600fa85d..21cb05ff 100755
--- a/tools/get_tagcloud_data.sh
+++ b/tools/get_tagcloud_data.sh
@@ -24,7 +24,7 @@ for player in $(ls ~/.zen/game/players/); do
pseudo=$(cat ~/.zen/game/players/$player/.pseudo)
echo "$player 'moa' UPDATE : $MOATS $IPUSH" && \
- DATA="$DATA { name: '"${pseudo}"', link: '"/ipns/${moans}"', weight: "$(cat ~/.zen/game/players/$CAPTAIN/moa/$player.moa.n)", tooltip: '"${player}"' },"
+ DATA="$DATA { name: '"${pseudo}"', link: '"/ipns/${moans}"', weight: "$(cat ~/.zen/game/players/$player/moa/$player.moa.n)", tooltip: '"${player}"' },"
done
echo 'data: [ '$DATA' ]'
diff --git a/tools/new_file_in_astroport.sh b/tools/new_file_in_astroport.sh
deleted file mode 100755
index bdaeeb4f..00000000
--- a/tools/new_file_in_astroport.sh
+++ /dev/null
@@ -1,511 +0,0 @@
-#!/bin/bash
-########################################################################
-# Author: Fred (support@qo-op.com)
-# 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##*/}"
-countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l)
-[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0
-start=`date +%s`
-
-YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1);
-IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID)
-[[ ! $IPFSNODEID ]] && echo 'ERROR missing IPFS Node id !! IPFS is not responding !?' && exit 1
-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:8080/.$IPFNODEID/
-# Index File Format (could be enhanced) is using Kodi TMDB enhancement
-# https://github.com/Kodi-vStream/venom-xbmc-addons/wiki/Voir-et-partager-sa-biblioth%C3%A8que-priv%C3%A9e#d%C3%A9clarer-des-films
-########################################################################
-## RUN inotifywait process ~/astroport/ NEW FILE DETECT
-# /usr/bin/inotifywait -r -e close_write -m /home/$YOU/astroport | while read dir flags file; do ~/.zen/astrXbian/zen/new_file_in_astroport.sh "$dir" "$file"; done &
-# mkdir -p ~/astroport/youtube
-# mkdir -p ~/astroport/mp3
-########################################################################
-path="$1"
-
-if [[ "$path" == "" ]]; then
- echo "## BATCH RUN. READ FIFO FILE."
-fi
-# Add trailing / if needed
-length=${#path}
-last_char=${path:length-1:1}
-[[ $last_char != "/" ]] && path="$path/"; :
-
-file="$2"
-
-echo "${MY_PATH}/new_file_in_astroport.sh PATH/ \"$path\" FILE \"$file\""
-
-extension="${file##*.}"
-TITLE="${file%.*}"
-
-# .part file false flag correcting (inotify mode)
-[[ ! -f "${path}${file}" ]] && file="${TITLE%.*}" && extension="${TITLE##*.}" && [[ ! -f "${path}${file}" ]] && er="NO FILE" && echo "$er" && exit 1
-
-# GET XZUID
-XZUID=$(cat ~/.zen/ipfs/.$IPFSNODEID/_xbian.zuid) || XZUID=$(cat /etc/hostname)
-[[ ! $(echo "$path" | cut -d '/' -f 4 | grep 'astroport') ]] && er="Les fichiers sont à placer dans ~/astroport/ MERCI" && echo "$er" && exit 1
-TYPE=$(echo "$path" | cut -d '/' -f 5 ) # ex: /home/$YOU/astroport/... TYPE(film, youtube, mp3, video, page)/ REFERENCE /
-CAT=$(echo "$TYPE" | awk '{ print tolower($0) }')
-
-echo $CAT
-
-PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M ou Y
-# File is placed in ROOT ~/astroport ?
-if [[ $PREFIX == "" ]]
-then
- [[ "$USER" != "xbian" ]] && zenity --warning --width 300 --text "Désolé votre fichier ne peut pas être traité"
- er="$er | WARNING. $TYPE is root file UNTREATED" && echo "$er" && exit 1
-fi
-
-[[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/
-
-########################################################################
-# EXTRACT INDEX REFERENCE : TMDB or YOUTUBE (can be extended with new )
-########################################################################
-case ${CAT} in
- video)
- INDEXPREFIX="VIDEO_"
- REFERENCE=$(echo "$path" | cut -d '/' -f 6 )
- TITLE="${file%.*}"
- ;;
- youtube)
- INDEXPREFIX="YOUTUBE_"
- REFERENCE=$(echo "$path" | cut -d '/' -f 6 )
- TITLE="${file%.*}"
- ;;
- page)
- ## DIFFERENT TREATMENT
- INDEXPREFIX="PAGE_"
- 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
- if ! [[ "$REFERENCE" =~ ^[0-9]+$ ]] # ${REFERENCE} NOT A NUMBER
- then
- er="$er | ERROR: $path BAD TMDB code. Get it from https://www.themoviedb.org/ or use your 06 phone number"
- echo "$er"
- exit 1
- fi
- ;;
- ## TODO ADD "httrack" for website copying
- ## httrack "https://wiki.lowtechlab.org" -O "./wiki.lowtechlab.org" "+*.lowtechlab.org/*" -v -%l "fr"
- ##
- *)
- er="$CAT inconnu" && echo "$er" && exit 1
- ;;
-esac
-
-MEDIAKEY="${INDEXPREFIX}${REFERENCE}"
-########################################################################
-## CHECK if MEDIAKEY exists -> REFRESH DATA
-########################################################################
-echo "SEARCH for ;$REFERENCE; in ${PREFIX}ASTRXBIAN"
-if [[ ${REFERENCE:0:1} != "0" ]]; then ## REFERENCE COULD BE A PHONE NUMBER (not in TMDB copy force)
- isREFERENCEinINDEX=$(grep ";$REFERENCE;" ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN )
- if [[ ${isREFERENCEinINDEX} ]]
- then
- if [[ -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB} ]]
- then
- # FILE IS MINE, NEW VERSION?! replacing it in INDEX
- ipnslink=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.link)
- echo "FOUND IPNS ${MEDIAKEY} = $ipnslink"
-
- # DELETING GCHANGE AD, WILL BE CREATED AGAIN
- gchangeAD=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad)
- ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" deleteoffer -i $gchangeAD
- rm ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad
- else
- er="$er | FILE IS ALREADY EXISTING FROM ANOTHER FRIEND" && echo "$er"
- ## SEND messages to warn about need to Unify MEDIAKEY IPNS KEY
- ipfsnodeid=$(echo ${isREFERENCEinINDEX} | tail -n 1 | cut -d '.' -f 3- | cut -d '/' -f 1)
- destg1=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $ipfsnodeid)
- [[ "$IPFSNODEID" != "$ipfsnodeid" ]] && ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" send -d $destg1 -t "MEDIAKEY COLLISION ${MEDIAKEY}" -m "Conflit de MEDIAKEY. Choisir quelle clef IPNS conserver..."
- ##
- fi
- fi
-fi
-
-
-########################################################################
-echo "ADDING ${path}${file} to IPFS and create ${PREFIX}ASTRXBIAN INDEX"
-echo "~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN"
-echo "-----------------------------------------------------------------"
-
-IPFS=$(ipfs add -wq "${path}${file}")
-IPFSREPFILEID=$(echo $IPFS | cut -d ' ' -f 2)
-IPFSID=$(echo $IPFS | cut -d ' ' -f 1)
-[[ $IPFSREPFILEID == "" ]] && echo "ipfs add ERROR" && exit 1
-echo "-----------------------------------------------------------------"
-echo "IPFS $file DIRECTORY: ipfs ls /ipfs/$IPFSREPFILEID"
-echo "-----------------------------------------------------------------"
-echo "New $TYPE INDEX ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN "
-
-URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri)
-
-### MEDIAKEY FORGE
-########################################################################
-## CREATE NEW ipns KEY : ${MEDIAKEY}
-########################################################################
-## IPFS SELF IPNS DATA STORAGE
-## ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
-########################################################################
-if [[ ! $(ipfs key list | grep "${MEDIAKEY}") ]]; then
- ## IPNS KEY CREATION
- mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}
- KEY=$(ipfs key gen "${MEDIAKEY}")
-# KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) # get name of last created key (could be fooled during stargate exchange)
- KEYFILE=$(~/.zen/astrXbian/zen/tools/give_me_keystore_filename.py "${MEDIAKEY}") # better method applied
-fi
-
-## IS IT NEW IPNS KEY?
-if [[ $KEY ]]; then
- echo "CREATING NEW IPNS MEDIAKEY"
- # memorize IPNS key filename for easiest exchange
- echo "$KEYFILE" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.key.keystore_filename
- # Publishing IPNS key
- echo "$KEY" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.link
- # CREATE .zen = ZEN economic value
- touch ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.zen
- # CREATE other encrypted copies for friends depending DEFCON & stars
- # > STARGATE 1 - 2 - 3 - 4 - 5 !!
- ################ ENCRYPT keystore/$KEYFILE
-else
- KEY=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.link)
- KEYFILE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.key.keystore_filename)
- echo "## ALREADY EXISTING IPNS KEY $KEYFILE ($KEY)"
-fi
-
-[[ ! $KEY ]] && echo "FATAL ERROR" && exit 1
-########################################################################
-## add default metadata (TODO = use json file?)
-########################################################################
-FILE_BSIZE=$(du -b "${path}${file}" | awk '{print $1}')
-echo "${FILE_BSIZE}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.filesize
-echo "${file}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipfs.filename
-echo "${TITLE}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.title
-echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.timestamp
-## INIT MEDIAKEY .views.counter
-echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.views.counter
-########################################################################
-
-########################################################################
-# Prepare IPFS links (then cyphered to manage exchange regulation)
-########################################################################
-echo "/ipfs/$IPFSREPFILEID/${file}" > /tmp/.ipfs.filelink
-echo "$IPFSID" > /tmp/.ipfsid
-########################################################################
-
-########################################################################
-################ ask autoPIN to one shuffle A_boostrap_nodes
-########################################################################
-PINIPFSnode=$(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#" | shuf | tail -n 1)
-nodeid=${PINIPFSnode##*/}
-PINnode=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $nodeid)
-
-echo "ASK AUTOPIN to $PINnode"
-## CREATE $PINnode IPFS communication directory
-if [[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode} && "$PINnode" != "$G1PUB" ]]; then
- mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}
- ## ENCRYPT .ipfsid & .ipfs.filelink (THESE FILES ARE
- $MY_PATH/natools.py encrypt -p $PINnode -i /tmp/.ipfs.filelink -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.ipfs.filelink.encrypt"
- $MY_PATH/natools.py encrypt -p $PINnode -i /tmp/.ipfsid -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.ipfsid.encrypt"
- # .ipfsid.encrypt is searched by each Station running ./zen/tools/autoPINfriends.sh
-fi
-########################################################################
-## GREAT natools can convert IPNS MEDIAKEY into .dunikey file
-########################################################################
-# CREATING QRCODE
-$MY_PATH/natools.py privkey -f ipfs-keystore -k $HOME/.ipfs/keystore/$KEYFILE -F pubsec -o /tmp/${MEDIAKEY}.dunikey
-# PubFromDunikey=$(cat /tmp/${MEDIAKEY}.dunikey | grep "sec" | cut -d ' ' -f2 | base58 -d | tail -c+33 | base58) ## HOWTO EXTRACT PUBKEY FROM SECKEY
-PubFromDunikey=$(cat /tmp/${MEDIAKEY}.dunikey | grep "pub" | cut -d ' ' -f2)
-qrencode -s 6 -o "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png" "$PubFromDunikey"
-echo "$PubFromDunikey" > $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/MEDIAPUBKEY
-
-########################################################################
-## MEDIAKEY => DUNIKEY + PASS 6 DIGITS openssl protection
-########################################################################
-PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7) && echo "$PASS" > /tmp/${MEDIAKEY}.pass
-openssl enc -aes-256-cbc -salt -in /tmp/${MEDIAKEY}.dunikey -out "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/dunikey.enc" -k $PASS
-
-## STATION & BOOTSTRAP ACCESS TO PASS
-$MY_PATH/natools.py encrypt -p $G1PUB -i /tmp/${MEDIAKEY}.pass -o $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.pass.encrypt
-$MY_PATH/natools.py encrypt -p $PINnode -i /tmp/${MEDIAKEY}.pass -o $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.pass.encrypt
-
-## DECODE MEDIAKEY.dunikey ##
-# ~/.zen/astrXbian/zen/natools.py decrypt -f pubsec -k "$HOME/.zen/secret.dunikey" -i "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.pass.encrypt" -o "/tmp/${MEDIAKEY}.pass"
-# openssl enc -aes-256-cbc -d -in "$HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/dunikey.enc" -out "/tmp/${MEDIAKEY}.dunikey" -k $(cat "/tmp/${MEDIAKEY}.pass")
-rm /tmp/${MEDIAKEY}.dunikey
-
-########################################################################
-## GET .ipfs/keystore file MAHE .ipns.mediakey.encrypt
-# used in ipns_TAG_refresh.sh & autoPINfriends.sh
-########################################################################
-$MY_PATH/natools.py encrypt -p $G1PUB -i $HOME/.ipfs/keystore/$KEYFILE -o $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.mediakey.encrypt
-$MY_PATH/natools.py encrypt -p $PINnode -i $HOME/.ipfs/keystore/$KEYFILE -o $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.ipns.mediakey.encrypt
-
-## Init zen, views counters & visitor
-echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.zen
-echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.views.counter
-echo "anonymous" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.visitor
-########################################################################
-# MEMORIZE my PIN
-mkdir -p ~/.zen/PIN/${IPFSREPFILEID}/
-touch ~/.zen/PIN/${IPFSREPFILEID}/${G1PUB}
-# echo "$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1)" > ~/.zen/PIN/${ipfsrepidfile}/IPNSLINK # NO!! Would let PINing nodes change index.html///
-
-########################################################################
-## encrypt links for myself
-########################################################################
-$MY_PATH/natools.py encrypt -p ${G1PUB} -i /tmp/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipfs.filelink.natools.encrypt
-$MY_PATH/natools.py encrypt -p ${G1PUB} -i /tmp/.ipfsid -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipfsid.encrypt
-rm /tmp/.ipfs.filelink
-rm /tmp/.ipfsid
-########################################################################
-
-########################################################################
-## ADD "ajouter_video.txt" and "video.json" will be SELF IPNS publish data
-## ENCRYPT TO STOP CLEAR DATA LEAKING
-[[ -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
-[[ -f ~/astroport/${TYPE}/${REFERENCE}/screen.png ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/screen.png ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/
-[[ -f ~/astroport/${TYPE}/${REFERENCE}/video.json ]] &&\
- cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ &&\
- cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/
-########################################################################
-
-########################################################################
-## EXPLANATIONS
-########################################################################
-# What is being in ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/
-# is published on http://127.0.0.1:8080/ipns/$KEY/ AND ipfs ls /ipns/$KEY/
-########################################################################
-########################################################################
-# CONTRACTS, are small App (fulljs or jquery + nginx backend app server)
-# They must decrypt IPFS after succeeding a chalenge (, +/- n zen, ...)
-########################################################################
-# Contract App Examples (ipns_TAG_refresh.sh makes MEDIAKEY evolution)
-# Counting video views = +1 .views.counter => decrypt key
-# Balancing Zen wallets = -n form source = +n for destination => decrypt key
-########################################################################
-# Astroport/Gchange USE as public/private media copy friend of friends swarm
-# one star level (no encrypt)
-# index.html is presenting Astroport/Kodi service then redirect to
-# $G1PUB/index.html contains redirection to ipfs link
-########################################################################
-
-########################################################################
-## IPNS access to index.html
-## Level 1 (not crypted) -> Redirect to ipfs streaming link
-
-IPNSLINK=$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1)
-## FIRST REDIRECT PAGE ${MEDIAKEY}/index.html
-# https://tube.copylaradio.com/ipns/$IPNSLINK
-#envsubst < ./www/boris/youtube_watch_step2.html > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html
-
- echo "=======> Mediakey Welcome index.html "
- cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step2.html \
- | sed "s/\${IPNSLINK}/$IPNSLINK/g" \
- | sed "s/\${IPFSNODEID}/$IPFSNODEID/g" \
- | sed "s/\${XZUID}/$XZUID/g" \
- | sed "s/\${G1PUB}/$G1PUB/g" \
- | sed "s/\${TITLE}/$TITLE/g" \
- > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html
-
-## SECOND REDIRECT PAGE ${MEDIAKEY}/${G1PUB}/index.html
-# https://tube.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/
-
-#envsubst < ../www/boris/youtube_watch_step3.html > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
- echo "=======> Mediakey Contract index.html "
- cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step3.html \
- | sed "s/\${TITLE}/$TITLE/g" \
- | sed "s/\${IPFSNODEID}/$IPFSNODEID/g" \
- | sed "s/\${XZUID}/$XZUID/g" \
- | sed "s/\${IPFSREPFILEID}/$IPFSREPFILEID/g" \
- | sed "s/\${URLENCODE_FILE_NAME}/$URLENCODE_FILE_NAME/g" \
- > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
-
-
-# echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
-########################################################################
-## MODIFY INTO "./zen/ipns_TAG_refresh.sh" (add crypto/contracts there)
-########################################################################
-
-########################################################################
-########################################################################
-## PUBLISH new IPNS
-########################################################################
-echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/.timestamp
-
-NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1 )
-[[ "$NEWIPFS" == "" ]] && echo "~~~ FAILURE ~~~ ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1" && exit 1
-
-## ADD CHAIN BLOCK ZERO (will be updated by ipns_TAG_refresh.sh)
-echo $NEWIPFS > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/.chain
-
-IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
-[[ "$IPNS" == "" ]] && echo "~~~ PROBLEM ~~~ ipfs name publish --quieter --key=${MEDIAKEY} $NEWIPFS" && IPNS="$(ipfs key list -l | grep -w ${MEDIAKEY} | cut -f 1 -d ' ')"
-########################################################################
-########################################################################
-
-########################################################################
-# POST TRAITEMENTS
-########################################################################
-# film/serie PUBLISH "ajouter_video.txt" for KODI
-########################################################################
-if [[ "${CAT}" =~ ^(film|serie|youtube|page|video)$ ]]
-then
- ## CREATE GCHANGE AD
- if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad && ( "${CAT}" == "film" || "${CAT}" == "serie") ]]
- then
-
- GOFFER=$(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey -n "https://data.gchange.fr" setoffer -t "${TITLE} #astroport #${MEDIAKEY}" -d "${TITLE} https://tube.copylaradio.com/ipns/$IPNS/ Faites un don à son portefeuille pour le conserver dans le Mediacenter des Amis - https://CopyLaRadio.com - https://astroport.com" -p $HOME/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/QR.png)
- echo $GOFFER > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad
- NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ | tail -n 1 )
- IPNS=$(ipfs name publish --quieter --key="${MEDIAKEY}" $NEWIPFS)
- [[ "$IPNS" == "" ]] && IPNS="$(ipfs key list -l | grep -w ${MEDIAKEY} | cut -f 1 -d ' ')"
- echo "Annonce gchange : $(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.gchange.ad)"
-
- fi
-
- ########################################################################
- # CREATION DU FICHIER ${PREFIX}ASTRXBIAN FILE : Add 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:8080" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
-
- # ADD NEW LINE TO INDEX
- if [[ -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt ]]
- then
- line=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g" | sed "s/_IPNSKEY_/$IPNS/g" )
- else
- 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
- line="$CAT;${REFERENCE};$YEAR;$TITLE;$SAISON;;${IPNS};$RES;/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
- fi
- echo "-------------------- UPDATE MY INDEX -----------------------------"
- echo "$line"
- echo "$line" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
- echo "UPDATE IPNS ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/ajouter_video.txt"
- echo "$line" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt
- ## UPDATE SOURCE ajouter_video.txt FILE
- cp -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt
-
- ########################################################################
- ## TODO: ACTIVATE SUB DEFCON 4 MODE = encrypt/decrypt file in $G1DEST subdirectory
- ########################################################################
- echo "----------------- REFRESH LOCAL KODI INDEX ----------------------"
- cat ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN | sort | uniq > ~/.zen/ipfs/.${IPFSNODEID}/${PREFIX}ASTRXBIAN
-
- GENRE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ajouter_video.txt | cut -d ';' -f 6 | sed 's/|/ /g' )
- MIME=$(file --mime-type "$HOME/astroport/${TYPE}/${REFERENCE}/${file}" | cut -d ':' -f 2 | cut -d ' ' -f 2)
- REAL=$MIME
- if [[ $(echo "$MIME" | grep 'video') ]]; then
- TEXT=""${TITLE}"
"
- MIME="text/vnd.tiddlywiki"
- TAGS="${CAT} astroport $GENRE"
- CANON=''
- else
- TEXT='${MEDIAKEY}'
- TAGS='$:/isAttachment $:/isIpfs astroport '${CAT} $GENRE
- CANON="/ipfs/"${IPFSID}
- fi
-
- ## Add screen
- SCREENDIR=$(ipfs add -wq "$HOME/astroport/${TYPE}/${REFERENCE}/screen.png" | tail -n 1)
-
- echo "## Creation json tiddler"
- echo '[
- {
- "text": "'${TEXT}'",
- "title": "'${TITLE}'",
- "type": "'${MIME}'",
- "mime": "'${REAL}'",
- "cat": "'${CAT}'",
- "screenshot": "'${SCREENDIR}/screen.png'",
- "ipfsroot": "'${IPFSREPFILEID}'",
- "file": "'${file}'",
- "mediakey": "'${MEDIAKEY}'",
- "ipns": "'${IPNS}'",
- "tmdb": "'${REFERENCE}'",
- "tags": "'${TAGS}'" ' > ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
-
- [[ ${CANON} != "" ]] && echo ',
- "_canonical_uri": "'${CANON}'"' >> ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
-
- echo '
- }
-]
-' >> ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json
-
-# Will be used by caroussel.html template
-# CAROUSSEL=$(ipfs add -wq ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json | head-n 1)
-
-
-
- # COPY TIDDLER JSON TO DESKTOP Journal/${TYPE}
- [[ "$USER" != "xbian" && -d ~/Bureau ]] && mkdir -p ~/Bureau/Journal/${TYPE} && cp ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json ~/Bureau/Journal/${TYPE}/${TITLE}.dragdrop.json && xdg-open "~/Bureau/Journal/${TYPE}/"
- [[ "$USER" != "xbian" && -d ~/Desktop ]] && mkdir -p ~/Desktop/Journal/${TYPE} && cp ~/astroport/${TYPE}/${REFERENCE}/${MEDIAKEY}.dragdrop.json ~/Desktop/Journal/${TYPE}/${TITLE}.dragdrop.json && xdg-open "~/Desktop/Journal/${TYPE}/"
-
-fi
-
-## COPY LOCALHOST IPFS URL TO CLIPBOARD
-[[ $(which xclip) ]] &&\
- [[ $TEXT == "" ]] &&\
- echo "http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME" | xclip -selection c ||\
- echo "$TEXT" | xclip -selection c
-
-########################################################################
-# PUBLISH GENERAL video
-########################################################################
-if [[ "${CAT}" == "video" ]]
-then
- ## REPLACE IPFS / IPNS REFERENCE IN video.json (Maybe cyphered later)
- cat ~/astroport/${CAT}/${MEDIAKEY}/video.json | sed "s/_IPFSREPFILEID_/$IPFSREPFILEID/g" | sed "s/_IPNSKEY_/$IPNS/g" >> ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN
-
-fi
-
-#########################################################################
-# PUBLISH YOUTUBE video to /astroport/wordpress/ DATA NOT USED ANY MORE... semaphore à régler
-#########################################################################
-if [[ "${CAT}" == "youtube" ]]
-then
- ## CREATE astroport call to Astroport/Wordpress stations
- if [[ ! -d ~/.zen/ipfs/.$IPFSNODEID/astroport/wordpress/${MEDIAKEY} ]]; then
- mkdir -p ~/.zen/ipfs/.$IPFSNODEID/astroport/wordpress/${MEDIAKEY}
- echo "1" > ~/.zen/ipfs/.$IPFSNODEID/astroport/wordpress/${MEDIAKEY}/do
- fi
-fi
-
-########################################################################
-
-########################################################################
-# REFRESH IPNS SELF PUBLISH
-########################################################################
-~/.zen/astrXbian/zen/ipns_self_publish.sh
-########################################################################
-echo "DUNIKEY PASS $PASS"
-echo "NEW $TYPE ($file) ADDED. http://127.0.0.1:8080/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME"
-echo "INDEX UPDATED : http://127.0.0.1:8080/ipns/${IPFSNODEID}/.${IPFSNODEID}/${PREFIX}ASTRXBIAN"
-echo "VIDEO IPNS LINK : http://127.0.0.1:8080/ipns/$KEY/$G1PUB/"
-echo "#### EXCECUTION TIME"
-end=`date +%s`
-echo Execution time was `expr $end - $start` seconds.
-echo "########################################################################"
-zenity --warning --width 300 --text "Votre MEDIA a rejoint ASTROPORT en `expr $end - $start` secondes"
-exit 0