diff --git a/crowdbunker.sh b/crowdbunker.sh
index 536a5db..4e22b2e 100755
--- a/crowdbunker.sh
+++ b/crowdbunker.sh
@@ -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 "" > ~/.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 "" > ~/.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 "" > /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