forked from axiom-team/astrXbian
Prepare youtube video feeding to bootstrap node type Astroport/Wordpress OASIS (CONTRACT App explanation)
This commit is contained in:
parent
b588d654f6
commit
0d8b3ba6af
|
@ -80,27 +80,74 @@ YFILE=$(ls -t ${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)
|
||||
TMDB="${YID}"
|
||||
TITLE="${YNAME%.*}"
|
||||
|
||||
## CORRECT PARAMETERS to Make Kodi compatible YASTRXBIAN FILE
|
||||
|
||||
YOUTUBE_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 ${AXID// /-})
|
||||
|
||||
# FORMAT GENRES ["genre1","genre2"]
|
||||
GENRES="[\"$(echo ${YOUTUBE_GENRES} | sed s/\|/\",\"/g)\"]"
|
||||
|
||||
## MANIFESTE OASIS
|
||||
zenity --width ${large} --height=${haut} --text-info \
|
||||
--title="Engagement OASIS Astroport/OneNation" \
|
||||
--html \
|
||||
--url="https://oasis.astroport.com/" \
|
||||
--checkbox="J'ai lu et j'accepte les termes."
|
||||
|
||||
case $? in
|
||||
0)
|
||||
echo "Démarrage de l'installation !"
|
||||
# next step
|
||||
;;
|
||||
1)
|
||||
echo "Arrêt de l'installation !" && exit 1
|
||||
;;
|
||||
-1)
|
||||
echo "Une erreur inattendue est survenue." && exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
FILE_PATH="$HOME/astroport/youtube/$YID"
|
||||
mkdir -p ${FILE_PATH} && mv -f ${YTEMP}/* ${FILE_PATH}/
|
||||
# Remove "&" from FILE_NAME rename to YNAME
|
||||
# rename FILE_NAME to YNAME (URL clean)
|
||||
mv "${FILE_PATH}/${FILE_NAME}" "${FILE_PATH}/${YNAME}" && FILE_NAME="${YNAME}"
|
||||
# rename video.json
|
||||
mv "${FILE_PATH}/${JSON_FILE}" "${FILE_PATH}/video.json"
|
||||
|
||||
## CORRECT PARAMETERS to Make Kodi compatible YASTRXBIAN FILE
|
||||
TITLE="${YNAME%.*}"
|
||||
GENRES="[\"$AXID\"]"
|
||||
GROUPES="_IPNSKEY_" # USE GROUPS TO RECORD IPNS MEDIAKEY
|
||||
|
||||
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}/${TMDB}/ajouter_video.txt" (with film CAT !!!)
|
||||
## CREATE "~/astroport/${CAT}/${TMDB}/ajouter_video.txt" and video.json
|
||||
URLENCODE_FILE_NAME=$(echo ${FILE_NAME} | jq -Rr @uri)
|
||||
echo "film;${TMDB};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/astroport/${CAT}/${TMDB}/ajouter_video.txt
|
||||
echo "youtube;${TMDB};${YEAR};${TITLE};${SAISON};${GENRES};${GROUPES};${RES};/ipfs/_IPFSREPFILEID_/$URLENCODE_FILE_NAME" > ~/astroport/${CAT}/${TMDB}/ajouter_video.txt
|
||||
|
||||
# _IPFSREPFILEID_ is replaced later
|
||||
|
||||
rm -Rf ${YTEMP}
|
||||
|
|
|
@ -148,7 +148,6 @@ if [[ $KEY ]]; then
|
|||
echo "$KEY" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.link
|
||||
# CREATE .zen = ZEN economic value
|
||||
touch ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.zen
|
||||
################ ENCRYPT keystore/$KEYFILE
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.ipfs/keystore/$KEYFILE -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipns.key.natools.encrypt
|
||||
# CREATE other encrypted copies for friends depending DEFCON & stars
|
||||
# > STARGATE 1 - 2 - 3 - 4 - 5 !!
|
||||
|
@ -159,37 +158,55 @@ else
|
|||
fi
|
||||
|
||||
# CLEAR ipfs link (is then cyphered to manage exchange regulation)
|
||||
echo "/ipfs/$IPFSREPFILEID/${file}" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
|
||||
echo "$IPFSID" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfsid
|
||||
################ ENCRYPT .ipfsid & .ipfs.filelink
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink.natools.encrypt
|
||||
rm ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfs.filelink
|
||||
$MY_PATH/tools/natools.py encrypt -p $G1PUB -i ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfsid -o ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfsid.encrypt
|
||||
rm ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.ipfsid
|
||||
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
|
||||
## 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 .views.counter
|
||||
# INIT GLOBAL .views.counter
|
||||
echo "0" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.views.counter
|
||||
|
||||
# COPY "ajouter_video.txt" later used
|
||||
# COPY "ajouter_video.txt" and "video.json" to 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
|
||||
########################################################################
|
||||
# What is being in ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/
|
||||
# is being published on http://127.0.0.1:8181/ipns/$KEY/
|
||||
# is published on http://127.0.0.1:8181/ipns/$KEY/
|
||||
########################################################################
|
||||
# To activate CONTRACTS, make small App with php + jquery (nginx)
|
||||
# serve App will come from ipfs to certify the code
|
||||
# CONTRACTS, are small App (fulljs or jquery + nginx backend app server)
|
||||
# They must decrypt IPFS after succeeding a chalenge (, +/- n zen, ...)
|
||||
########################################################################
|
||||
# Various App ipfs reference are listed here
|
||||
# Counting video views =
|
||||
# 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 index.html Redirect to ipfs streaming link (could be contract or anything else !!)
|
||||
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/index.html
|
||||
|
@ -205,7 +222,7 @@ IPNS=$(ipfs name publish --quieter --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS)
|
|||
########################################################################
|
||||
|
||||
########################################################################
|
||||
# PUBLISH GCHANGE AD for TMDB film/serie/anime ONLY
|
||||
# PUBLISH TMDB film/serie/anime
|
||||
########################################################################
|
||||
if [[ "${CAT}" =~ ^(film|serie|anime)$ ]]
|
||||
then
|
||||
|
@ -217,35 +234,41 @@ then
|
|||
IPNS=$(ipfs name publish --quieter --key="${INDEXPREFIX}${REFERENCE}" $NEWIPFS)
|
||||
fi
|
||||
echo "Annonce gchange : $(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/.gchange.ad)"
|
||||
|
||||
########################################################################
|
||||
# NEW ${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
|
||||
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
|
||||
line=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${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/${INDEXPREFIX}${REFERENCE}/ajouter_video.txt"
|
||||
echo "$line" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt
|
||||
|
||||
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
|
||||
fi
|
||||
|
||||
########################################################################
|
||||
# NEW ${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
|
||||
# PUBLISH TMDB film/serie/anime
|
||||
########################################################################
|
||||
|
||||
# MEMORIZE NEW PIN
|
||||
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
|
||||
line=$(cat ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${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/${INDEXPREFIX}${REFERENCE}/ajouter_video.txt"
|
||||
echo "$line" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${INDEXPREFIX}${REFERENCE}/${G1PUB}/ajouter_video.txt
|
||||
|
||||
echo "----------------- REFRESH GLOBAL 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
|
||||
########################################################################
|
||||
|
||||
########################################################################
|
||||
# REFRESH IPNS SELF PUBLISH
|
||||
|
|
Loading…
Reference in New Issue