diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh index be3fcd5..dc32ba3 100755 --- a/zen/new_file_in_astroport.sh +++ b/zen/new_file_in_astroport.sh @@ -53,6 +53,8 @@ then 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 ) ######################################################################## @@ -76,7 +78,7 @@ case ${CAT} in 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/ " + 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 @@ -87,35 +89,32 @@ case ${CAT} in esac ######################################################################## -## CHECK if ${INDEXPREFIX}${REFERENCE} MEDIAKEY exists +## CHECK if ${INDEXPREFIX}${REFERENCE} MEDIAKEY exists -> REFRESH DATA ######################################################################## echo "SEARCH for ;$REFERENCE; in ${PREFIX}ASTRXBIAN" -isREFERENCEinINDEX=$(grep ";$REFERENCE;" ~/.zen/ipfs_swarm/.12D*/astroport/kodi/vstream/${PREFIX}ASTRXBIAN ) -if [[ ${isREFERENCEinINDEX} ]] -then - if [[ -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} ]] +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 - # FILE IS MINE, NEW VERSION?! replacing it in INDEX - ipnslink=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link) - echo "FOUND IPNS ${INDEXPREFIX}${REFERENCE} = $ipnslink" + if [[ -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} ]] + then + # FILE IS MINE, NEW VERSION?! replacing it in INDEX + ipnslink=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link) + echo "FOUND IPNS ${INDEXPREFIX}${REFERENCE} = $ipnslink" - # DELETING GCHANGE AD, WILL BE CREATED AGAIN - gchangeAD=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad) - ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey deleteoffer -i $gchangeAD - rm ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${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 send -d $destg1 -t "BLOCKCHAIN FUSION ${INDEXPREFIX}${REFERENCE}" -m "Conflit de MEDIAKEY. Choisir quelle clef IPNS conserver..." - # + # DELETING GCHANGE AD, WILL BE CREATED AGAIN + gchangeAD=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad) + ~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey deleteoffer -i $gchangeAD + rm ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${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 send -d $destg1 -t "BLOCKCHAIN FUSION ${INDEXPREFIX}${REFERENCE}" -m "Conflit de MEDIAKEY. Choisir quelle clef IPNS conserver..." + ## + fi fi - - # DELETING OLD LINE FROM INDEX - sed -i "/;$REFERENCE;/d" ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN - - # [[ "$USER" != "xbian" ]] && zenity --warning --width 300 --text "DOUBLON ${isREFERENCEinINDEX}" fi ######################################################################## @@ -131,16 +130,23 @@ echo "-----------------------------------------------------------------" echo "IPFS: $file : ipfs ls /ipfs/$IPFSREPFILEID" echo "-----------------------------------------------------------------" echo "New $TYPE INDEX ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN " -[[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/ URLENCODE_FILE_NAME=$(echo ${file} | jq -Rr @uri) ######################################################################## ## CREATE NEW ipns KEY : ${INDEXPREFIX}${REFERENCE} ######################################################################## +## IPFS SELF IPNS DATA STORAGE +## ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ ######################################################################## -[[ ! $(ipfs key list | grep "${INDEXPREFIX}${REFERENCE}") ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} && KEY=$(ipfs key gen "${INDEXPREFIX}${REFERENCE}") && KEYFILE=$(ls -t ~/.ipfs/keystore/ | head -n 1) -## INIT ipns +if [[ ! $(ipfs key list | grep "${INDEXPREFIX}${REFERENCE}") ]]; then + ## IPNS KEY CREATION + mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB} + KEY=$(ipfs key gen "${INDEXPREFIX}${REFERENCE}") + 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/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.key.keystore_filename @@ -153,41 +159,62 @@ if [[ $KEY ]]; then # > STARGATE 1 - 2 - 3 - 4 - 5 !! ################ ENCRYPT keystore/$KEYFILE else +## OLD IPNS KEY KEY=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link) KEYFILE=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.key.keystore_filename) fi -# CLEAR ipfs link (is then cyphered to manage exchange regulation) +######################################################################## +## add default metadata (TODO = use json file?) +######################################################################## +echo "${file}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filename +echo "${TITLE}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.title +echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.timestamp +## INIT MEDIAKEY .views.counter +echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.views.counter +######################################################################## + +######################################################################## +# Prepare IPFS links (then cyphered to manage exchange regulation) +######################################################################## echo "/ipfs/$IPFSREPFILEID/${file}" > /tmp/.ipfs.filelink echo "$IPFSID" > /tmp/.ipfsid -################ ENCRYPT .ipfsid & .ipfs.filelink for A_boostrap_nodes and myself -for g1node in $(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#") # remove comments -do - # CREATE $g1node IPFS communication directory - [[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node} ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node} - # Enscrypt IPFS links - $MY_PATH/tools/natools.py encrypt -p $g1node -i /tmp/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node}/.ipfs.filelink.encrypt - $MY_PATH/tools/natools.py encrypt -p $g1node -i /tmp/.ipfsid -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node}/.ipfsid.encrypt - # Init zen, views counters & visitor - echo "0" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node}/.zen - echo "0" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node}/.views.counter - echo "anonymous" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${g1node}/.visitor -done +######################################################################## + +######################################################################## +################ ask autoPIN to one shuffle A_boostrap_nodes +######################################################################## +PINnode=$(cat ~/.zen/astrXbian/A_boostrap_nodes.txt | grep -Ev "#" | shuf) +echo "ASK AUTOPIN to $PINnode" +## CREATE $PINnode IPFS communication directory +[[ ! -d ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode} ]] && mkdir -p ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode} +## ENCRYPT .ipfsid & .ipfs.filelink +$MY_PATH/tools/natools.py encrypt -p $PINnode -i /tmp/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.ipfs.filelink.encrypt +$MY_PATH/tools/natools.py encrypt -p $PINnode -i /tmp/.ipfsid -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.ipfsid.encrypt +## Init zen, views counters & visitor +echo "0" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.zen +echo "0" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.views.counter +echo "anonymous" ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/${PINnode}/.visitor +######################################################################## +# MEMORIZE my PIN +mkdir -p ~/.zen/PIN/${IPFSREPFILEID}/ +touch ~/.zen/PIN/${IPFSREPFILEID}/${G1PUB} + +######################################################################## ## encrypt links for myself +######################################################################## $MY_PATH/tools/natools.py encrypt -p ${G1PUB} -i /tmp/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink.natools.encrypt $MY_PATH/tools/natools.py encrypt -p ${G1PUB} -i /tmp/.ipfsid -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfsid.encrypt rm /tmp/.ipfs.filelink rm /tmp/.ipfsid +######################################################################## -echo "${file}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filename -echo "${TITLE}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.title -echo "$(date -u +%s%N | cut -b1-13)" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.timestamp -# INIT GLOBAL .views.counter -echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.views.counter - -# COPY "ajouter_video.txt" and "video.json" to SELF IPNS publish data +######################################################################## +## ADD "ajouter_video.txt" and "video.json" +SELF IPNS publish data [[ -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/ajouter_video.txt ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ [[ -f ~/astroport/${TYPE}/${REFERENCE}/video.json ]] && cp -f ~/astroport/${TYPE}/${REFERENCE}/video.json ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ +######################################################################## ######################################################################## ## EXPLANATIONS @@ -195,6 +222,7 @@ echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.v # What is being in ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/ # is published on http://127.0.0.1:8181/ipns/$KEY/ ######################################################################## +######################################################################## # CONTRACTS, are small App (fulljs or jquery + nginx backend app server) # They must decrypt IPFS after succeeding a chalenge (, +/- n zen, ...) ######################################################################## @@ -208,24 +236,31 @@ echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.v # $G1PUB/index.html contains redirection to ipfs link ######################################################################## -# IPNS index.html Redirect to ipfs streaming link (could be contract or anything else !!) +######################################################################## +## IPNS access to index.html +## Level 1 (not crypted) -> Redirect to ipfs streaming link +## Modified by "./zen/ipns_TAG_refresh.sh" (add crypto/contracts there) echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html IPNSLINK=$(ipfs key list -l | grep ${INDEXPREFIX}${REFERENCE} | cut -d ' ' -f 1) echo " -

