$TITLE
- LECTURE LOCALHOST!Lancement de la video dans 10 secondes ...
-
Ce service est disponible sur astrXbian BETA Live TEstNET
+ LECTURE LOCALHOST!Lancement de la video dans 10 secondes ...
+
diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh index 96a7030..f8640d8 100755 --- a/zen/new_file_in_astroport.sh +++ b/zen/new_file_in_astroport.sh @@ -25,7 +25,7 @@ G1PUB=$(cat ~/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) ######################################################################## path="$1" # Add trailing / if needed -length=${#path} +length=${#path} last_char=${path:length-1:1} [[ $last_char != "/" ]] && path="$path/"; : @@ -49,8 +49,8 @@ PREFIX=$(echo "$TYPE" | head -c 1 | awk '{ print toupper($0) }' ) # ex: F, Y, M # 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 + [[ "$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/ @@ -59,41 +59,41 @@ fi # 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%.*}" - ;; - 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 - ;; + video) + INDEXPREFIX="VIDEO_" + REFERENCE=$(echo "$path" | cut -d '/' -f 6 ) + TITLE="${file%.*}" + ;; + youtube) + INDEXPREFIX="YOUTUBE_" + 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}" @@ -102,28 +102,28 @@ MEDIAKEY="${INDEXPREFIX}${REFERENCE}" ######################################################################## 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" + 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 + # 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 @@ -148,30 +148,30 @@ URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri) ## CREATE NEW ipns KEY : ${MEDIAKEY} ######################################################################## ## IPFS SELF IPNS DATA STORAGE -## ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/ +## ~/.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) + ## IPNS KEY CREATION + mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB} + KEY=$(ipfs key gen "${MEDIAKEY}") + KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) fi ## IS IT NEW IPNS KEY? if [[ $KEY ]]; then - # 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 + # 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 ## OLD IPNS KEY - KEY=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.link) - KEYFILE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.key.keystore_filename) + KEY=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.link) + KEYFILE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/.ipns.key.keystore_filename) fi [[ ! $KEY ]] && echo "FATAL ERROR" && exit 1 @@ -204,9 +204,10 @@ PINnode=$(~/.zen/astrXbian/zen/tools/ipfs_to_g1.py $nodeid) echo "ASK AUTOPIN to $PINnode" ## CREATE $PINnode IPFS communication directory [[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode} ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode} -## ENCRYPT .ipfsid & .ipfs.filelink +## ENCRYPT .ipfsid & .ipfs.filelink (THESE FILES ARE $MY_PATH/tools/natools.py encrypt -p $PINnode -i /tmp/.ipfs.filelink -o "~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/${PINnode}/.ipfs.filelink.encrypt" $MY_PATH/tools/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 ######################################################################## ## GREAT natools can convert IPNS MEDIAKEY into .dunikey file @@ -259,7 +260,7 @@ rm /tmp/.ipfsid ######################################################################## ## ADD "ajouter_video.txt" and "video.json" will be SELF IPNS publish data -[[ -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}/ajouter_video.txt ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ~/.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}/ ######################################################################## @@ -271,7 +272,7 @@ rm /tmp/.ipfsid ######################################################################## ######################################################################## # CONTRACTS, are small App (fulljs or jquery + nginx backend app server) -# They must decrypt IPFS after succeeding a chalenge (, +/- n zen, ...) +# 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 @@ -293,22 +294,22 @@ IPNSLINK=$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1) echo "
-