optimisations

This commit is contained in:
fred 2022-04-07 15:43:42 +02:00
parent 8622d2a16a
commit edcc0c4afe
1 changed files with 62 additions and 36 deletions

View File

@ -55,12 +55,14 @@ for VUID in $(cat ~/.zen/bunkerbox/crowd.json | jq -r '.posts | .[] | .video.id'
MEDIASOURCE=$(echo $HLS | rev | cut -d '/' -f 2- | rev)
echo "$TITLE ($DURATION s)"
## CHECK PUBLISH MODE
[[ ! -f ~/.zen/bunkerbox/choice ]] && echo "READY TO PROCESS ? ENTER. Any character sent means next." && read TEST && [[ "$TEST" != "" ]] && echo && continue ## NO CHOICE MADE
## NO choice made, so ask to continue each loop
[[ ! $(cat ~/.zen/bunkerbox/choice 2>/dev/null) ]] && echo "READY TO PROCESS ? ENTER. Any character sent means next." && read TEST && [[ "$TEST" != "" ]] && echo && continue ## NO CHOICE MADE
start=`date +%s`
echo "$HLS"
## Download HLS source m3u8 (contains video & audio)
curl -s $HLS -o ~/.zen/bunkerbox/$VUID/$VUID.m3u8
# cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8
[[ ! $(cat ~/.zen/bunkerbox/choice 2>/dev/null) ]] && cat ~/.zen/bunkerbox/$VUID/$VUID.m3u8 # DEBUG
echo ">>>>>>>>>>>>>>>> Downloading VIDEO"
# Choose 360p or 480p or 240p
@ -97,8 +99,12 @@ $VIDEOHEAD
$VIDEOSRC.m3u8
" > ~/.zen/bunkerbox/$VUID/media/$VUID.m3u8
ls ~/.zen/bunkerbox/$VUID/media/
ls ~/.zen/bunkerbox/$VUID/media/ # SHOW ALL COLLECTED MEDIA
##########################################################################
##########################################################################
echo "##########################################################################"
echo ">>>>>>>>>>>>>>>> ADDING index.html"
# COPY index, style, js AND data
@ -107,23 +113,27 @@ echo "##########################################################################
cp ${MY_PATH}/templates/videojs.html ~/.zen/bunkerbox/$VUID/media/index.html
cp ${MY_PATH}/images/astroport.jpg ~/.zen/bunkerbox/$VUID/media/
# Add current/latest common history reversed
if [[ -f ~/.zen/bunkerbox/history.json ]]; then
# qo-op get latest history.json
[[ "$(cat ~/.zen/bunkerbox/choice)"=="qo-op" ]] && IPNSL="/ipns/$(cat ~/.zen/bunkerbox/qo-op)" && ipfs get -o ~/.zen/bunkerbox/history.qo-op.json $IPNSL/history.json || IPNSL="./"
# [[ $(cat ~/.zen/bunkerbox/history.qo-op.json | jq .Videos[].link | grep $VUID) ]] && echo "Video déjà dans history" && continue
## CREATE FIRST HISTORY from TEMPLATE
[[ ! -f ~/.zen/bunkerbox/history.json ]] && cp ${MY_PATH}/templates/data/history.json ~/.zen/bunkerbox/history.json
# qo-op get latest history.json
if [[ "$(cat ~/.zen/bunkerbox/choice 2>/dev/null)"=="qo-op" ]]; then
IPNSL="/ipns/$(cat ~/.zen/bunkerbox/qo-op)"
ipfs get -o ~/.zen/bunkerbox/history.qo-op.json $IPNSL/history.json # Get actual IPNS qo-op history.json
[[ $(cat ~/.zen/bunkerbox/history.qo-op.json | jq .Videos[].link | grep $VUID) ]] && echo "Video déjà dans history" && cp ~/.zen/bunkerbox/history.qo-op.json ~/.zen/bunkerbox/history.json && continue
# FUSION/REPLACEMENT WHAT TODO ?
##
echo '{
"Videos":' > ~/.zen/bunkerbox/$VUID/media/history.json
cat ~/.zen/bunkerbox/history.json | jq '.[] | reverse' >> ~/.zen/bunkerbox/$VUID/media/history.json
echo '}' >> ~/.zen/bunkerbox/$VUID/media/history.json
jq -s '.[0] * .[1]' ~/.zen/bunkerbox/history.json ~/.zen/bunkerbox/history.qo-op.json | jq -M '.Videos |= unique_by(.link)' > ~/.zen/bunkerbox/history.fusion.json
mv ~/.zen/bunkerbox/history.fusion.json ~/.zen/bunkerbox/history.json ## REPLACE LOCAL HISTORY CACHE
else
## NEW history
[[ ! $(cat ~/.zen/bunkerbox/history.json | grep Videos) ]] && cp ${MY_PATH}/templates/data/history.json ~/.zen/bunkerbox/history.json
cp ~/.zen/bunkerbox/history.json ~/.zen/bunkerbox/$VUID/media/history.json
IPNSL="./"
fi
# Add current/latest reversed history to media
echo '{
"Videos":' > ~/.zen/bunkerbox/$VUID/media/history.json
cat ~/.zen/bunkerbox/history.json | jq '.[] | reverse' >> ~/.zen/bunkerbox/$VUID/media/history.json
echo '}' >> ~/.zen/bunkerbox/$VUID/media/history.json
# Using relative links
sed "s/_IPFSROOT_/./g" ${MY_PATH}/templates/videojs.html > ~/.zen/bunkerbox/$VUID/media/index.html
sed -i "s/_VUID_/$VUID/g" ~/.zen/bunkerbox/$VUID/media/index.html
@ -138,7 +148,7 @@ echo "##########################################################################
INDEX="/ipfs/$IPFSROOT"
VMAIN="/ipfs/$IPFSROOT/$VUID.m3u8"
# UPDATING original JSON
# UPDATING original JSON - TODO inform crowdbunker that IPFS copy is available.
cat ~/.zen/bunkerbox/$VUID/$VUID.json | jq ".video.hlsManifest.url = \"$VMAIN\"" > ~/.zen/bunkerbox/$VUID/media/$VUID.json
echo "M3U8 : $IPFSNGW$VMAIN"
@ -161,17 +171,17 @@ echo "##########################################################################
fi
echo "<meta http-equiv=\"refresh\" content=\"0;URL=$INDEX\">" > ~/.zen/bunkerbox/index.html
echo "ACTUEL INDEX $IPFSNGW/ipfs/$IPFSROOT"
echo "OLD JSON : $IPFSNGW/ipfs/$IPFSROOT/history.json"
echo "===== INDEX ===== $IPFSNGW/ipfs/$IPFSROOT"
echo "HISTORY : $IPFSNGW/ipfs/$IPFSROOT/history.json"
PS3="Comment voulez-vous continuer et publier la collecte ? "
PS3="Comment voulez-vous continuer et publier votre collecte ? "
choices=("debug" "local" "qo-op" "astrXbian")
fav=$(cat ~/.zen/bunkerbox/choice)
[[ ! $fav ]] && select fav in "${choices[@]}"; do [[ $fav ]] && break; done
case $fav in
"local")
echo 'local' > ~/.zen/bunkerbox/choice
echo "Historique LOCAL = ~/.zen/bunkerbox/history.json"
echo "MODE LOCAL Historique = ~/.zen/bunkerbox/history.json"
continue
;;
"astrXbian")
@ -181,33 +191,49 @@ echo "##########################################################################
mkdir -p ~/.zen/ipfs/.$IPFSNODEID/astroport/bunkerbox
echo "<meta http-equiv=\"refresh\" content=\"0;URL=$INDEX\">" > ~/.zen/ipfs/.$IPFSNODEID/astroport/bunkerbox/index.html
cp ~/.zen/bunkerbox/history.json ~/.zen/ipfs/.$IPFSNODEID/astroport/bunkerbox/
echo "BALISE Station $IPFSNGW/ipns/$IPFSNODEID/.$IPFSNODEID/astroport/bunkerbox/ propagation au prochain cycle astrXbian"
echo "BALISE Station :: $IPFSNGW/ipns/$IPFSNODEID/.$IPFSNODEID/astroport/bunkerbox/"
echo "Propagation lors du prochain cycle astrXbian"
continue
;;
"qo-op")
echo "ACTIVATION qo-op"
if [[ ! $(ipfs key list | grep 'qo-op') ]]; then
echo "MIssing qo-op key! Clef qo-op manquante!"
echo "get it from your best friend and do not break confidence ring!"
echo "récupérez la auprès de votre meilleur ami. Et ne brisez pas la chaine de confiance!"
echo "Contact support@qo-op.com for help! Envoyez un email pour obtenir assistance."
echo "Utiliser la clef de DEV ? ENTRER pour OUI. Répondez qqch pour NON."
echo "Clef qo-op manquante! (Missing qo-op key!)"
echo "Récupérez la auprès de votre meilleur ami. Et ne brisez pas la chaine de confiance!"
echo "(Get it from your best friend and do not break confidence ring!)"
sleep 2
echo
echo "Envoyez un email pour obtenir assistance. (Contact support@qo-op.com) ? HELP !"
sleep 1
echo
echo "Utiliser la clef 'qo-op' de DEV ? ENTRER pour OUI. Saisissez un caractère avant si NON."
read KDEV
[[ "$KDEV" != "" ]] && echo "BRAVO! Confidence is in the KEY. La confiance est dans la CLEF." && break ## NO CHOICE MADE
## USE DEV KEY
echo "k51qzi5uqu5djt17zonkpg1cb8hrxhahpesybusz8q57j4ocqm0qlc6s99z60x" > ~/.zen/bunkerbox/qo-op
cp ${MY_PATH}/key_ofxs233q ~/.ipfs/keystore/
if [[ "$KDEV" != "" ]]; then
echo "La confiance est dans la CLEF (Confidence is in the KEY)."
echo "Voici la votre (here is yours): "
publishkey=$(ipfs key gen qo-op)
echo "~/.ipfs/keystore/key_ofxs233q"
echo "Partagez cette clef avec vos amis pour créer une chaine video en commun..."
echo "$IPFSNGW/ipns/$publishkey"
echo "$publishkey" > ~/.zen/bunkerbox/qo-op
echo 'qo-op' > ~/.zen/bunkerbox/choice
else
## USE DEV KEY
echo "k51qzi5uqu5djt17zonkpg1cb8hrxhahpesybusz8q57j4ocqm0qlc6s99z60x" > ~/.zen/bunkerbox/qo-op
cp ${MY_PATH}/key_ofxs233q ~/.ipfs/keystore/
fi
############################################
## FIRST PUBLISH index.html (REDIRECT) + history.json + ts
mkdir -p /tmp/$VUID
echo "<meta http-equiv=\"refresh\" content=\"0;URL=$INDEX\">" > /tmp/$VUID/index.html
cp ~/.zen/bunkerbox/history.json /tmp/$VUID/history.json
echo "$TS" > /tmp/$VUID/ts # TimeStamping
VROOT=$(ipfs add -wHq /tmp/$VUID/* | tail -n 1)
ipfs name publish --key=qo-op /ipfs/$VROOT
echo "qo-op : $IPFSNGW/ipns/$IPNS/history.json /ipfs/$VROOT"
echo "qo-op : $IPFSNGW/ipns/$IPNS/history.json REDIRECT TO /ipfs/$VROOT"
else
## WRITE qo-op IPNS key
## qo-op KEY IS ALREADY THERE. WRITE qo-op IPNS key
ipfs key list -l | grep 'qo-op' | cut -f 1 -d ' ' > ~/.zen/bunkerbox/qo-op
fi
echo 'qo-op' > ~/.zen/bunkerbox/choice