ASTROPORT/KODI

-Pour regarder ${TITLE}, rejoignez notre video-club et devenons amis...

-Installez astrXbian" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/index.html +

Astroport/KODI

+Ce film ${TITLE} est disponible dans le video-club de mes amis...
+Lecture automatique dans 10 secondes...

+

Découvrez astrXbian

" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/index.html +######################################################################## +## PUBLISH new IPNS NEWIPFS=$(ipfs add -rHq ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/ | tail -n 1 ) IPNS=$(ipfs name publish --quieter --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS) ######################################################################## ######################################################################## -# PUBLISH TMDB film/serie/anime +# film/serie/anime PUBLISH "ajouter_video.txt" for KODI ######################################################################## if [[ "${CAT}" =~ ^(film|serie|anime)$ ]] then + ## CREATE GCHANGE AD if [[ ! -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad ]] then GOFFER=$(~/.zen/astrXbian/zen/jaklis/jaklis.py -k ~/.zen/secret.dunikey setoffer -t "${TITLE} #astroport #${INDEXPREFIX}${REFERENCE}" -d "https://aries.copylaradio.com/ipns/$IPNS/ = https://www.themoviedb.org/movie/${REFERENCE}" -p ~/.zen/astrXbian/disk.png) @@ -236,14 +271,10 @@ then echo "Annonce gchange : $(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad)" ######################################################################## - # NEW ${PREFIX}ASTRXBIAN FILE : Add header + # ${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:8181" > ~/.zen/ipfs/.${IPFSNODEID}/astroport/kodi/vstream/${PREFIX}ASTRXBIAN - # MEMORIZE NEW PIN localy - mkdir -p ~/.zen/PIN/${IPFSREPFILEID}/ - touch ~/.zen/PIN/${IPFSREPFILEID}/${G1PUB} - # ADD NEW LINE TO INDEX if [[ -f ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt ]] then diff --git a/zen/wordpress_channel.sh b/zen/wordpress_channel.sh index e2bfcbc..1a57b96 100755 --- a/zen/wordpress_channel.sh +++ b/zen/wordpress_channel.sh @@ -51,8 +51,9 @@ do # 1=DIY, Habiter=2, Guerir=3, Divertir=4, Déplacer=5, Energie=6, Cultiver=7 cd /var/www/wordpress/ - isWPuser=$(wp user list | grep "$xzuid") + # isWPuser=$(wp user list | grep "$xzuid") wp post create --post_author="$xzuid" --post_content="

$title

" --post_title="$title" --post_excerpt="$g1pubsource" --post_category="105" --tags_input="$genres" --porcelain + # REPLY IN ~/.zen/ipfs/.$ipfnodesource/astroport/wordpress/$mediakey/done responsedir="$(echo "$wpcall" | sed 's/ipfs_swarm/ipfs/g')" mkdir -p $responsedir @@ -62,11 +63,11 @@ do else echo '## I am the source of that "done" wpcall remove "do"' - [[ $isdone ]] && echo "DONE! Removing my do" && rm -f ~/.zen/ipfs/.$ipfnodesource/astroport/wordpress/$mediakey/do* + [[ $isdone ]] && echo "DONE! Removing my do" && rm -Rf ~/.zen/ipfs/.$ipfnodesource/astroport/wordpress/$mediakey/do* && rm -f ~/.zen/ipfs_swarm/.$ipfnodesource/astroport/wordpress/$mediakey/do* fi ## I am the destination of that "done / not todo" wpcall -[[ "$isdone" == "$IPFSNODEID" && ! $istodo ]] && echo "DONE not TODO. removing done" && rm -f ~/.zen/ipfs/.$ipfnodesource/astroport/wordpress/$mediakey/do* +[[ "$isdone" == "$IPFSNODEID" && ! $istodo ]] && echo "DONE not TODO. removing done" && rm -f ~/.zen/ipfs/.$ipfnodesource/astroport/wordpress/$mediakey/do* && rm -f ~/.zen/ipfs_swarm/.$ipfnodesource/astroport/wordpress/$mediakey/do* done