diff --git a/.DS_Store b/.DS_Store index bd03b9f52..d7691240b 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/20h12.process.sh b/20h12.process.sh index c10183ca2..78fd88135 100755 --- a/20h12.process.sh +++ b/20h12.process.sh @@ -16,7 +16,13 @@ LOWMODE=$(sudo systemctl status ipfs | grep disabled) ## IPFS DISABLED - START O [[ ! $isLAN ]] && LOWMODE="" ## LOWMODE ONLY FOR LAN STATION # echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl') -sudo systemctl restart ipfs && sleep 10 +#~ sudo systemctl stop astroport +## CHECK IF IPFS NODE IS RESPONDING (ipfs name resolve ?) +ipfs --timeout=30s swarm peers 2>/dev/null > ~/.zen/tmp/ipfs.swarm.peers +[[ ! -s ~/.zen/tmp/ipfs.swarm.peers || $? != 0 ]] \ + && echo "---- SWARM COMMUNICATION BROKEN / RESTARTING IPFS DAEMON ----" \ + && sudo systemctl restart ipfs \ + && sleep 60 floop=0 while [[ ! $(netstat -tan | grep 5001 | grep LISTEN) ]]; do @@ -31,12 +37,21 @@ done echo "TODAY UPlanet landings" ls ~/.zen/tmp/ZONE_* 2>/dev/null -## REMOVE TMP BUT KEEP SWARM and coucou +## REMOVE TMP BUT KEEP swarm, flashmem and coucou mv ~/.zen/tmp/swarm ~/.zen/swarm mv ~/.zen/tmp/coucou ~/.zen/coucou +mv ~/.zen/tmp/flashmem ~/.zen/flashmem rm -Rf ~/.zen/tmp/* mv ~/.zen/swarm ~/.zen/tmp/swarm mv ~/.zen/coucou ~/.zen/tmp/coucou +mv ~/.zen/flashmem ~/.zen/tmp/flashmem + +### DELAY _12345 ASTROPORT DURING 20H12 UPDATE ### +MOATS=$(date -u +"%Y%m%d%H%M%S%4N") +MOATS_plus_5_hours=$(date -d "now + 5 hours" +"%Y%m%d%H%M%S%4N") +mkdir ~/.zen/tmp/${IPFSNODEID} +echo ${MOATS_plus_5_hours} > ~/.zen/tmp/${IPFSNODEID}/_MySwarm.moats +echo 9000 > ~/.zen/tmp/random.sleep ## UPDATE G1BILLETS code [[ -s ~/.zen/G1BILLET/G1BILLETS.sh ]] \ diff --git a/AI/Readme.md b/AI/Readme.md new file mode 100644 index 000000000..c0c56ac2b --- /dev/null +++ b/AI/Readme.md @@ -0,0 +1,39 @@ +# Pourquoi ? + +## La Monnaie est Buggée ! +Dans l'écosystème actuel, la notion de monnaie est sujette à des défauts. + La distinction entre une unité non libre et une monnaie libre révèle des imperfections + dans les échanges économiques. + +## Blockchain = Registre Global +La blockchain, en tant que registre global, offre une opportunité de remédier aux lacunes du +système financier actuel. Elle peut être envisagée comme une carte d'identité pour le Web3, +offrant transparence et traçabilité. + +## IA Apprentissage et Contrôle +La gestion de l'intelligence artificielle est cruciale. La comparaison entre un ChatGPT privé +et Mistral libre souligne la nécessité d'un contrôle plus étendu. +"The PILE", source d'information, demande une cohérence accrue pour garantir une +diffusion fiable des connaissances. + +## Loi de Moore vs Industrie +La cadence effrénée de la Loi de Moore, avec une progression tous les 1,5 ans, +se heurte à la réalité industrielle où les cycles d'investissement s'étendent de 3 à 11 ans. +Les rendements sur investissements sont souvent compromis, créant des opportunités pour de nouveaux acteurs. + +## Web2.0 Épileptique +Les soubresauts du Web2.0, caractérisés par l'instabilité des données et de leur localisation, +soulignent la nécessité d'une approche plus stable et cohérente. + +# Comment ? + +## UPlanet / Astroport.ONE +La solution réside dans UPlanet et Astroport.ONE, des initiatives axées sur la décentralisation et la régulation. +En adoptant une blockchain multi-grille sphérique et des clés géospatiales, ces plateformes créent un réseau de : +* stations index (300€) +* stations de stockage (1500€) +* stations IA avec GPU (5000€) + + +Ces stations, en synergie, visent à résoudre les problèmes évoqués, offrant une alternative innovante +pour les investisseurs souhaitant participer à la transformation du paysage technologique. diff --git a/API/AMZQR.sh b/API/AMZQR.sh index cecb794b8..2cb62f43b 100755 --- a/API/AMZQR.sh +++ b/API/AMZQR.sh @@ -26,6 +26,8 @@ MOATS=$9 COOKIE=$10" PORT="$1" THAT="$2" AND="$3" THIS="$4" APPNAME="$5" WHAT="$6" OBJ="$7" VAL="$8" MOATS="$9" COOKIE="$10" +[[ "$PORT" == "" ]] && echo "$MY_PATH/AMZQR.sh '0' 'la chaine a mettre en QRCODE' 'et' 'TV'" && exit 1 + HTTPCORS="HTTP/1.1 200 OK Access-Control-Allow-Origin: ${myASTROPORT} Access-Control-Allow-Credentials: true @@ -37,6 +39,8 @@ Content-Type: text/html; charset=UTF-8 function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } + +[[ ${MOATS} == "" ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N") mkdir -p ~/.zen/tmp/${MOATS}/ ################################################## @@ -44,10 +48,12 @@ USTRING=$(urldecode "${THAT}") IMAGE="${THIS}" [[ ! -s ${MY_PATH}/../images/${IMAGE}.png || ${USTRING} == "" ]] \ - && exho "UNKNOW IMAGE ${IMAGE}" \ - && (echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) \ + && echo "UNKNOW IMAGE ${IMAGE}" \ + && ( [[ $PORT != "0" ]] && echo "$HTTPCORS ERROR - BAD PARAMS" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) \ && echo "(☓‿‿☓) Execution time was "`expr $(date +%s) - $start` seconds. && exit 1 +echo amzqr "${USTRING}" -l H -c -p ${MY_PATH}/../images/${IMAGE}.png -n ${MOATS}.png -d ~/.zen/tmp/${MOATS}/ + ## RUN AMZQR amzqr "${USTRING}" -l H -c -p ${MY_PATH}/../images/${IMAGE}.png -n ${MOATS}.png -d ~/.zen/tmp/${MOATS}/ IPFSMG=$(ipfs add -q ~/.zen/tmp/${MOATS}/${MOATS}.png | tail -n 1) @@ -55,6 +61,18 @@ echo "${myIPFS}/ipfs/${IPFSMG}" echo "$HTTPCORS " | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 & +if [[ $PORT == "0" ]]; then + [[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open ${myIPFS}/ipfs/${IPFSMG} + + LP=$(ls /dev/usb/lp* 2>/dev/null | head -n1) + [[ ! $LP ]] && echo "NO PRINTER FOUND - Brother QL700 validated" && exit 1 + + echo "IMPRESSION QRCODE" + brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/${MOATS}/${MOATS}.png > ~/.zen/tmp/${MOATS}/toprint.bin 2>/dev/null + sudo brother_ql_print ~/.zen/tmp/${MOATS}/toprint.bin $LP + +fi + rm -Rf ~/.zen/tmp/${MOATS}/ end=`date +%s` echo "(AMZQR) Operation time was "`expr $end - $start` seconds. diff --git a/API/UPLANET.sh b/API/UPLANET.sh index 6af7321e0..720e769cf 100755 --- a/API/UPLANET.sh +++ b/API/UPLANET.sh @@ -159,22 +159,23 @@ mkdir -p ~/.zen/tmp/${MOATS}/${LAT}_${LON} ipfs key rm ${G1PUB} > /dev/null 2>&1 rm ~/.zen/tmp/${MOATS}/_ipns.priv 2>/dev/null -${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}" +${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/_ipns.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}" UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/_ipns.priv ) [[ ! ${UMAPNS} ]] && (echo "$HTTPCORS ERROR - (╥☁╥ ) - UMAPNS COMPUTATION DISFUNCTON" | nc -l -p ${PORT} -q 1 > /dev/null 2>&1 &) && exit 1 echo "UMAPNS : ${myIPFS}/ipns/${UMAPNS}" ## ALL TEST PASSED -> CREATE ZENCARD + ASTROID -NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES -PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 4) ## STRONGER TW SECURITY "AlpH4nUm" -NPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10) ## STRONGER TW SECURITY "AlpH4nUm" - +#~ NPASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-9) ## NOUVEAU PASS 8 CHIFFRES +#~ NPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 10) ## STRONGER TW SECURITY "AlpH4nUm" +#~ PPASS=$(head /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 2) +PPASS=$(${MY_PATH}/../tools/diceware.sh $(${MY_PATH}/../tools/getcoins_from_gratitude_box.sh) | xargs) +NPASS=$(${MY_PATH}/../tools/diceware.sh $(${MY_PATH}/../tools/getcoins_from_gratitude_box.sh) | xargs) ## CREATE ASTRONAUTE TW ON CURRENT ASTROPORT ( -echo VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" +echo VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" ##### (☉_☉ ) ####### -${MY_PATH}/../RUNTIME/VISA.new.sh "${EMAIL}_${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt +${MY_PATH}/../RUNTIME/VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "/ipns/${UMAPNS}" "${LAT}" "${LON}" >> ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt ## TO REMOVE : MONITOR ${MY_PATH}/../tools/mailjet.sh "support@qo-op.com" ~/.zen/tmp/email.${EMAIL}.${MOATS}.txt "LOG VISA.new $EMAIL" ## Send VISA.new log to EMAIL @@ -183,10 +184,9 @@ end=`date +%s` echo "(TW REGISTRATION) Operation time was "`expr $end - $start` seconds. ) & - ######################################## ## Calculating TW IPNS ADDRESS -TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${EMAIL}_${PPASS}" "${NPASS}") +TWADD=$(${MY_PATH}/../tools/keygen -t ipfs "${PPASS}" "${NPASS}") ## HTTP nc ON PORT RESPONSE echo "$HTTPCORS @@ -216,11 +216,11 @@ echo "$HTTPCORS

UPlanet Registration

- Your AstroID seeds are:
+ ${EMAIL} AstroID seeds are:

-

${EMAIL}_${PPASS}

-

${NPASS}

- +

${PPASS}

+

${NPASS}

+

${PASS}

Generating account...
Please check your mail box to get your ZenCard and PIN code.
diff --git a/ASTROBOT/G1CopierYoutube.sh b/ASTROBOT/G1CopierYoutube.sh index 61fdaad6a..b7e1ec8fa 100755 --- a/ASTROBOT/G1CopierYoutube.sh +++ b/ASTROBOT/G1CopierYoutube.sh @@ -69,11 +69,11 @@ for YURL in $(cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/CopierYoutube.js lastrun=$(echo "$CMD" | rev | cut -d ':' -f 1 | rev) && echo "$CMD" duree=$(expr ${MOATS} - $lastrun) fi - # ONE WEEK NEW SCAN - if [[ $duree -ge 604800000 || ! -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} ]]; then - /usr/local/bin/yt-dlp $BROWSER --print "%(id)s&%(webpage_url)s" "${YURL}" >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} - sed -i "s~$lastrun~$MOATS~g" ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command # UPDATE LASTRUN - fi + # ONE WEEK NEW SCAN + if [[ $duree -ge 604800000 || ! -s ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} ]]; then + /usr/local/bin/yt-dlp $BROWSER --print "%(id)s&%(webpage_url)s" "${YURL}" 2>/dev/null >> ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.cache.${PLAYER} + sed -i "s~$lastrun~$MOATS~g" ~/.zen/game/players/${PLAYER}/G1CopierYoutube/yt-dlp.command # UPDATE LASTRUN + fi done # FINISH YURL loop @@ -94,6 +94,9 @@ while read LINE; echo "_____ $LINE _____ $boucle" YID="$(echo "$LINE" | rev | cut -d '=' -f 1 | rev )" + #~ [[ $boucle -gt 50 ]] && break ## TODO SCAN FOR ABROAD SAME COPY DONE + ### MAKE BETTER THAN RANDOM !! CONNECT TO THE WARM... + ################################################################### ## Search for $YID.TW.json TIDDLER in local & MySwarm cache #~ echo "--- CACHE SEARCH FOR $YID ---" diff --git a/BOOKS/HowTo_natools.py.md b/BOOKS/HowTo_natools.py.md new file mode 100644 index 000000000..e985a6e37 --- /dev/null +++ b/BOOKS/HowTo_natools.py.md @@ -0,0 +1,48 @@ +To use `natools` for message encryption (to destination) and signature (from sender), you would typically follow these steps: + +### 1. Generate Key Pairs: + - Both the sender and the recipient need to generate their key pairs (public and private keys). You can use the `natools` script to generate keys. + + ```bash + # Sender generate keys + python3 natools.py privkey -k ~/.zen/game/sender_secret.dunikey -f cred + python3 natools.py pubkey -k ~/.zen/game/sender_secret.dunikey -o sender_public_key + + # Recipient generates keys + python3 natools.py privkey -k ~/.zen/game/myswarm_secret.dunikey -f cred + python3 natools.py pubkey -k ~/.zen/game/myswarm_secret.dunikey -o recipient_public_key + ``` + +### 2. Encrypt the Message: + - The sender uses the recipient's public key to encrypt the message. + + ```bash + python3 natools.py encrypt -i plaintext.txt -k recipient_public_key -o encrypted_message.bin + ``` + +### 3. Sign the Message: + - The sender signs the original message using their private key. + + ```bash + python3 natools.py sign -i plaintext.txt -k sender_private_key -o signature.bin + ``` + +### 4. Verify the Signature: + - The recipient uses the sender's public key to verify the signature. + + ```bash + python3 natools.py verify -i plaintext.txt -p sender_public_key + ``` + + - The script will output "Signature OK!" if the verification is successful. + +### 5. Decrypt the Message: + - The recipient uses their private key to decrypt the message. + + ```bash + python3 natools.py decrypt -i encrypted_message.bin -k recipient_private_key -o decrypted_message.txt + ``` + +Now you have successfully performed message encryption to the destination and signature from the sender using the `natools` script. Adjust the file paths and content as needed for your specific use case. + +Note: Ensure that both sender and recipient securely store their private keys. Public keys can be shared openly. The encrypted message, signature, and decrypted message are intermediate files used for illustration; adjust as needed in your application. diff --git a/RUNTIME/DRAGON_p2p_ssh.sh b/RUNTIME/DRAGON_p2p_ssh.sh index f83529bb9..73c507726 100755 --- a/RUNTIME/DRAGON_p2p_ssh.sh +++ b/RUNTIME/DRAGON_p2p_ssh.sh @@ -49,7 +49,7 @@ done < ${MY_PATH}/../A_boostrap_ssh.txt [[ -s ~/.ssh/id_ed25519.pub ]] && cp ~/.ssh/id_ed25519.pub ~/.zen/tmp/${IPFSNODEID}/y_ssh.pub ## DRAGONz PGP/SSH style (https://pad.p2p.legal/keygen) gpg --export-ssh-key $(cat ~/.zen/game/players/.current/.player) 2>/dev/null > ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub -[[ -z ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub ]] && rm ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub # remove empty file +[[ ! -s ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub ]] && rm ~/.zen/tmp/${IPFSNODEID}/z_ssh.pub # remove empty file ############################################ ### FORWARD SSH PORT over /x/ssh-${IPFSNODEID} @@ -69,18 +69,48 @@ echo PORT=22000 PORT=$((PORT+${RANDOM:0:3})) -echo "#!/bin/bash -if [[ ! \$(ipfs p2p ls | grep x/ssh-${IPFSNODEID}) ]]; then - ipfs --timeout=10s ping -n 3 /p2p/${IPFSNODEID} - ipfs p2p forward /x/ssh-${IPFSNODEID} /ip4/127.0.0.1/tcp/$PORT /p2p/${IPFSNODEID} +echo '#!/bin/bash +if [[ ! $(ipfs p2p ls | grep x/ssh-'${IPFSNODEID}') ]]; then + ipfs --timeout=10s ping -n 4 /p2p/'${IPFSNODEID}' + [[ $? == 0 ]] \ + && ipfs p2p forward /x/ssh-'${IPFSNODEID}' /ip4/127.0.0.1/tcp/'${PORT}' /p2p/'${IPFSNODEID}' \ + && ssh '${USER}'@127.0.0.1 -p '${PORT}' \ + || echo "CONTACT IPFSNODEID FAILED - ERROR -" fi -ssh ${USER}@127.0.0.1 -p $PORT -" > ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh +' > ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh cat ~/.zen/tmp/${IPFSNODEID}/x_ssh.sh +echo " + + /| /\\ + /^^^/ |^\Z / | + | \Z / | + / @ \Z / / \_______ + ( \ _ / \Z / / / + ( ---- /G |\ |Z / / / + ( / ---- \ /---'/\ |Z / / / + \/--' /--/ /Z / / + | /--/ |Z / / \_______ + / /--/ |Z \ / / + --/ /--/ \Z | / / + / /--/ \Z / / + |--| \Z/ / + |---| / /----' + \---| /^^^^^^^^^^^^\Z + \-/ \Z + / / | \Z + \---' |\________| |_______ |Z + \--' /\/ \|_|_|_|| |_|_|_|_|\_ |Z + '------' / / / |_ /Z + \---' | / `````` /Z + \--' /\/ \ _____________/Z + '------' \ + +" + ############################################ -echo +echo "CONNECT WITH THIS COMMAND" echo "ipfs cat /ipns/${IPFSNODEID}/x_ssh.sh | bash" ############################################ diff --git a/RUNTIME/G1PalPay.sh b/RUNTIME/G1PalPay.sh index e29014c3e..7f88c2b6a 100755 --- a/RUNTIME/G1PalPay.sh +++ b/RUNTIME/G1PalPay.sh @@ -115,7 +115,6 @@ cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | ## GET @ in JSON INLINE while read LINE; do - echo "MATCHING IN COMMENT" echo "${LINE}" JSON=${LINE} TXIDATE=$(echo $JSON | jq -r .date) @@ -124,7 +123,6 @@ while read LINE; do TXIAMOUNTUD=$(echo $JSON | jq -r .amountUD) COMMENT=$(echo $JSON | jq -r .comment) - echo ">>> TODO CHECK TX HAPPENS LAST 24H (WHAT IS TXIDATE=$TXIDATE FORMAT ??)" [[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] \ && echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \ && continue @@ -132,18 +130,26 @@ while read LINE; do ## GET EMAILS FROM COMMENT TXIMAILS=($(echo "$COMMENT" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b")) + echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %" + [[ $(echo "$TXIAMOUNT < 0" | bc) ]] \ + && echo "TX-OUT" \ + && echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate \ + && continue + ## DIVIDE INCOMING AMOUNT TO SHARE echo "N=${#TXIMAILS[@]}" N=${#TXIMAILS[@]} - SHARE=$(echo "scale=2; $TXIAMOUNT / $N" | bc) + SHAREE=$(echo "scale=2; $TXIAMOUNT / $N" | bc) + SHARE=$(makecoord ${SHAREE}) ## SHARE is received AMOUT divided by numbers of EMAILS in comment - echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %" - # let's loop over TXIMAILS for EMAIL in "${TXIMAILS[@]}"; do - [[ ${EMAIL} == $PLAYER ]] && echo "ME MYSELF" && continue + [[ ${EMAIL} == $PLAYER ]] \ + && echo "ME MYSELF" \ + && echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate \ + && continue echo "EMAIL : ${EMAIL}" ASTROTW="" STAMP="" ASTROG1="" ASTROIPFS="" ASTROFEED="" # RESET VAR @@ -183,7 +189,9 @@ while read LINE; do fi ## DONE STAMP IT - [[ $STAMP == 0 ]] && echo "STAMP DONE" && echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate ## MEMORIZE LAST TXIDATE + [[ $STAMP == 0 ]] \ + && echo "STAMP DONE" \ + && echo "$TXIDATE" > ~/.zen/game/players/${PLAYER}/.atdate ## MEMORIZE LAST TXIDATE done diff --git a/RUNTIME/G1Voeu.sh b/RUNTIME/G1Voeu.sh index a62d0c682..cc5164524 100755 --- a/RUNTIME/G1Voeu.sh +++ b/RUNTIME/G1Voeu.sh @@ -42,75 +42,75 @@ mkdir -p ~/.zen/tmp/${MOATS} ##################################################### # CREATION DE LA CLEF DERIVEE "G1VOEU" ##################################################### - source ~/.zen/game/players/${PLAYER}/secret.june ## LE PEPPER DU PLAYER DEVIENT LE SALT DU G1VOEU - [[ ${PEPPER} ]] && echo "Using PLAYER PEPPER AS WISH SALT" && SECRET1=${PEPPER} ## - [[ ! ${SECRET1} ]] && SECRET1=$(${MY_PATH}/../tools/diceware.sh 3 | xargs) +source ~/.zen/game/players/${PLAYER}/secret.june ## LE PEPPER DU PLAYER DEVIENT LE SALT DU G1VOEU +[[ ${PEPPER} ]] && echo "Using PLAYER PEPPER AS WISH SALT" && SECRET1=${PEPPER} ## +[[ ! ${SECRET1} ]] && SECRET1=$(${MY_PATH}/../tools/diceware.sh 3 | xargs) - #~ echo "${SECRET1}" +#~ echo "${SECRET1}" - echo "## TITRE DU G1VOEU ? CapitalGluedWords please" - [[ ! ${TITRE} ]] && read TITRE - VoeuName=$(echo "${TITRE}" | sed -r 's/\<./\U&/g' | sed 's/ //g') # VoeuName EST LE TITRE DU VOEU : CapitalGluedWords + EMAIL +echo "## TITRE DU G1VOEU ? CapitalGluedWords please" +[[ ! ${TITRE} ]] && read TITRE +VoeuName=$(echo "${TITRE}" | sed -r 's/\<./\U&/g' | sed 's/ //g') # VoeuName EST LE TITRE DU VOEU : CapitalGluedWords + EMAIL - SECRET2="${VoeuName} ${PLAYER}" ## SECRET2 est "TitreDuVoeu PLAYER" +SECRET2="${VoeuName} ${PLAYER}" ## SECRET2 est "TitreDuVoeu PLAYER" - echo "${SECRET2}" && [[ ! ${SECRET2} ]] && echo "EMPTY SECRET2 - ERROR" && exit 1 +echo "${SECRET2}" && [[ ! ${SECRET2} ]] && echo "EMPTY SECRET2 - ERROR" && exit 1 - echo "## keygen PLAYER DERIVATE WISH KEY" - ${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/wish.dunikey "${SECRET1}" "${SECRET2}" - WISHG1PUB=$(cat ~/.zen/tmp/${MOATS}/wish.dunikey | grep "pub:" | cut -d ' ' -f 2) - echo "WISHG1PUB (G1PUB) = ${WISHG1PUB}" - [[ ${WISHG1PUB} == "" ]] && echo "EMPTY WISHG1PUB G1PUB - ERROR" && exit 1 - mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ - mv ~/.zen/tmp/${MOATS}/wish.dunikey ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey +echo "## keygen PLAYER DERIVATE WISH KEY" +${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/wish.dunikey "${SECRET1}" "${SECRET2}" +WISHG1PUB=$(cat ~/.zen/tmp/${MOATS}/wish.dunikey | grep "pub:" | cut -d ' ' -f 2) +echo "WISHG1PUB (G1PUB) = ${WISHG1PUB}" +[[ ${WISHG1PUB} == "" ]] && echo "EMPTY WISHG1PUB G1PUB - ERROR" && exit 1 +mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ +mv ~/.zen/tmp/${MOATS}/wish.dunikey ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey - echo "# NOUVEAU VOEU" - mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey "${SECRET1}" "${SECRET2}" - ipfs key import ${WISHG1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey - VOEUNS=$(ipfs key list -l | grep -w "${WISHG1PUB}" | cut -d ' ' -f 1 ) - echo "/ipns/${VOEUNS}" +echo "# NOUVEAU VOEU" +mkdir -p ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ +${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey "${SECRET1}" "${SECRET2}" +ipfs key import ${WISHG1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey +VOEUNS=$(ipfs key list -l | grep -w "${WISHG1PUB}" | cut -d ' ' -f 1 ) +echo "/ipns/${VOEUNS}" - ## NATOOLS ENCRYPT - echo "# NATOOLS ENCODING qrtw.ipfskey " - ${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc - ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16) - #~ echo $ENCODING +## NATOOLS ENCRYPT +echo "# NATOOLS ENCODING qrtw.ipfskey " +${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/qrtw.ipfskey -o $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc +ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/qrtw.ipfskey.$G1PUB.enc | base16) +#~ echo $ENCODING - ## TEST IPFS - #~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json - #~ [[ -s ~/.zen/tmp/${VOEUNS}.json ]] \ - #~ && echo "HEY !!! UN CHANNEL EXISTE DEJA POUR CE VOEU ! ~/.zen/tmp/${VOEUNS}.json - EXIT -" \ - #~ && exit 1 +## TEST IPFS +#~ ipfs --timeout=30s cat /ipns/${VOEUNS} > ~/.zen/tmp/${VOEUNS}.json +#~ [[ -s ~/.zen/tmp/${VOEUNS}.json ]] \ +#~ && echo "HEY !!! UN CHANNEL EXISTE DEJA POUR CE VOEU ! ~/.zen/tmp/${VOEUNS}.json - EXIT -" \ +#~ && exit 1 - echo "# UPGRADING WORLD WHISHKEY DATABASE" +echo "# UPGRADING WORLD WHISHKEY DATABASE" - mkdir -p ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ - ## A la fois Titre du tag et Pepper construction de clef - echo ${VoeuName} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.pepper - echo ${WISHG1PUB} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.wish +mkdir -p ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ +## A la fois Titre du tag et Pepper construction de clef +echo ${VoeuName} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.pepper +echo ${WISHG1PUB} > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/.wish - echo "# CREATION QR CODE" +echo "# CREATION QR CODE" - LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) +LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) - qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png" "$LIBRA/ipns/${VOEUNS}" +qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png" "$LIBRA/ipns/${VOEUNS}" - ################################################################# - ## MAKING SPECIAL amrzqr => G1Milgram TICKET - ## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${PLAYERG1PUB}" avec PASS=YYYYMM - IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" "${G1PUB}" | tail -n 1) - cp ~/.zen/tmp/${MOATS}/START.png ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ +################################################################# +## MAKING SPECIAL amrzqr => G1Milgram TICKET +## LE QRCODE CORRESPOND A LA CLEF DERIVE "${PLAYER} :: G1${VoeuName} ${PLAYERG1PUB}" avec PASS=YYYYMM +IMAGIC=$(${MY_PATH}/../tools/VOEUX.print.sh "${PLAYER}" "${VoeuName}" "${MOATS}" "${G1PUB}" | tail -n 1) +cp ~/.zen/tmp/${MOATS}/START.png ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ - qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS" - qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "${G1PUB}" - qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png" "${WISHG1PUB}:ZEN" - qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.IPNS.png" "/ipns/${VOEUNS}" +qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.ASTROLINK.png" "$LIBRA/ipns/$ASTRONAUTENS" +qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1ASTRO.png" "${G1PUB}" +qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png" "${WISHG1PUB}:ZEN" +qrencode -s 12 -o "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.IPNS.png" "/ipns/${VOEUNS}" ################################# - # PREMIER TYPE ~/.zen/tmp/player.png - convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png -resize 300 ~/.zen/tmp/QRWISHLINK.png - convert ${MY_PATH}/../images/logoastro.png -resize 220 ~/.zen/tmp/ASTROLOGO.png +# PREMIER TYPE ~/.zen/tmp/player.png +convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.WISHLINK.png -resize 300 ~/.zen/tmp/QRWISHLINK.png +convert ${MY_PATH}/../images/logoastro.png -resize 220 ~/.zen/tmp/ASTROLOGO.png composite -compose Over -gravity NorthWest -geometry +350+10 ~/.zen/tmp/ASTROLOGO.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png @@ -120,9 +120,9 @@ convert -gravity northwest -pointsize 30 -fill black -draw "text 320,300 \"***** convert -gravity northwest -pointsize 33 -fill black -draw "text 320,350 \"${VoeuName}\"" ~/.zen/tmp/salt.png ~/.zen/tmp/player.png ################################# - # SECOND TYPE ~/.zen/tmp/voeu.png - convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png -resize 300 ~/.zen/tmp/G1WISH.png - convert ${MY_PATH}/../images/logojeu.png -resize 260 ~/.zen/tmp/MIZLOGO.png +# SECOND TYPE ~/.zen/tmp/voeu.png +convert $HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/QR.G1WISH.png -resize 300 ~/.zen/tmp/G1WISH.png +convert ${MY_PATH}/../images/logojeu.png -resize 260 ~/.zen/tmp/MIZLOGO.png composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/G1WISH.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/astroport.png composite -compose Over -gravity NorthWest -geometry +300+0 ~/.zen/tmp/QRWISHLINK.png ~/.zen/tmp/astroport.png ~/.zen/tmp/one.png @@ -131,136 +131,134 @@ composite -compose Over -gravity NorthWest -geometry +320+280 ~/.zen/tmp/MIZLOGO convert -gravity northwest -pointsize 28 -fill black -draw "text 32,350 \"Ğ1 VOEU\"" ~/.zen/tmp/two.png ~/.zen/tmp/pep.png convert -gravity northwest -pointsize 50 -fill black -draw "text 30,300 \"${VoeuName}\"" ~/.zen/tmp/pep.png ~/.zen/tmp/voeu.png - # IMAGE DANS IPFS - IVOEUPLAY=$(ipfs add -Hq ~/.zen/tmp/player.png | tail -n 1) - IVOEU=$(ipfs add -Hq ~/.zen/tmp/voeu.png | tail -n 1) - - ### G1VOEU LIGHTBEAM :: ${PLAYER}_${VoeuName} :: /ipns/${VOEUNS} - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_${VoeuName}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key-'${VoeuName}'","text":"'${VOEUNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-key-'${VoeuName}'","text":"'${WISHG1PUB}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-g1.json - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-'${VoeuName}'","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json - +# IMAGE DANS IPFS +IVOEUPLAY=$(ipfs add -Hq ~/.zen/tmp/player.png | tail -n 1) +IVOEU=$(ipfs add -Hq ~/.zen/tmp/voeu.png | tail -n 1) +### G1VOEU LIGHTBEAM :: ${PLAYER}_${VoeuName} :: /ipns/${VOEUNS} +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_${VoeuName}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key-'${VoeuName}'","text":"'${VOEUNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-key-'${VoeuName}'","text":"'${WISHG1PUB}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-g1.json +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-'${VoeuName}'","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json # TEXT="

"${VoeuName}"" #:[tag[G1CopierYoutube]] [tag[pdf]] - # Contains QRCode linked to G1VoeuTW and BUTTON listing G1Voeux - #
- TEXT="
- TW G1Voeu "${PLAYER}"

- <\$button class='tc-tiddlylink'> - <\$list filter='[tag[G1"${VoeuName}"]]'> - <\$action-navigate \$to=<> \$scroll=no/> - - Afficher tous vos G1"${VoeuName}" - " +# Contains QRCode linked to G1VoeuTW and BUTTON listing G1Voeux +#
+TEXT="
\n +TW G1Voeu "${PLAYER}"

\n\n +<\$button class='tc-tiddlylink'>\n +<\$list filter='[tag[G1"${VoeuName}"]]'>\n +<\$action-navigate \$to=<> \$scroll=no/>\n +\n +SHOW G1"${VoeuName}"\n +" - # NEW IVEU TIDDLER - echo "## Creation json tiddler : G1${VoeuName} /ipfs/${IVOEU}" - echo '[ - { - "created": "'${MOATS}'", - "title": "'${VoeuName}'", - "type": "'text/vnd.tiddlywiki'", - "astronautens": "'/ipns/${ASTRONAUTENS}'", - "wishns": "'/ipns/${VOEUNS}'", - "qrcode": "'/ipfs/${IVOEUPLAY}'", - "decode": "'/ipfs/${IVOEU}'", - "wish": "'${WISHG1PUB}'", - "g1pub": "'${G1PUB}'", - "text": "'${TEXT}'", - "tags": "'G1Voeu G1${VoeuName} ${PLAYER}'", - "asksalt": "'${HPass}'", - "junesec" : "'${ENCODING}'" - } +# NEW IVEU TIDDLER +echo "## Creation json tiddler : G1${VoeuName} /ipfs/${IVOEU}" +echo '[ +{ +"created": "'${MOATS}'", +"title": "'${VoeuName}'", +"type": "'text/vnd.tiddlywiki'", +"astronautens": "'/ipns/${ASTRONAUTENS}'", +"wishns": "'/ipns/${VOEUNS}'", +"qrcode": "'/ipfs/${IVOEUPLAY}'", +"decode": "'/ipfs/${IVOEU}'", +"wish": "'${WISHG1PUB}'", +"g1pub": "'${G1PUB}'", +"text": "'${TEXT}'", +"tags": "'G1Voeu G1${VoeuName} ${PLAYER}'", +"asksalt": "'${HPass}'", +"junesec" : "'${ENCODING}'" +} ] ' > ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json - rm -f ~/.zen/tmp/newindex.html +rm -f ~/.zen/tmp/newindex.html - echo "Nouveau Voeu ${VoeuName} dans MOA $PSEUDO : http://127.0.0.1:8080/ipns/$ASTRONAUTENS" - tiddlywiki --load $INDEX \ - --deletetiddlers '[tag[voeu]]' \ - --import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-g1.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \ - --import ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json "application/json" \ - --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" +echo "Nouveau Voeu ${VoeuName} dans MOA $PSEUDO : http://127.0.0.1:8080/ipns/$ASTRONAUTENS" +tiddlywiki --load $INDEX \ + --deletetiddlers '[tag[voeu]]' \ + --import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/lightbeam-g1.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \ + --import ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json "application/json" \ + --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" - echo "PLAYER TW Update..." - if [[ -s ~/.zen/tmp/newindex.html ]]; then - echo "___ Mise à jour $INDEX" - cp -f ~/.zen/tmp/newindex.html $INDEX - else - echo "ERROR INTO ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json" - fi +echo "PLAYER TW Update..." +if [[ -s ~/.zen/tmp/newindex.html ]]; then + echo "___ Mise à jour $INDEX" + cp -f ~/.zen/tmp/newindex.html $INDEX +else + echo "ERROR INTO ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/${VoeuName}.voeu.json" +fi - # PRINTING - LP=$(ls /dev/usb/lp* | head -n1) - if [[ ! $LP ]]; then - echo "NO PRINTER FOUND - Plug a Brother QL700 or Add your printer" - else - echo "IMPRESSION VOEU" - brother_ql_create --model QL-700 --label-size 62 ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/result.png > ~/.zen/tmp/toprint.bin 2>/dev/null - sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP - brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/player.png > ~/.zen/tmp/toprint.bin 2>/dev/null - sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP - brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/voeu.png > ~/.zen/tmp/toprint.bin 2>/dev/null - sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP - fi +# PRINTING +LP=$(ls /dev/usb/lp* | head -n1) +if [[ ! $LP ]]; then + echo "NO PRINTER FOUND - Plug a Brother QL700 or Add your printer" +else + echo "IMPRESSION VOEU" + brother_ql_create --model QL-700 --label-size 62 ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/result.png > ~/.zen/tmp/toprint.bin 2>/dev/null + sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP + brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/player.png > ~/.zen/tmp/toprint.bin 2>/dev/null + sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP + brother_ql_create --model QL-700 --label-size 62 ~/.zen/tmp/voeu.png > ~/.zen/tmp/toprint.bin 2>/dev/null + sudo brother_ql_print ~/.zen/tmp/toprint.bin $LP +fi - # COPY QR CODE TO PLAYER ZONE - cp ~/.zen/tmp/player.png ~/.zen/tmp/voeu.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ - echo "${SECRET1}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.salt - echo "${VoeuName}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.title +# COPY QR CODE TO PLAYER ZONE +cp ~/.zen/tmp/player.png ~/.zen/tmp/voeu.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ +echo "${SECRET1}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.salt +echo "${VoeuName}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.title - echo "$LIBRA/ipns/${VOEUNS}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link - cp ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ - cp ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/*.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ +echo "$LIBRA/ipns/${VOEUNS}" > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link +cp ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.link ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ +cp ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/*.png ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/ - # PUBLISHING - echo "ipfs name publish --key=${WISHG1PUB}" - banner="## ${PLAYER} G1WISH READY :: G1${VoeuName} - - G1Voeu Astronaute (TW) : $LIBRA/ipns/$ASTRONAUTENS - ${VoeuName} FLUX Ŋ1 - G1${VoeuName} : $LIBRA/ipns/${VOEUNS} - WISH G1PUB : ${WISHG1PUB}" +# PUBLISHING +echo "ipfs name publish --key=${WISHG1PUB}" +banner="## ${PLAYER} G1WISH READY :: G1${VoeuName} + +G1Voeu Astronaute (TW) : $LIBRA/ipns/$ASTRONAUTENS +${VoeuName} FLUX Ŋ1 +G1${VoeuName} : $LIBRA/ipns/${VOEUNS} +WISH G1PUB : ${WISHG1PUB}" - IPUSH=$(echo "$banner" | ipfs add -q | tail -n 1) - ipfs name publish --key=${WISHG1PUB} /ipfs/$IPUSH 2>/dev/null +IPUSH=$(echo "$banner" | ipfs add -q | tail -n 1) +ipfs name publish --key=${WISHG1PUB} /ipfs/$IPUSH 2>/dev/null - echo $IPUSH > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.chain.${MOATS} +echo $IPUSH > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/.chain.${MOATS} - echo $banner > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner - cat ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner +echo $banner > ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner +cat ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/banner - #~ echo "## TO RECEIVE G1RONDS Creating Cesium+ Profil #### timeout long ... patience ...." - #~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey set --name "G1Voeu ${VoeuName}" --avatar "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/result_qrcode.png" --site "$LIBRA/ipns/${VOEUNS}" #CESIUM+ - #~ [[ ! $? == 0 ]] && echo "G1VOEU CESIUM WALLET PROFILE CREATION FAILED !!!!" +#~ echo "## TO RECEIVE G1RONDS Creating Cesium+ Profil #### timeout long ... patience ...." +#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB}/wish.dunikey set --name "G1Voeu ${VoeuName}" --avatar "$HOME/.zen/game/world/${VoeuName}/${WISHG1PUB}/result_qrcode.png" --site "$LIBRA/ipns/${VOEUNS}" #CESIUM+ +#~ [[ ! $? == 0 ]] && echo "G1VOEU CESIUM WALLET PROFILE CREATION FAILED !!!!" - echo "************************************************************" - #~ echo "COULD LIMIT ON JUNE pour le Voeu ${VoeuName}" - #~ echo ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c \'"${VOEUNS} G1Voeu ${VoeuName}"\' -m - #~ echo "************************************************************" - #~ echo "************************************************************" +echo "************************************************************" +#~ echo "COULD LIMIT ON JUNE pour le Voeu ${VoeuName}" +#~ echo ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c \'"${VOEUNS} G1Voeu ${VoeuName}"\' -m +#~ echo "************************************************************" +#~ echo "************************************************************" - #~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c "$VOEUXNS G1Voeu ${VoeuName}" -m - #~ [[ ! $? == 0 ]] \ - #~ && echo "SOOOOOOOOOOOORRRRRRRY GUY. YOU CANNOT PAY A G1 A NEW WISH - THIS IS FREE TO CHANGE -" - #~ && rm -Rf ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB} \ - #~ && rm -Rf ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ \ - #~ && ipfs key rm ${WISHG1PUB} \ - #~ && tiddlywiki --load ${INDEX} \ - #~ --deletetiddlers '${VoeuName}' \ - #~ --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" \ - #~ && cp -f ~/.zen/tmp/newindex.html $INDEX \ - #~ && echo "G1${VoeuName} FLUX REMOVED" +#~ ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a 1 -p ${WISHG1PUB} -c "$VOEUXNS G1Voeu ${VoeuName}" -m +#~ [[ ! $? == 0 ]] \ +#~ && echo "SOOOOOOOOOOOORRRRRRRY GUY. YOU CANNOT PAY A G1 A NEW WISH - THIS IS FREE TO CHANGE -" +#~ && rm -Rf ~/.zen/game/players/${PLAYER}/voeux/${VoeuName}/${WISHG1PUB} \ +#~ && rm -Rf ~/.zen/game/world/${VoeuName}/${WISHG1PUB}/ \ +#~ && ipfs key rm ${WISHG1PUB} \ +#~ && tiddlywiki --load ${INDEX} \ + #~ --deletetiddlers '${VoeuName}' \ + #~ --output ~/.zen/tmp --render "$:/core/save/all" "newindex.html" "text/plain" \ +#~ && cp -f ~/.zen/tmp/newindex.html $INDEX \ +#~ && echo "G1${VoeuName} FLUX REMOVED" - echo "************************************************************" +echo "************************************************************" exit 0 diff --git a/RUNTIME/UPlanetKEYS_refresh.sh b/RUNTIME/GEOKEYS_refresh.sh similarity index 69% rename from RUNTIME/UPlanetKEYS_refresh.sh rename to RUNTIME/GEOKEYS_refresh.sh index 0ac3edcde..77a22be36 100755 --- a/RUNTIME/UPlanetKEYS_refresh.sh +++ b/RUNTIME/GEOKEYS_refresh.sh @@ -14,6 +14,11 @@ exec 2>&1 >> ~/.zen/tmp/_12345.log echo "==========================" echo "(◕‿◕ ) ${ME} (◕‿◕ ) " +#~ ## CHECK IF ALREADY MErunning +countMErunning=$(ps auxf --sort=+utime | grep -w $ME | grep -v -E 'color=auto|grep' | wc -l) +[[ $countMErunning -gt 2 ]] && echo "$ME already running $countMErunning time" && exit 0 + +echo "(◕‿◕ ) ${ME} starting UPlanet Key Scan _______________________________" ## LOCAL LWKEYS=($(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf )) @@ -31,26 +36,19 @@ echo ${#SKEYS[@]} " swarm SECTORS" RKEYS=($(cat ~/.zen/tmp/swarm/12D*/UPLANET/REGIONS/_*_*/_index.html 2>/dev/null | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf )) echo ${#RKEYS[@]} " swarm REGIONS" -## CHECK FOR ANY ALREADY MErunning -MErunning=$(ps axf --sort=+utime | grep -w ${ME} | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) -[[ $MErunning ]] && echo "${ME} MErunning for too long..." && kill -9 $MErunning - -echo "(◕‿◕ ) ${ME} starting UPlanet Terraformation _______________________________" - ## COMBINE & SHUFFLE KEYS combined=("${LWKEYS[@]}" "${LSKEYS[@]}" "${LRKEYS[@]}" "${WKEYS[@]}" "${SKEYS[@]}" "${RKEYS[@]}") UKEYS=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u)) -echo ${#UKEYS[@]} " JOBS..." +echo "SYNC ${#UKEYS[@]} GEOKEYS..." ## STORAGE FOR IPFS GET UplanetKeyS mkdir -p ~/.zen/tmp/flashmem ## Remove flashmem/UplanetKey older than 3 hours -find ~/.zen/tmp/flashmem -mmin +180 -exec rm -r {} + +find ~/.zen/tmp/flashmem -mmin +180 -exec rm -rf {} + floop=0 medo=0 - for key in ${UKEYS[@]}; do [[ -d ~/.zen/tmp/flashmem/$key ]] \ @@ -69,7 +67,33 @@ for key in ${UKEYS[@]}; do done echo "==========================" -echo "(◕‿◕ ) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#UKEYS[@]} JOBS" +echo "(◕‿◕ ) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#UKEYS[@]} GEOKEYS" +echo "==========================" + +## Search for TW /ipfs/ and refresh +TWS=($(cat ~/.zen/tmp/flashmem/*/TWz/*/_index.html | grep -o "url='/[^']*'"| sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}' | shuf)) +echo "SYNC ${#TWS[@]} TWs..." +floop=0 +medo=0 +for tw in ${TWS[@]}; do + + [[ -d ~/.zen/tmp/flashmem/tw/$tw ]] \ + && echo "$key already copied" && medo=$((medo +1)) && continue + + floop=$((floop +1)) + mkdir -p ~/.zen/tmp/flashmem/tw/$tw + + ipfs --timeout 180s get -o ~/.zen/tmp/flashmem/tw/$tw/index.html /ipns/$tw + [[ $? == 0 ]] \ + && medo=$((medo +1)) && floop=$((floop -1)) \ + || rm -Rf ~/.zen/tmp/flashmem/tw/$tw + + [ $floop -gt 33 ] && break + +done + +echo "==========================" +echo "(✜‿‿✜) ${ME} :: $medo SUCCESS missing $floop KEYS from ${#TWS[@]} TWS" echo "==========================" exit 0 diff --git a/RUNTIME/NODE.refresh.sh b/RUNTIME/NODE.refresh.sh index 8ba33bd31..63381e282 100755 --- a/RUNTIME/NODE.refresh.sh +++ b/RUNTIME/NODE.refresh.sh @@ -73,7 +73,7 @@ if [[ -d ~/.zen/tmp/${IPFSNODEID} ]]; then fi -## CLEANING SWARM 3 DAYS OLD +echo "## CLEANING SWARM 3 DAYS OLD" find ~/.zen/tmp/swarm/ -mtime +3 -type d -exec rm -Rf '{}' \; exit 0 diff --git a/RUNTIME/PLAYER.refresh.sh b/RUNTIME/PLAYER.refresh.sh index cb4f322cc..efd0153d3 100755 --- a/RUNTIME/PLAYER.refresh.sh +++ b/RUNTIME/PLAYER.refresh.sh @@ -18,12 +18,13 @@ PLAYERONE="$1" [[ ! ${PLAYERONE} ]] && PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null)) echo "FOUND : ${PLAYERONE[@]}" +CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev) -echo "RENEWING UPLANET NODE CACHE +echo "RENEWING LOCAL UPLANET REPOSITORY (ADMIN=${CURRENT}) ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/_*.??_*.??" rm -Rf ~/.zen/tmp/${IPFSNODEID}/UPLANET mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET -echo "CLEANING TW NODE CACHE ~/.zen/tmp/${IPFSNODEID}/TW/" +echo "CLEANING IPFSNODEID TW CACHE ~/.zen/tmp/${IPFSNODEID}/TW/" rm -Rf ~/.zen/tmp/${IPFSNODEID}/TW/ ## RUNING FOR ALL LOCAL PLAYERS @@ -31,12 +32,15 @@ for PLAYER in ${PLAYERONE[@]}; do [[ ! -d ~/.zen/game/players/${PLAYER:-undefined} ]] && echo "BAD ${PLAYERONE}" && continue [[ ! $(echo "${PLAYER}" | grep '@') ]] && continue + start=`date +%s` # CLEAN LOST ACCOUNT [[ ! -s ~/.zen/game/players/${PLAYER}/secret.dunikey ]] \ && rm -Rf ~/.zen/game/players/${PLAYER} \ - && echo "${PLAYER} WAS BADLY PLUGGED" \ + && echo "WARNING - ERASE ${PLAYER} - BADLY PLUGGED" \ && continue + YOUSER=$($MY_PATH/../tools/clyuseryomail.sh "${PLAYER}") + ### UPGRADE PLAYER for myos IPFS API ### DOUBLON WITH VISA.new (TO REMOVE) mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api @@ -44,30 +48,30 @@ for PLAYER in ${PLAYERONE[@]}; do MOATS=$(date -u +"%Y%m%d%H%M%S%4N") mkdir -p ~/.zen/tmp/${MOATS} + echo "############################################ ~/.zen/tmp/${MOATS}" echo "##################################################################" - echo "##################################################################" - echo ">>>>> PLAYER : ${PLAYER} >>>>>>>>>>>>> REFRESHING TW STATION" - echo "##################################################################" + echo ">>>>> PLAYER : ${PLAYER} >>>>>>>>>>>>> REFRESHING TW " + echo "################################################ $(date)" PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null) G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null) ASTRONS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null) # Get PLAYER wallet amount - $MY_PATH/../tools/COINScheck.sh $G1PUB > ~/.zen/tmp/g1reveal - cat ~/.zen/tmp/g1reveal ###DEBUG MODE - COINS=$(cat ~/.zen/tmp/g1reveal | tail -n 1) + $MY_PATH/../tools/COINScheck.sh ${G1PUB} > ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck + cat ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck ###DEBUG MODE + COINS=$(cat ~/.zen/tmp/${MOATS}/${PLAYER}.COINScheck | tail -n 1) ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1) echo "+++ WALLET BALANCE _ $COINS (G1) _ / $ZEN ZEN /" - #~ ## ZENCARD ARE ACTIVATED WITH 1 G1 + 10 ZEN (= 1 €OC) ? - echo "##>>>>>>>>>>>>>>>> REFRESH ASTRONAUTE TW" - + #~ ## ZENCARD ARE ACTIVATED WITH 1 G1 + 10 ZEN (= 10 €/OC) ? + echo "## >>>>>>>>>>>>>>>> REFRESH ASTRONAUTE TW" ## REFRESH ASTRONAUTE TW ASTRONAUTENS=$(ipfs key list -l | grep -w ${G1PUB} | cut -d ' ' -f1) + ############### CANNOT FIND PLAYER KEY ########### if [[ ! ${ASTRONAUTENS} ]]; then echo "${PLAYER} TW IS DISCONNECTED... RECREATING IPNS KEYS" - + ## TODO : EXTRACT & DECRYPT secret.june FROM TW ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player @@ -89,234 +93,423 @@ for PLAYER in ${PLAYERONE[@]}; do ################### GET LATEST TW echo "GETTING TW..." - + #################################################################################################### ipfs --timeout 480s get -o ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html /ipns/${ASTRONAUTENS} - + #################################################################################################### ## PLAYER TW IS ONLINE ? if [ ! -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ]; then NOWCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) LASTCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.* | tail -n 1) - echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
" - echo "TW REFRESH FAILED" - echo ">> %%% WARNING %%%" + try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3 + echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + echo "$myIPFS/ipns/${ASTRONAUTENS}'>TW REFRESH FAILED" + echo ">> %%% WARNING TRY LEFT : $try %%%" echo "------------------------------------------------" echo " * LAST" - echo " *NOW" + echo " * NOW" echo "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - ## SEND AN EMAIL ALERT TO PLAYER - echo "TW REFRESH FAILED" > ~/.zen/tmp/result - echo "
------------------------------------------------" >> ~/.zen/tmp/result - echo "" >> ~/.zen/tmp/result - echo "
ANCIENT" >> ~/.zen/tmp/result - echo "
NEW" >> ~/.zen/tmp/result - echo "" >> ~/.zen/tmp/result - echo "
%%% WARNING %%%" >> ~/.zen/tmp/result - echo "
------------------------------------------------" >> ~/.zen/tmp/result - echo "
PLEASE REPAIR BY SAVING ONLINE" >> ~/.zen/tmp/result - echo "OR RUNNING CLI COMMAND : ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result - try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.try 2>/dev/null) || try=3 + ## SEND AN EMAIL ALERT TO PLAYER + echo " +TW LOADING TIMEOUT" > ~/.zen/tmp/result + echo "
------------------------------------------------" >> ~/.zen/tmp/result + echo "
" >> ~/.zen/tmp/result + echo "
TW[-1]: /ipfs/${LASTCHAIN}" >> ~/.zen/tmp/result + echo "
TW[0]: /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result + echo "
" >> ~/.zen/tmp/result + echo "
%%% WARNING %%% $try TRY LEFT %%%" >> ~/.zen/tmp/result + echo "
------------------------------------------------" >> ~/.zen/tmp/result + echo "
ipfs name publish --key=${PLAYER} /ipfs/${NOWCHAIN}" >> ~/.zen/tmp/result + echo "" >> ~/.zen/tmp/result + [[ $try == 0 ]] \ && echo "PLAYER ${PLAYER} UNPLUG" \ - && ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \ + && ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} "ALL" \ && continue try=$((try-1)) echo "$try" > ~/.zen/game/players/${PLAYER}/ipfs/moa/.try - echo " %%% WARNING %%% ${PLAYER} STATION UNPLUG IN $try DAY(S)." >> ~/.zen/tmp/result - $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "UNPLUG WARNING" + + $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/result "TW LOADING TIMEOUT" continue - else - ## FOUND TW - ############################################################# - ## CHECK WHO IS ACTUAL OFFICIAL GATEWAY - tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --output ~/.zen/tmp/${MOATS} \ - --render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' ## MadeInZion Tiddler - - [[ ! -s ~/.zen/tmp/${MOATS}/MadeInZion.json ]] && echo "${PLAYER} MadeInZion : BAD TW (☓‿‿☓) " && continue - - player=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].player) - - [[ ${player} != ${PLAYER} ]] \ - && echo "> BAD PLAYER=$player in TW" \ - && continue \ - || echo "${PLAYER} OFFICIAL TW - (⌐■_■) -" - - ## GET "Astroport" TIDDLER - tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --output ~/.zen/tmp/${MOATS} \ - --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler - BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate) - ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## Raccorded G1Station IPNS address - CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part - [[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \ - && CURCHAIN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # AVOID EMPTY - - echo "CURCHAIN=${CURCHAIN}" - IPNSTAIL=$(echo ${ASTROPORT} | rev | cut -f 1 -d '/' | rev) # Remove "/ipns/" part - echo "TW ASTROPORT GATEWAY : ${ASTROPORT}" - - ###################################### - #### UPLANET GEO COORD EXTRACTION - ## GET "GPS" TIDDLER - 0.00 0.00 (if empty: null) - tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --output ~/.zen/tmp/${MOATS} \ - --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler - UMAPNS=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap) - [[ $UMAPNS == "null" || $UMAPNS == "" ]] && UMAPNS="/ipns/k51qzi5uqu5djg1gqzujq5p60w25mi235gdg0lgkk5qztkfrpi5c22oolrriyu" - LAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat) - [[ $LAT == "null" || $LAT == "" ]] && LAT="0.00" - LON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon) - [[ $LON == "null" || $LON == "" ]] && LON="0.00" - - echo "LAT=${LAT}; LON=${LON}; UMAPNS=${UMAPNS}" - - ## UMAP TODATENS ################ - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/todate.ipfskey "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}" - ipfs key rm "_todate" 2>/dev/null - TODATENS=$(ipfs key import "_todate" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/todate.ipfskey) - ipfs key rm "_todate" 2>/dev/null - - echo "GPS UMAP LINK UPDATE - ${YESTERDATE} : ${myIPFS}${UMAPNS} - ${TODATE} : ${myIPFS}/ipns/${TODATENS}" - ## UPDATE TW GPS Tiddler ############# - sed -i "s~${UMAPNS}~/ipns/${TODATENS}~g" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html - - ## STORE IN PLAYER CACHE - echo "_${LAT}_${LON}" > ~/.zen/game/players/${PLAYER}/.umap - cp ~/.zen/tmp/${MOATS}/GPS.json ~/.zen/game/players/${PLAYER}/ - - ########### ASTROPORT is not IPFSNODEID => EJECT TW - ## MOVED PLAYER (KEY IS KEPT ON LAST CONNECTED ASTROPORT) - ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - ## TODO UNPLUG PLAYER - ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then - echo "> I AM ${IPFSNODEID} : PLAYER MOVED TO ${IPNSTAIL} : EJECTION " - echo "UNPLUG PLAYER" - ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ONE" - echo ">>>> ASTRONAUT ${PLAYER} TW CAPSULE EJECTION TERMINATED" - continue - fi fi ############################################################# - ## GWIP == myIP or TUBE !! + ## FOUND TW ############################################################# - # Connect_PLAYER_To_Gchange.sh : Sync FRIENDS TW + ## CHECK "GPS" Tiddler + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler + [[ ! -s ~/.zen/tmp/${MOATS}/GPS.json || $(cat ~/.zen/tmp/${MOATS}/GPS.json) == "[]" ]] \ + && echo "${PLAYER} GPS : BAD TW (☓‿‿☓) " && continue + + ############################################################# + ## CHECK MadeInZion + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' ## MadeInZion Tiddler + + [[ ! -s ~/.zen/tmp/${MOATS}/MadeInZion.json || $(cat ~/.zen/tmp/${MOATS}/MadeInZion.json) == "[]" ]] \ + && echo "${PLAYER} MadeInZion : BAD TW (☓‿‿☓) " && continue + + player=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].player) + ############################################################# + ## CHECK "AstroID" Tiddler + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'AstroID.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'AstroID' ## AstroID Tiddler + [[ $(cat ~/.zen/tmp/${MOATS}/AstroID.json 2>/dev/null) == "[]" ]] && rm ~/.zen/tmp/${MOATS}/AstroID.json + ########################################## used by Astroport :: Lasertag :: TW plugin ## + ## CHECK "$:/config/NewTiddler/Tags" + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'TWsign.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '$:/config/NewTiddler/Tags' ## $:/config/NewTiddler/Tags Tiddler + signature=$(cat ~/.zen/tmp/${MOATS}/TWsign.json | jq -r .[].text) + echo "${player} SIGNATURE = $signature" + ############################################################ BAD TW SIGNATURE + [[ ${player} != ${PLAYER} || ${PLAYER} != ${signature} ]] \ + && echo "> (☓‿‿☓) BAD PLAYER=$player in TW (☓‿‿☓)" \ + && ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ALL" \ + && continue \ + || echo "${PLAYER} OFFICIAL TW - (⌐■_■) -" + + ############################################################# + ## CHECK "Astroport" TIDDLER + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ## Astroport Tiddler + [[ ! -s ~/.zen/tmp/${MOATS}/Astroport.json || $(cat ~/.zen/tmp/${MOATS}/Astroport.json) == "[]" ]] \ + && echo "${PLAYER} Astroport : BAD TW (☓‿‿☓) " && continue + + BIRTHDATE=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].birthdate) + ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) ## ZenStation IPNS address + CURCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain | rev | cut -f 1 -d '/' | rev) # Remove "/ipfs/" part + [[ ${CURCHAIN} == "" || ${CURCHAIN} == "null" ]] \ + && CURCHAIN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" # AVOID EMPTY + + SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE}) + SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) + DIFF_SECONDS=$(( SNOW - SBIRTH )) + days=$((DIFF_SECONDS / 60 / 60 / 24)) + +################################################## +7 DAYS AstroID !! + ## REMOVE TW OLDER THAN 7 DAYS WITH AstroID + [[ -s ~/.zen/tmp/${MOATS}/AstroID.json && $days -gt 7 ]] \ + && ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ALL" \ + && echo "(#__#) AstroID +7 DAYS = SECURITY ERROR (#__#)" && continue + +################################################## ANOTHER ASTROPORT !! + IPNSTAIL=$(echo ${ASTROPORT} | rev | cut -f 1 -d '/' | rev) # Remove "/ipns/" part + ########### ASTROPORT is not IPFSNODEID => EJECT TW + if [[ ${IPNSTAIL} != ${IPFSNODEID} || ${IPNSTAIL} == "_ASTROPORT_" ]]; then + echo "> PLAYER MOVED TO ${IPNSTAIL} : UNPLUG " + ${MY_PATH}/PLAYER.unplug.sh "${HOME}/.zen/game/players/${PLAYER}/ipfs/moa/index.html" "${PLAYER}" "ONE" + echo ">>>> CIAO ${PLAYER}" + continue + fi + + ################ VERIFICATIONS DONE ###################### + echo "ASTROPORT ZenStation : ${ASTROPORT}" + echo "CURCHAIN=${CURCHAIN}" + echo "================================== TW $days days old" + + ###################################### + #### UPLANET GEO COORD EXTRACTION + ## GET "GPS" TIDDLER - 0.00 0.00 (if empty: null) + ZLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat) + [[ $ZLAT == "null" || $ZLAT == "" ]] && ZLAT="0.00" + ZLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon) + [[ $ZLON == "null" || $ZLON == "" ]] && ZLON="0.00" + + LAT=$(makecoord ${ZLAT}) + LON=$(makecoord ${ZLON}) + SLAT="${LAT::-1}" + SLON="${LON::-1}" + RLAT="$(echo ${LAT} | cut -d '.' -f 1)" + RLON="$(echo ${LON} | cut -d '.' -f 1)" + ## SEARCH for TODATENS in SWARM then LOCAL + ## ZEN STATION + MYNS=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS) + UMAPG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB) + ## BOOSTRAP SCENARIO + [[ $MYNS == "" ]] \ + && MYNS=$(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS) \ + && UMAPG1PUB=$(cat ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB) + # Search in flashmem + if [[ ${MYNS} != "" ]]; then + echo "UMAP NEXTNS" + UMAPNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.umapns | cut -d ':' -f 3) + cat ~/.zen/tmp/flashmem/${MYNS}/_next.umapns + echo "SECTOR NEXTNS" + SECTORNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.sectorns | cut -d ':' -f 3) + cat ~/.zen/tmp/flashmem/${MYNS}/_next.sector + echo "REGION NEXTNS" + REGIONNS=$(cat ~/.zen/tmp/flashmem/${MYNS}/_next.regionns | cut -d ':' -f 3) + cat ~/.zen/tmp/flashmem/${MYNS}/_next.region + fi + + UMAPG1PUB=$(${MY_PATH}/../tools/keygen "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}") + + ## CALCULATE UMAP TODATENS ################ + ###################################### + ipfs key rm "temp" >/dev/null 2>&1 + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/todate.ipfskey "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}" + UMAPNS=$(ipfs key import "temp" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/todate.ipfskey) + + echo "UMAP _${LAT}_${LON} UMAPNS=/ipns/${UMAPNS}" + + SECTOR="_${LAT::-1}_${LON::-1}" + ## CALCULATE SECTOR TODATENS ################ + ipfs key rm "temp" >/dev/null 2>&1 + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/sectodate.ipfskey "${TODATE}${UPLANETNAME}${SECTOR}" "${TODATE}${UPLANETNAME}${SECTOR}" + TODATESECTORNS=$(ipfs key import "temp" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/sectodate.ipfskey) + ipfs key rm "temp" >/dev/null 2>&1 + ############################################# + # MAKE TODATE "GPS" TIDDLER + cat ${MY_PATH}/../templates/data/GPS.json \ + | sed -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + -e "s~_LAT_~${LAT}~g" \ + -e "s~_LON_~${LON}~g" \ + -e "s~_UMAPNS_~${UMAPNS}~g" \ + -e "s~_SECTORTW_~/ipns/${TODATESECTORNS}/TW~g" \ + > ~/.zen/tmp/${MOATS}/GPS.json + + ################# PERSONAL VDO.NINJA ADDRESS) + PHONEBOOTH=${PLAYER/@/_} + PHONEBOOTH=${PHONEBOOTH/\./_} + PHONEBOOTH=${PHONEBOOTH/-/_} + + # MAKE "ALLO" TIDDLER + cat ${MY_PATH}/../templates/data/VISIO.json \ + | sed -e "s~_IPFSNINJA_~${VDONINJA}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + -e "s~_PHONEBOOTH_~${PHONEBOOTH}~g" \ + > ~/.zen/tmp/${MOATS}/VISIO.json + + ## UPDATE PLAYER CACHE + echo "_${LAT}_${LON}" > ~/.zen/game/players/${PLAYER}/.umap + cp ~/.zen/tmp/${MOATS}/GPS.json ~/.zen/game/players/${PLAYER}/ + + ##################################################################### + # (RE)MAKE "CESIUM" TIDDLER + echo "Create CESIUM Tiddler" + cat ${MY_PATH}/../templates/data/CESIUM.json \ + | sed -e "s~_G1PUB_~${G1PUB}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_CESIUMIPFS_~${CESIUMIPFS}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + > ~/.zen/tmp/${MOATS}/CESIUM.json + + ##################################################################### + ########## $:/moa picture ## lightbeams replacement ############### + ## GET $:/moa Tiddlers ####################################### START + echo "GET $:/moa Tiddlers" + ###################################################### [tag[$:/moa]] + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'FRIENDS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[$:/moa]]' ## $:/moa EMAIL Tiddlers + ##################################################################### + fplayers=($(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq -rc .[].title)) + echo "${fplayers[@]}" + UPLAYERSTIDS=() + for fp in ${fplayers[@]}; do + + [[ ! "${fp}" =~ ^[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]] && echo "BAD ${fp} FORMAT" && continue + [[ "${fp}" == "${PLAYER}" ]] && echo "IT'S ME - CONTINUE" && continue + + FPLAYER=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .player') + [[ $FPLAYER == 'null' || $FPLAYER == '' ]] && echo "FPLAYER null - CONTINUE" && continue + + FTW=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .tw') + [[ ${FTW} == "/ipns/" || ${FTW} == "null" || ${FTW} == "" ]] && echo "WEIRD FTW ${FTW} - CONTINUE" && continue + + FG1PUB=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .g1pub') + [[ $FG1PUB == 'null' || $FG1PUB == '' ]] && echo "FG1PUB null - CONTINUE" && continue + + IHASH=$(cat ~/.zen/tmp/${MOATS}/FRIENDS.json | jq .[] | jq -r 'select(.title=="'${fp}'") | .text' | sha256sum | cut -d ' ' -f 1) + + echo ":: coucou :: $FPLAYER :: (ᵔ◡◡ᵔ) ::" + echo "TW: $FTW" + echo "G1: $FG1PUB" + echo "IHASH: $IHASH" + UPLAYERSTIDS=("${UPLAYERSTIDS[@]}" "[[${FPLAYER^^}|${FPLAYER^^}]]") + + ## GET ORIGINH FROM LAST KNOWN TW STATE + mkdir -p ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER} + if [[ -s ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html ]]; then + tiddlywiki --load ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' "${FPLAYER}.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${FPLAYER}" ## GET ORIGIN + + ORIGINH=$(cat ~/.zen/tmp/${MOATS}/${FPLAYER}.json | jq -r '.[].text' | sha256sum | cut -d ' ' -f 1) + echo "ORIGINH: $ORIGINH" + fi + + ( ## REFRESH LOCAL PLAYER CACHE with FRIEND ACTUAL TW (&) will be used TOMORROW + ipfs --timeout 480s cat ${FTW} > ~/.zen/game/players/${PLAYER}/FRIENDS/${FPLAYER}/index.html + ) & + + ## CHECK ALREADY IN ${FPLAYER^^} IHASH + rm -f ~/.zen/tmp/${MOATS}/finside.json + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'finside.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' "${FPLAYER^^}" ## ${FPLAYER^^} autoload Tiddlers + + INSIDEH=$(cat ~/.zen/tmp/${MOATS}/finside.json | jq -rc '.[].ihash') + echo "INSIDEH: $INSIDEH" + + ## UPDATE IF IHASH CHANGED -> New drawing => Friend get informed + if [[ -z $INSIDEH || $INSIDEH != $IHASH || $ORIGINH != $INSIDEH ]]; then + cat ${MY_PATH}/../templates/data/_UPPERFPLAYER_.json \ + | sed -e "s~_UPPERFPLAYER_~${FPLAYER^^}~g" \ + -e "s~_FPLAYER_~${FPLAYER}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_IHASH_~${IHASH}~g" \ + -e "s~_FRIENDTW_~${FTW}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + > ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json + + echo "Insert New ${FPLAYER^^}.json" + #~ cat ~/.zen/tmp/${MOATS}/${FPLAYER^^}.json | jq + + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER^^}.json 'application/json' \ + --output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \ + --render "$:/core/save/all" "newindex.html" "text/plain" + [[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \ + && cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + && rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \ + || echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR" + + if [[ $ORIGINH != $INSIDEH ]]; then + echo "ORIGINH Update" + rm -f ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html + tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + --import ${HOME}/.zen/tmp/${MOATS}/${FPLAYER}.json 'application/json' \ + --output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \ + --render "$:/core/save/all" "newindex.html" "text/plain" + [[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \ + && cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ + && rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \ + || echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR" + fi + + fi + + done + ## GET $:/moa Tiddlers ####################################### END + + ##################################################################### + echo "${UPLAYERSTIDS[@]}" + UPLAYERSTIDS_STR="" + for item in "${UPLAYERSTIDS[@]}"; do + UPLAYERSTIDS_STR+=" $item" + done + # Trim leading space + UPLAYERSTIDS_STR="${UPLAYERSTIDS_STR# }" + ###################################### + # (RE)MAKE "SECTORTW_NEWS" TIDDLER + cat ${MY_PATH}/../templates/data/SECTORTW_NEWS.json \ + | sed -e "s~_SECTOR_~${SECTOR}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_UPLANET_~${myUPLANET}~g" \ + -e "s~_UPLAYERSTIDS_~${UPLAYERSTIDS_STR}~g" \ + -e "s~_SECTORTW_~/ipns/${TODATESECTORNS}/TW~g" \ + > ~/.zen/tmp/${MOATS}/SECTORTW_NEWS.json + + echo "SECTOR $SECTOR SECTORTW=/ipns/${TODATESECTORNS}/TW" + + ############################################################# + # Connect_PLAYER_To_Gchange.sh : Sync FRIENDS TW - TODO : REWRITE ############################################################## - echo "##################################################################" + #~ echo "##################################################################" - [[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]] \ - && echo "## Connect_PLAYER_To_Gchange.sh" \ - && ${MY_PATH}/../tools/Connect_PLAYER_To_Gchange.sh "${PLAYER}" \ - || echo "$COINS <= 1 G1 + 10 ẑen : stars exchange (★★★★★) level" + #~ [[ $(echo "$COINS >= 500" | bc -l) -eq 1 ]] \ + #~ && echo "## Connect_PLAYER_To_Gchange.sh" \ + #~ && ${MY_PATH}/../tools/Connect_PLAYER_To_Gchange.sh "${PLAYER}" \ + #~ || echo "$COINS <= 1 G1 + 10 ẑen : bypass Gchange stars exchange (★★★★★)" - # G1PalPay - 1 G1 mini -> Check for G1 TX incoming comments # - if [[ $(echo "$COINS >= 1" | bc -l) -eq 1 ]]; then - ########### + ############################################################## + # G1PalPay - 2 G1 mini -> Check for G1 TX incoming comments # + ############################################################## + if [[ $(echo "$COINS >= 2" | bc -l) -eq 1 ]]; then + ############################################################## # G1PalPay.sh # ############################################################## echo "## RUNNING G1PalPay Wallet Monitoring " ${MY_PATH}/G1PalPay.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}" - ############### + ############################################################## # VOEUX.create.sh # ############################################################## ${MY_PATH}/VOEUX.create.sh ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html "${PLAYER}" "${G1PUB}" - ############### + ############################################################## # VOEUX.refresh.sh # ############################################################## ${MY_PATH}/VOEUX.refresh.sh "${PLAYER}" "${MOATS}" ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html else - echo "> ZenCard is not activated ($ZEN)" + echo "> ZenCard not activated ($ZEN ZEN)" fi - ### CHECK FOR pending (TODO! In case PAY4SURE have abandonned pendings) - - - ################### - # REFRESH PLAYER_feed # ################################## - echo "# TW : GW API + LightBeam Feed + Friends" - TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3) - - FEEDNS=$(ipfs key list -l | grep -w "${PLAYER}_feed" | cut -d ' ' -f 1) - [[ ! ${FEEDNS} ]] && echo ">>>>> ERROR ${PLAYER}_feed IPNS KEY NOT FOUND - ERROR" && continue - - # WRITE lightbeam params - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json - - ########################### - # Tiddlers controling GW & API - #~ echo '[{"title":"$:/ipfs/saver/api/http/localhost/5001","tags":"$:/ipfs/core $:/ipfs/saver/api","text":"'$(myPlayerApiGw)'"}]' > ~/.zen/tmp/${MOATS}/5001.json - #~ echo '[{"title":"$:/ipfs/saver/gateway/http/localhost","tags":"$:/ipfs/core $:/ipfs/saver/gateway","text":"'$myIPFS'"}]' > ~/.zen/tmp/${MOATS}/8080.json - - ## COPY DATA PRODUCED BY GCHANGE STAR EXTRACTION - FRIENDSFEEDS=$(cat ~/.zen/tmp/${IPFSNODEID}/RSS/${PLAYER}/FRIENDSFEEDS 2>/dev/null) - echo "★★★★★ FRIENDS FEEDS : "${FRIENDSFEEDS} - ASTRONAUTES=$(cat ~/.zen/tmp/${IPFSNODEID}/RSS/${PLAYER}/ASTRONAUTES 2>/dev/null) - echo "★★★★★ FRIENDS TW : "${ASTRONAUTES} - - ## Change TW FRIENDFEED ie PLAYER RSS IPNS (must fix TW plugin to work) - #~ echo '[{"title":"$:/plugins/astroport/lightbeams/state/subscriptions","text":"'${FRIENDSFEEDS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/friends.json - #~ ## ADD --import "$HOME/.zen/tmp/${MOATS}/friends.json" "application/json" \ ## MANUAL TW RSS REGISTRATION - - ## WRITE TIDDLERS IN TW + ## PATCH : RESTORE PLAYER GPS.json (protect cache erased by WISH treatment) + cp -f ~/.zen/game/players/${PLAYER}/GPS.json ~/.zen/tmp/${MOATS}/ + ## WRITE TIDDLERS IN TW SECTORTW_NEWS.json tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/VISIO.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/CESIUM.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/SECTORTW_NEWS.json "application/json" \ --output ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} --render "$:/core/save/all" "newindex.html" "text/plain" ## CHECK IT IS OK [[ -s ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ]] \ && cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - && rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html + && rm ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/newindex.html \ + || echo "ERROR - CANNOT CREATE TW NEWINDEX - ERROR" ########################### #################### - - ## ANY CHANGES ? + ## TW NEWINDEX .... ##### ############################################################## - DIFF=$(diff ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html) - if [[ $DIFF ]]; then - echo "DIFFERENCE DETECTED !! " - echo "Backup & Upgrade TW local copy..." - cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html + echo "LOCAL BACKUP + MICROLEDGER TW" + cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - [[ -s ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain ]] \ - && ZCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) \ - && echo "# CHAIN : ${CURCHAIN} -> ${ZCHAIN}" \ - && [[ ${CURCHAIN} != "" && ${ZCHAIN} != "" ]] \ - && sed -i "s~${CURCHAIN}~${ZCHAIN}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - else - ## COUNT NO CHANGE - try=$(cat ~/.zen/game/players/${PLAYER}/ipfs/_nochange 2>/dev/null) || try=0 - ((try++)) && echo $try > ~/.zen/game/players/${PLAYER}/ipfs/_nochange - echo "NO CHANGE $try TIMES" - fi - ############################################################## + [[ -s ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain ]] \ + && ZCHAIN=$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain) \ + && echo "# CHAIN : ${CURCHAIN} -> ${ZCHAIN}" \ + && [[ ${CURCHAIN} != "" && ${ZCHAIN} != "" ]] \ + && sed -i "s~${CURCHAIN}~${ZCHAIN}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ################################################## - ############################### LOCAL "MICRO LEDGER" - ################## UPDATING ${PLAYER}/ipfs/moa - [[ $DIFF ]] && cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \ - ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats) + ######## UPDATING ${PLAYER}/ipfs/moa/.chain + cp ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain \ + ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain.$(cat ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats) + ########################################## + ## TW IPFS ADD & PUBLISH + ########################################## TW=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1) - ipfs name publish --key=${PLAYER} /ipfs/${TW} - - [[ $DIFF ]] && echo ${TW} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain + ipfs --timeout 720s name publish --key=${PLAYER} /ipfs/${TW} + ## LOCAL PLAYER CACHING + echo ${TW} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain echo ${MOATS} > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats echo "================================================" @@ -324,51 +517,62 @@ for PLAYER in ${PLAYERONE[@]}; do echo " $myIPFSGW/ipns/${ASTRONAUTENS}" echo "================================================" + ################### + # REFRESH PLAYER_feed KEY echo "(☉_☉ ) (☉_☉ ) (☉_☉ ) RSS" + ## CREATING 30 DAYS JSON RSS STREAM tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]' + --output ~/.zen/game/players/${PLAYER}/ipfs \ + --render '.' "${PLAYER}.rss.json" 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]!externalTiddler[yes]!tag[load-external]]' [[ ! -s ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json ]] \ && echo "NO ${PLAYER} RSS - BAD " echo "~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json" - ## TODO CREATING 30 DAYS XML RSS STREAM + ######################################################## + #### PLAYER ACCOUNT HAVE NEW TIDDLER or NOT ######### + if [[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]]; then + echo "ALERT -- RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --" + ## DEAD PLAYER ?? + if [[ ${DIFF_SECONDS} -eq $(( 27 * 24 * 60 * 60 )) ]]; then + echo "

WARNING.

Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert + echo "

TW : ${PLAYER}

ADD MORE ZEN ($ZEN) " >> ~/.zen/tmp/alert + + ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT" + echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days" + fi + if [[ ${DIFF_SECONDS} -gt $(( 29 * 24 * 60 * 60 )) ]]; then + #################################### UNPLUG ACCOUNT + echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN" + ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} "ALL" + continue + fi + + ## PAY 1 ZEN TO UMAPG1PUB + ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "0.1" "${UMAPG1PUB}" "UPLANET:TW:${YOUSER}:/ipfs/${TW}" + + else + + ### PLAYER ALIVE PUBLISH RSS & + FEEDNS=$(ipfs key list -l | grep -w "${PLAYER}_feed" | cut -d ' ' -f 1) + [[ ${FEEDNS} ]] \ + && IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \ + && echo "Publishing ${PLAYER}_feed: /ipns/${FEEDNS} => /ipfs/${IRSS}" \ + && ipfs --timeout 300s name publish --key="${PLAYER}_feed" /ipfs/${IRSS} \ + || echo ">>>>> ERROR ${PLAYER}_feed IPNS KEY NOT FOUND - ERROR" + + fi + + + ## TODO CREATING 30 DAYS XML RSS STREAM ??? ## https://talk.tiddlywiki.org/t/has-anyone-generated-an-rss-feed-from-tiddlywiki/966/26 # tiddlywiki.js --load my-wiki.html --render "[[$:/plugins/sq/feeds/templates/rss]]" "feed.xml" "text/plain" "$:/core/templates/wikified-tiddler" ### $:/plugins/sycom/atom-feed/atom.xml #~ tiddlywiki --load ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html \ - #~ --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.xml" 'text/plain' "$:/core/templates/wikified-tiddler" 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]' + #~ --output ~/.zen/game/players/${PLAYER}/ipfs --render '.' "${PLAYER}.rss.xml" 'text/plain' "$:/core/templates/wikified-tiddler" 'exportFilter' '[days:created[-30]!is[system]!tag[G1Voeu]]' - SBIRTH=$(${MY_PATH}/../tools/MOATS2seconds.sh ${BIRTHDATE}) - SNOW=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) - DIFF_SECONDS=$(( SNOW - SBIRTH )) - days=$((DIFF_SECONDS / 60 / 60 / 24)) - echo "PLAYER TW was created $days days ago" - - ################################## - #### PLAYER ACCOUNT CLEANING ######### - ## IF ZEN < 11 - ## && EMPTY RSS + 30 DAYS BIRTHDATE - ## only for less 90 days TW ? && ${DIFF_SECONDS} -lt $(( 90 * 24 * 60 * 60 )) ???? - ## ==> UNPLUG - [[ $(cat ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json) == "[]" ]] \ - && echo "RSS IS EMPTY -- COINS=$COINS / ZEN=$ZEN --" \ - && [[ $(echo "$COINS < 2.1" | bc -l) -eq 1 ]] \ - && [[ ${DIFF_SECONDS} -gt $(( 27 * 24 * 60 * 60 )) ]] \ - && echo "

WARNING.

Your TW will be UNPLUGGED and stop being published..." > ~/.zen/tmp/alert \ - && echo "

TW : ${PLAYER}

ZEN=$ZEN " >> ~/.zen/tmp/alert \ - && ${MY_PATH}/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/alert "TW ALERT" \ - && echo "<<<< PLAYER TW WARNING <<<< ${DIFF_SECONDS} > ${days} days" \ - && [[ ${DIFF_SECONDS} -gt $(( 30 * 24 * 60 * 60 )) ]] \ - && echo ">>>> PLAYER TW UNPLUG >>>>> ${days} days => BYE BYE ${PLAYER} ZEN=$ZEN" \ - && ${MY_PATH}/PLAYER.unplug.sh ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ${PLAYER} \ - && continue - #################################### UNPLUG ACCOUNT - - IRSS=$(ipfs add -q ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json | tail -n 1) \ - && ipfs name publish --key="${PLAYER}_feed" /ipfs/${IRSS} ######################### REPLACE TW with REDIRECT to latest IPFS or IPNS (reduce 12345 cache size) [[ ! -z ${TW} ]] && TWLNK="/ipfs/${TW}" || TWLNK="/ipns/${ASTRONAUTENS}" @@ -381,32 +585,46 @@ for PLAYER in ${PLAYERONE[@]}; do ################################################# ################### COPY DATA TO UP LEVEL GRIDS ################################################# - if [[ ${LAT} && ${LON} ]]; then - ## SECTOR BANK COORD - SECLAT="${LAT::-1}" - SECLON="${LON::-1}" - ## REGION - REGLAT=$(echo ${LAT} | cut -d '.' -f 1) - REGLON=$(echo ${LON} | cut -d '.' -f 1) + ## SECTOR BANK COORD + SECLAT="${LAT::-1}" + SECLON="${LON::-1}" + ## REGION + REGLAT=$(echo ${LAT} | cut -d '.' -f 1) + REGLON=$(echo ${LON} | cut -d '.' -f 1) - echo "/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}" - ## IPFSNODEID 12345 CACHE UPLANET/__/_*_*/_*.?_*.?/_*.??_*.?? - mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ + echo "/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}" + ## IPFSNODEID 12345 CACHE UPLANET/__/_*_*/_*.?_*.?/_*.??_*.?? + mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ - cp ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json \ - ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ + cp ~/.zen/game/players/${PLAYER}/ipfs/${PLAYER}.rss.json \ + ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ + #### CREATE ALL JSON COMPILATION + ${MY_PATH}/../tools/json_dir.all.sh \ + ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ - ${MY_PATH}/../tools/json_dir.all.sh ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/RSS/ - mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER} - cp ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/index.html ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/ - - echo "" > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/_index.html - - fi + ## IPFS PLAYER TW # + mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER} + # /ipfs/${TW} = /TW/${PLAYER}/index.html + echo "${TODATE}:${PLAYER}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/index.html + # /ipns/${ASTRONAUTENS} = /TW/${PLAYER}/_index.html + echo "${PLAYER}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/TW/${PLAYER}/_index.html + ## IPNS UMAP _index.html ## + echo "${TODATE}:_${LAT}_${LON}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON}/_index.html ls -al ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${REGLAT}_${REGLON}/_${SECLAT}_${SECLON}/_${LAT}_${LON} 2>/dev/null echo "(☉_☉ ) (☉_☉ ) (☉_☉ )" + ##################################################################### + ## DAY=7 : SEND 3.1 G1 to PLAYER + 3.1 G1 to UMAP + [[ ${days} -eq 7 && "${CURRENT}" != "${PLAYER}" && "${CURRENT}" != "" ]] \ + && echo "7 DAY. PLAYER STEP ONE SUCCEED." \ + && MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \ + && ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "3.1" "${G1PUB}" "UPLANET:WELCOME:${MIUSER}:${YOUSER}" \ + && echo "UPLANET:WELCOME:${MIUSER}:${YOUSER}" && echo "(⌐■_■) ~~~ OFFICIAL ~~ _${LAT}_${LON} ~~~ $ASTRONAUTENS" + ## MAINTAIN R/RW TW STATE [[ ${ASTRONS} == "" ]] \ && echo "${PLAYER} DISCONNECT" \ @@ -418,6 +636,10 @@ for PLAYER in ${PLAYERONE[@]}; do rm -Rf ~/.zen/tmp/${MOATS} echo + end=`date +%s` + dur=`expr $end - $start` + echo "${PLAYER} refreshing took $dur seconds (${MOATS})" + done echo "============================================ PLAYER.refresh DONE." diff --git a/RUNTIME/PLAYER.unplug.sh b/RUNTIME/PLAYER.unplug.sh index d75fe7827..35aabe263 100755 --- a/RUNTIME/PLAYER.unplug.sh +++ b/RUNTIME/PLAYER.unplug.sh @@ -30,7 +30,9 @@ mkdir -p ~/.zen/tmp/${MOATS} --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' ## GPS Tiddler TWMAPNS=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap) LAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat) + [[ $LAT == "null" || $LAT == "" ]] && LAT="0.00" LON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon) + [[ $LON == "null" || $LON == "" ]] && LON="0.00" echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}" rm ~/.zen/tmp/${MOATS}/GPS.json @@ -57,22 +59,23 @@ mkdir -p ~/.zen/tmp/${MOATS} ALL="ALL" [[ $ONE == "ONE" ]] && ALL=1 - [[ $ALL == "ALL" ]] && SECTORG1PUB=${WORLDG1PUB} && echo "DEST = WORLDG1PUB" + [[ $ALL == "ALL" ]] && SECTORG1PUB=${WORLDG1PUB} && echo "DEST = WORLDG1PUB: ${WORLDG1PUB}" [[ ! -z ${SECTORG1PUB} ]] \ && echo "> PAY4SURE ZEN:${ALL} WALLET MOVE" \ && ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${ALL}" "${SECTORG1PUB}" "UNPLUG:${ALL}" ## REMOVING PLAYER from ASTROPORT + G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) ipfs key rm ${PLAYER}; ipfs key rm ${PLAYER}_feed; ipfs key rm ${G1PUB}; for vk in $(ls -d ~/.zen/game/players/${PLAYER}/voeux/*/* 2>/dev/null | rev | cut -d / -f 1 | rev); do echo "removing wish ${vk}" - ipfs key rm ${vk} + [[ ${vk} != "" ]] && ipfs key rm ${vk} done ## SEND PLAYER LAST KNOW TW TW=$(ipfs add -Hq ${INDEX} | tail -n 1) -${MY_PATH}/../tools/mailjet.sh "${PLAYER}" "

Ciao ${PLAYER},

Your TW is unplugged from Astroport : TW ARCHIVE.
$(cat ~/.zen/game/players/${PLAYER}/secret.june)

May the force be with you.

" "BYE BYE MESSAGE" +${MY_PATH}/../tools/mailjet.sh "${PLAYER}" "

Ciao ${PLAYER},

Your TW is unplugged from Astroport : TW (${TW}).
$(cat ~/.zen/game/players/${PLAYER}/secret.june)

May the force be with you.

" "BYE BYE MESSAGE" echo "PLAYER IPNS KEYS UNPLUGED" echo "#######################" diff --git a/RUNTIME/REGION.refresh.sh b/RUNTIME/REGION.refresh.sh index e9bed14f5..b8031c9dc 100755 --- a/RUNTIME/REGION.refresh.sh +++ b/RUNTIME/REGION.refresh.sh @@ -31,9 +31,15 @@ for i in $*; do UMAPS=("$i" ${UMAPS[@]}) done -[[ ${#UMAPS[@]} == 0 ]] && UMAPS="_0.00_0.00" +## NO $i PARAMETERS - GET ALL UMAPS +if [[ ${#UMAPS[@]} == 0 ]]; then + MEMAPS=($(ls -td ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_*.?_*.?/* 2>/dev/null | rev | cut -d '/' -f 1 | rev | sort | uniq)) + SWARMMAPS=($(ls -Gd ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_*.?_*.?/* 2>/dev/null | rev | cut -d '/' -f 1 | rev | sort | uniq)) + combined=("${MEMAPS[@]}" "${SWARMMAPS[@]}") + UMAPS=($(echo "${combined[@]}" | tr ' ' '\n' | sort -u)) +fi -######## INIT REGIONS ######################## +######## DETERMINE REGIONS FOR ALL UMAPS ################ for UMAP in ${UMAPS[@]}; do LAT=$(echo ${UMAP} | cut -d '_' -f 2) @@ -57,8 +63,8 @@ REGIONS=($(echo "${MYREGIONS[@]}" | tr ' ' '\n' | sort -u)) echo "ACTIVATED REGIONS : ${REGIONS[@]}" for REGION in ${REGIONS[@]}; do - - echo "_____REGION ${REGION}" + echo "-------------------------------------------------------------------" + echo "_____REGION ${REGION} $(date)" mkdir -p ~/.zen/tmp/${MOATS}/${REGION} REGLAT=$(echo ${REGION} | cut -d '_' -f 2) REGLON=$(echo ${REGION} | cut -d '_' -f 3) @@ -94,7 +100,8 @@ for REGION in ${REGIONS[@]}; do ## GET from IPNS ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${REGION}/ /ipns/${YESTERDATEREGIONNS}/ # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - + ## SHOULD NEED 12 SIGNATURES + ## FULL REFRESH DEMO... ZEN CHAINING COMING LATER # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mkdir -p ~/.zen/tmp/${MOATS}/${REGION}/RSS rm -f ~/.zen/tmp/${MOATS}/${REGION}/RSS/_${REGLAT}_${REGLON}.week.rss.json @@ -137,7 +144,7 @@ for REGION in ${REGIONS[@]}; do ################################### ## NODE PUBLISH REGION TODATENS LINK - echo "" \ + echo "/_${REGLAT}_${REGLON}" \ > ~/.zen/tmp/${IPFSNODEID}/UPLANET/REGIONS/_${REGLAT}_${REGLON}/_index.html #~ ## DEMO : PREPARE Ask.IA link - PROD will be launched during RUNTIME. @@ -148,7 +155,7 @@ for REGION in ${REGIONS[@]}; do # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo "Numbers of REGION WEEK RSS : ${NL} + ${NS} : "${TOTL} - rm ~/.zen/tmp/${MOATS}/${REGION}/N_* + rm ~/.zen/tmp/${MOATS}/${REGION}/N_* 2>/dev/null echo ${TOTL} > ~/.zen/tmp/${MOATS}/${REGION}/N_${TOTL} @@ -162,7 +169,7 @@ for REGION in ${REGIONS[@]}; do fi IPFSPOP=$(ipfs add -rwq ~/.zen/tmp/${MOATS}/${REGION}/* | tail -n 1) - ipfs name publish -k ${TODATE}${REGIONG1PUB} /ipfs/${IPFSPOP} + ipfs --timeout 180s name publish -k ${TODATE}${REGIONG1PUB} /ipfs/${IPFSPOP} ipfs key rm ${REGIONG1PUB} ${YESTERDATE}${REGIONG1PUB} > /dev/null 2>&1 diff --git a/RUNTIME/RSS2UPlanetSECTORTW.sh b/RUNTIME/RSS2UPlanetSECTORTW.sh index 3feac280b..e10a766eb 100755 --- a/RUNTIME/RSS2UPlanetSECTORTW.sh +++ b/RUNTIME/RSS2UPlanetSECTORTW.sh @@ -18,14 +18,16 @@ SECTOR=$2 ## Sector identifier _0.0_0.0 MOATS=$3 ## temp cache access INDEX=$4 ## SECTOR TW index file +echo + [[ ! -s ${RSS} ]] && echo "BAD RSS INPUT" && exit 1 +[[ "$(cat ${RSS})" == "[]" ]] && echo "EMPTY RSS " && exit 0 + [[ ! -d ~/.zen/tmp/${MOATS}/${SECTOR}/ ]] && echo "BAD UPLANET CONTEXT" && exit 1 [[ ! -s ${INDEX} ]] \ && sed "s~_SECTOR_~${SECTOR}~g" ${MY_PATH}/../templates/twsector.html > ${INDEX} \ && echo "REFRESHING SECTOR FROM empty TEMPLATE *****" -echo -echo ## EXTRACT PLAYER FROM RSS FILE NAME PLAYER=$(echo ${RSS} | rev | cut -d '/' -f 1 | rev | sed "s~.rss.json~~g") ## GET PLAYER INFORMATION @@ -43,10 +45,10 @@ signatures=0 while read title; do - [[ ${floop} -gt 2 ]] && echo "0lder Tiddlers are similaR... BREAK" && break + [[ ${floop} -gt 1 ]] && echo "0lder Tiddlers are similaR... BREAK LOOP" && break - # FILTER Astroport and les than 4 characters title Tiddlers (ex: GPS, ...). extend to allow personnal Tiddlers - [[ ${title} == "GettingStarted" || ${title::4} == ${title} || ${title} == "AstroID" || ${title} == "Voeu1.png" || ${title} == "Astroport" || ${title} == "MadeInZion" || ${title} == "G1Visa" || ${title} == "ZenCard" || ${title::5} == "Draft" ]] \ + # FILTER "UPPERCASE" + Astroport Tid, less than 4 characters title Tiddlers (ex: GPS, ...). + [[ ${title} == "GettingStarted" || "${title^^}" == "${title}" || "${title::3}" == '$:/' || ${title::4} == ${title} || ${title} == "AstroID" || ${title} == "Voeu1.png" || ${title} == "Astroport" || ${title} == "MadeInZion" || ${title} == "G1Visa" || ${title} == "ZenCard" || ${title::5} == "Draft" ]] \ && echo "FILTERED TITLE ${title}" && continue ## CHECK FOR TIDDLER WITH SAME TITTLE IN SECTOR TW @@ -59,7 +61,7 @@ while read title; do TMPTAGS=$(cat ~/.zen/tmp/${MOATS}/TMP.json | jq -r .[].tags) TMPEMAILS=($(echo "$TMPTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b")) TMPSIGN=${#TMPEMAILS[@]} - echo "INSIDE TIDDLER HAVE ${TMPSIGN} SIGNATURE(S)" + #~ echo "INSIDE TIDDLER HAVE ${TMPSIGN} SIGNATURE(S)" if [[ "${ISHERE}" != "${title}" || ${TMPSIGN} == 0 ]]; then @@ -79,32 +81,34 @@ while read title; do && rm ${INDEX} \ && mv ~/.zen/tmp/${MOATS}/${SECTOR}/${SECTOR}.html ${INDEX} \ && ((gloops++)) \ - && echo "SECTOR (${gloops}) : ${title}" \ + && echo "GLOOPS (${gloops}) : ${title}" \ && signatures=$((signatures + TMPSIGN)) - [[ ! -s ${INDEX} ]] && echo "ERROR. TW did not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1 + [[ ! -s ${INDEX} ]] && echo "ERROR. TW could not ingest ~/.zen/tmp/${MOATS}/NEW.json" && exit 1 else ## SAME TIDDLER - echo "TIDDLER WITH TITLE $title and more than 1 signature ALREADY EXISTS..." + echo "TIDDLER : $title (${TMPSIGN} signature(s)) ... ALREADY EXISTS..." - cat ~/.zen/tmp/${MOATS}/TMP.json | jq .[] > ~/.zen/tmp/${MOATS}/INSIDE.json + ## Remove [] and put inline to compare + cat ~/.zen/tmp/${MOATS}/TMP.json | jq -rc .[] > ~/.zen/tmp/${MOATS}/INSIDE.json cat "${RSS}" | jq -rc ".[] | select(.title == \"$title\")" > ~/.zen/tmp/${MOATS}/NEW.json - if [[ ! $(diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json) ]]; then + if [[ $(diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json) == "" ]]; then echo "... Tiddlers are similar ..." ((floop++)) continue fi floop=1 - echo - echo "=========== INSIDE.json" - cat ~/.zen/tmp/${MOATS}/INSIDE.json | jq -c - echo - echo "=========== NEW.json" - cat ~/.zen/tmp/${MOATS}/NEW.json | jq -c - echo + ## LOG TIDDLERS + #~ echo + #~ echo "=========== INSIDE.json" + #~ cat ~/.zen/tmp/${MOATS}/INSIDE.json | jq -c + #~ echo + #~ echo "=========== NEW.json" + #~ cat ~/.zen/tmp/${MOATS}/NEW.json | jq -c + #~ echo ## TODO EXTEND CONTROL TO text & ipfs & _canonical_url ## NEED SIGNATURES & TIDDLER SIMILARITY TO COME UP @@ -119,6 +123,12 @@ while read title; do ISIGN=${#IEMAILS[@]} echo "Inside Tiddler $ISIGN signatures : ${IEMAILS[*]}" + ## New should have more signatures than Inside + [[ ${NSIGN} -le ${ISIGN} ]] && echo "Most signed already in..." && continue + ## UPLANET GRID COLLISION PARAM ### + # [[ ${NSIGN} -le 3 ]] && update TW OR continue + # https://www.copylaradio.com/blog/blog-1/post/decentralized-information-ecosystem-51 + if [[ "${NEMAILS[*]}" != "${IEMAILS[*]}" ]]; then ## SEARCH FOR DIFFERENCE IN EMAIL SIGNATURES TAGS @@ -150,6 +160,9 @@ while read title; do NEWTID=$(ipfs add -q ~/.zen/tmp/${MOATS}/NEW.json | tail -n 1) INSIDETID=$(ipfs add -q ~/.zen/tmp/${MOATS}/INSIDE.json | tail -n 1) + ############################### + ## TODO : check STAR level and activate auto merge + for email in "${unique_combined[@]}"; do echo " @@ -163,35 +176,43 @@ echo " } -

(ᵔ◡◡ᵔ)

+

$(date)

-Tiddler with same title is existing in ${unique_combined[*]} TW(s) +

$title

+Tiddler appears in ${unique_combined[*]} TW(s)

-To Accept
- ${COMMON[*]} have to copy NEW Tiddler in their TW +MERGE :
+ ${COMMON[*]} import NEW Tiddler in your TW

-To Refuse
- ${NUNIQUE[*]} must fork by deleting or modifying New Tiddler title. +or FORK :
+ ${NUNIQUE[*]} by deleting or modifying New Tiddler title.
-

Actual TiddlerEngage discussion about it...

+

Arrange a Video Meeting...

" > ~/.zen/tmp/${MOATS}/g1message - ${MY_PATH}/../tools/mailjet.sh "$email" ~/.zen/tmp/${MOATS}/g1message "TIDDLER COLLISION" + ${MY_PATH}/../tools/mailjet.sh "$email" ~/.zen/tmp/${MOATS}/g1message "COLLISION ${title} : ${unique_combined[*]}" done - ## TITLE FORK TO BE SOLVED. NEED "SAME EMAILS SIGNATURES" - continue + ## TITLE FORK TO BE SOLVED. NEED "SAME EMAILS SIGNATURES" + continue + + else + + echo "SIGNATURES ARE THE SAME : ${NEMAILS[*]}" fi - ## CHECK DIFFERENCE + echo "______________________" + echo "CHECKING DIFFERENCES" + diff ~/.zen/tmp/${MOATS}/NEW.json ~/.zen/tmp/${MOATS}/INSIDE.json + + ## TODO CHECK MORE DIFFERENCE DATENEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .modified) TEXTNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .text) TAGSNEW=$(cat ~/.zen/tmp/${MOATS}/NEW.json | jq -r .tags) @@ -205,7 +226,7 @@ To Refuse
if [ ${DATENEW} -gt ${DATEINSIDE} ]; then - echo "Newer Tiddler version... Updating TW" + echo "Newer Tiddler version... Updating SECTOR TW" tiddlywiki --load ${INDEX} \ --import ~/.zen/tmp/${MOATS}/NEW.json "application/json" \ diff --git a/RUNTIME/SECTOR.refresh.sh b/RUNTIME/SECTOR.refresh.sh index 502f2b034..8aae79752 100755 --- a/RUNTIME/SECTOR.refresh.sh +++ b/RUNTIME/SECTOR.refresh.sh @@ -60,8 +60,9 @@ SECTORS=($(echo "${MYSECTORS[@]}" | tr ' ' '\n' | sort -u)) echo "ACTIVATED SECTORS : ${SECTORS[@]}" for SECTOR in ${SECTORS[@]}; do - + echo "############################################" echo "_____SECTOR ${SECTOR}" + echo "################################ $(date)" mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/ SLAT=$(echo ${SECTOR} | cut -d '_' -f 2) SLON=$(echo ${SECTOR} | cut -d '_' -f 3) @@ -74,6 +75,7 @@ for SECTOR in ${SECTORS[@]}; do COINS=$($MY_PATH/../tools/COINScheck.sh ${G1PUB} | tail -n 1) ZEN=$(echo "($COINS - 1) * 10" | bc | cut -d '.' -f 1) + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${SECTOR}.priv "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}" ipfs key rm ${G1PUB} > /dev/null 2>&1 ## AVOID ERROR ON IMPORT SECTORNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${SECTOR}.priv) @@ -97,22 +99,21 @@ for SECTOR in ${SECTORS[@]}; do start=`date +%s` # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> #~ ## IPFS GET ONLINE YESTERDATE SECTORNS - ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/ + ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${SECTOR}/ /ipns/${YESTERDATENS}/ if [[ $? != 0 ]]; then echo "(╥☁╥ ) swarm memory empty (╥☁╥ )" # Try retieve memory from UPlanet Zen Memory [[ ${ZEN} -gt 0 ]] \ && echo "INTERCOM Refreshing from ZEN MEMORY" \ - && ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}" + && ${MY_PATH}/../RUNTIME/ZEN.SECTOR.memory.sh "${SECTOR}" "${MOATS}" "${G1PUB}" fi # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> end=`date +%s` echo "_____SECTOR${SECTOR} GET time was "`expr $end - $start` seconds. # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - ### ZEN - - + ### SHOW ${SECTOR} + mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/${SECTOR} ## CONTROL CHAIN TIME ZCHAIN=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_chain | rev | cut -d ':' -f 1 | rev 2>/dev/null) ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${SECTOR}/CHAIN/_moats 2>/dev/null) @@ -169,6 +170,15 @@ for SECTOR in ${SECTORS[@]}; do mv ${UREFRESH}.shuf ${UREFRESH} echo "SETTING NEXT REFRESHER : $(cat ${UREFRESH} | head -n 1)" + + ############ 101 ZEN REFILL ?! + CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev) + [[ ${COINS} == "" || ${COINS} == "null" ]] \ + && [[ ${ZEN} -lt 100 && ${CURRENT} != "" ]] \ + && MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \ + && ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "11.1" "${G1PUB}" "UPLANET:101ZEN:${SECTOR}:${MIUSER}" \ + && echo "UPLANET:101:${SECTOR}:${MIUSER}" && echo " ~~~ (♥‿‿♥) ~~ ${SECTOR} ~~ (♥‿‿♥) ~~~ " + ############################################################## ## FEED SECTOR TW WITH UMAPS RSS mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/TW @@ -183,6 +193,15 @@ for SECTOR in ${SECTORS[@]}; do ## SET SECTOR sed -i "s~_SECTOR_~${SECTOR}~g" ${INDEX} + ## REFRESH ALL TWs in that SECTOR + rm -Rf ~/.zen/tmp/${MOATS}/${SECTOR}/TWz + mkdir -p ~/.zen/tmp/${MOATS}/${SECTOR}/TWz + + cp -rf ~/.zen/tmp/swarm/12D*/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/* \ + ~/.zen/tmp/${MOATS}/${SECTOR}/TWz + cp -rf ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/* \ + ~/.zen/tmp/${MOATS}/${SECTOR}/TWz 2>/dev/null + ## GET ALL RSS json's AND Feed SECTOR TW with it RSSNODE=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/RSS/*.rss.json 2>/dev/null)) NL=${#RSSNODE[@]} @@ -216,7 +235,6 @@ for SECTOR in ${SECTORS[@]}; do echo ${ZEN} > ~/.zen/tmp/${MOATS}/${SECTOR}/ZEN echo "Number of RSS : "${TOTL} - rm ~/.zen/tmp/${MOATS}/${SECTOR}/N_RSS* ## TODO REMOVE echo ${TOTL} > ~/.zen/tmp/${MOATS}/${SECTOR}/N ########################################################################################### @@ -230,8 +248,8 @@ for SECTOR in ${SECTORS[@]}; do " > ~/.zen/tmp/world.js floop=1 - SWARMTW=($(ls ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_${SLAT}*_${SLON}*/TW/*/index.html 2>/dev/null)) - NODETW=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}*_${SLON}*/TW/*/index.html 2>/dev/null)) + SWARMTW=($(ls ~/.zen/tmp/swarm/*/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/*/index.html 2>/dev/null)) + NODETW=($(ls ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_*_*/_${SLAT}_${SLON}/_*_*/TW/*/index.html 2>/dev/null)) TWFILES=("${SWARMTW[@]}" "${NODETW[@]}") for TWRED in ${TWFILES[@]}; do @@ -272,7 +290,7 @@ for SECTOR in ${SECTORS[@]}; do ## ADD SECTOR ZENPUB.png & INFO.png convert -font 'Liberation-Sans' \ -pointsize 80 -fill purple -draw 'text 50,120 "'"${ZEN} Zen"'"' \ - -pointsize 30 -fill purple -draw 'text 40, 180 "'"${SECTOR}"'"' \ + -pointsize 30 -fill purple -draw 'text 40, 180 "'"${SECTOR}:${YESTERDATE}"'"' \ $MY_PATH/../images/G1WorldMap.png "${HOME}/.zen/tmp/${MOATS}/${SECTOR}.png" # CREATE G1PUB AMZQR amzqr ${G1PUB} -l H -p "$MY_PATH/../images/zenticket.png" -c -n ZENPUB.png -d ~/.zen/tmp/${MOATS}/${SECTOR}/ @@ -338,7 +356,7 @@ for SECTOR in ${SECTORS[@]}; do ############################### echo "% PUBLISHING ${SECTOR} ${myIPFS}/ipns/${TODATENS}" start=`date +%s` - ipfs name publish -k ${TODATE}${G1PUB} /ipfs/${IPFSPOP} + ipfs --timeout 240s name publish -k ${TODATE}${G1PUB} /ipfs/${IPFSPOP} ipfs key rm ${YESTERDATE}${G1PUB} ${G1PUB} > /dev/null 2>&1 ###################################################### @@ -356,7 +374,7 @@ for SECTOR in ${SECTORS[@]}; do ################################### ## NODE CACHE SECTOR TODATENS - echo "" \ + echo "_${SLAT}_${SLON}" \ > ~/.zen/tmp/${IPFSNODEID}/UPLANET/SECTORS/_${REGLAT}_${REGLON}/_${SLAT}_${SLON}/_index.html ## TODO FILTER INFORMATION WITH MULTIPLE SIGNATURES (DONE in REGION.refresh.sh) diff --git a/RUNTIME/UPLANET.refresh.sh b/RUNTIME/UPLANET.refresh.sh index a4fc9354c..97d732384 100755 --- a/RUNTIME/UPLANET.refresh.sh +++ b/RUNTIME/UPLANET.refresh.sh @@ -18,7 +18,7 @@ echo " ------------------------- \ ^__^ \ (oo)\_______ - (__)\ )\/\ + (__)\ )\\/\\ ||----w | || || @@ -49,7 +49,8 @@ for UMAP in ${unique_combined[@]}; do start=`date +%s` echo - echo "____________REFRESHING ${UMAP}__________" + echo "-------------------------------------------------------------------" + echo "____________REFRESHING ${UMAP}__________ $(date)" LAT=$(echo ${UMAP} | cut -d '_' -f 2) LON=$(echo ${UMAP} | cut -d '_' -f 3) @@ -77,37 +78,40 @@ for UMAP in ${unique_combined[@]}; do ## ORIGIN ########################################################## ## CALCULATE INITIAL UMAP GEOSPACIAL IPNS KEY - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}" + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${UMAP}.priv "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}" ipfs key rm ${G1PUB} > /dev/null 2>&1 UMAPNS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${UMAP}.priv) echo "ORIGIN : ${myIPFS}/ipns/${UMAPNS}" ###################### SPATIO TEMPORAL KEYS ## TODATE ######################################### - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${TODATE}.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}" + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${TODATE}.priv "${TODATE}${UPLANETNAME}${LAT}" "${TODATE}${UPLANETNAME}${LON}" ipfs key rm ${TODATE}${G1PUB} > /dev/null 2>&1 TODATENS=$(ipfs key import ${TODATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${TODATE}.priv) echo "TODAY : ${myIPFS}/ipns/${TODATENS}" ## YESTERDATE ############### - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}" + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv "${YESTERDATE}${UPLANETNAME}${LAT}" "${YESTERDATE}${UPLANETNAME}${LON}" ipfs key rm ${YESTERDATE}${G1PUB} > /dev/null 2>&1 YESTERDATENS=$(ipfs key import ${YESTERDATE}${G1PUB} -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/${YESTERDATE}.priv) echo "YESTERDAY : ${myIPFS}/ipns/${YESTERDATENS}" # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + start=`date +%s` # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - echo "## IPFS GET YESTERDATENS" mkdir ~/.zen/tmp/${MOATS}/${UMAP} - ipfs --timeout 240s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/ + echo "## IPFS GET YESTERDATENS" + ipfs --timeout 300s get -o ~/.zen/tmp/${MOATS}/${UMAP}/ /ipns/${YESTERDATENS}/ if [[ $? != 0 ]]; then - echo "(╥☁╥ ) swarm memory empty (╥☁╥ )" + echo "(╥☁╥ ) swarm online memory empty (╥☁╥ )" # Try retieve memory from UPlanet Zen Memory [[ ${ZEN} -gt 0 ]] \ && echo "INTERCOM Refreshing from ZEN MEMORY" \ - && ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}" + && ${MY_PATH}/../RUNTIME/ZEN.UMAP.memory.sh "${UMAP}" "${MOATS}" "${G1PUB}" fi # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + end=`date +%s` + echo "_____UMAP${UMAP} GET time was "`expr $end - $start` seconds. # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ## FORMAT CONTROL WARNING @@ -147,15 +151,15 @@ for UMAP in ${unique_combined[@]}; do [[ ! $(echo ${STRAPS[@]} | grep ${ACTINGNODE}) ]] && ACTINGNODE=${STRAPS[0]} # ++++++++++++++++++++ - - - - FIND LAST TREATMENT TIME - ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_moats 2>/dev/null) || ZMOATS=${MOATS} - # ZMOATS SHOULD BE MORE THAT 5 HOURS. - MOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) - ZMOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${ZMOATS}) - DIFF_SECONDS=$((MOATS_SECONDS - ZMOATS_SECONDS)) - hours=$((DIFF_SECONDS / 3600)) - minutes=$(( (DIFF_SECONDS % 3600) / 60 )) - seconds=$((DIFF_SECONDS % 60)) - echo "UMAP DATA is ${hours} hours ${minutes} minutes ${seconds} seconds " + ZMOATS=$(cat ~/.zen/tmp/${MOATS}/${UMAP}/${G1PUB}:ZEN/_moats 2>/dev/null) || ZMOATS=${MOATS} + # ZMOATS SHOULD BE MORE THAT 5 HOURS. + MOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${MOATS}) + ZMOATS_SECONDS=$(${MY_PATH}/../tools/MOATS2seconds.sh ${ZMOATS}) + DIFF_SECONDS=$((MOATS_SECONDS - ZMOATS_SECONDS)) + hours=$((DIFF_SECONDS / 3600)) + minutes=$(( (DIFF_SECONDS % 3600) / 60 )) + seconds=$((DIFF_SECONDS % 60)) + echo "UMAP DATA is ${hours} hours ${minutes} minutes ${seconds} seconds " # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## IF NOT UPDATED FOR TOO LONG @@ -171,12 +175,12 @@ for UMAP in ${unique_combined[@]}; do echo "------8<-------------8<------------------8<-----------------8<-----------------8<" continue fi - ######################################## - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PASSING THERE MAKE IPFSNODEID UMAP REFRESHER - + ################################################################################ + # ~~~~~~~~~~~~~ GOING FURTHER ~~~ MEANS IPFSNODEID IS UMAP REFRESHER ~~~~~~~~~~~ + ################################################################################ ## NEXT REFRESHER # TODO: INTRODUCE NODE BALANCE AND CHOOSE THE MOST CONFIDENT ONE - rm ${UREFRESH} + rm ${UREFRESH} for STRAP in ${STRAPS[@]}; do echo ${STRAP} >> ${UREFRESH} ## FILL UMAP.refresher file with all STRAPS done @@ -187,6 +191,14 @@ for UMAP in ${unique_combined[@]}; do echo ">> NEXT REFRESHER WILL BE $(cat ${UREFRESH} | head -n 1)" ######################################################## # NODE SELECTION in UMAP.refresher + ############ 101 ZEN REFILL ?! + CURRENT=$(readlink ~/.zen/game/players/.current | rev | cut -d '/' -f 1 | rev) + [[ ${COINS} == "" || ${COINS} == "null" ]] \ + && [[ ${ZEN} -lt 100 && ${CURRENT} != "" ]] \ + && MIUSER=$(${MY_PATH}/../tools/clyuseryomail.sh "${CURRENT}") \ + && ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/.current/secret.dunikey" "11.1" "${G1PUB}" "UPLANET:101ZEN:${UMAP}:${MIUSER}" \ + && echo "UPLANET:101:${UMAP}:${MIUSER}" && echo " ~~~ (♥‿‿♥) ~~ _${LAT}_${LON} ~~ (♥‿‿♥) ~~~ " + # %%%%%%%%%% ################################################## ## SECTOR LINKING >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>${SLAT}_${SLON} # %%%%%%%%%% ################################################## @@ -229,6 +241,70 @@ for UMAP in ${unique_combined[@]}; do mkdir -p ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON} echo "" > ~/.zen/tmp/${MOATS}/${UMAP}/${RLAT}_${RLON}/index.html + #################################################################################### + ######################## NEXTNS : UMAP, SECTOR, REGION ## BOOSTRAP TO SWARM ## + mkdir -p ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/ + #################################################################################### + ################################################################################# + ## DEMAIN DATA + #################################################################################### + ## UMAP NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.umap + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${LAT}" "${DEMAINDATE}${UPLANETNAME}${LON}" + ipfs key rm "next" > /dev/null 2>&1 + NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv) + echo "UMAP NEXTNS : ${myIPFS}/ipns/${NEXTNS}" + ipfs key rm "next" > /dev/null 2>&1 + rm ~/.zen/tmp/${MOATS}/next.priv + ## BOOSTRAP SWARM PUBLICATION _next.umapns + echo "${G1PUB}:${DEMAINDATE}:${NEXTNS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.umapns + ## IN UMAP KEY PUBLICATION + cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.umapns \ + ~/.zen/tmp/${MOATS}/${UMAP}/ + ## SECTOR NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.sector + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${SECTOR}" "${DEMAINDATE}${UPLANETNAME}${SECTOR}" + ipfs key rm "next" > /dev/null 2>&1 + NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv) + echo "SECTOR NEXTNS : ${myIPFS}/ipns/${NEXTNS}" + ipfs key rm "next" > /dev/null 2>&1 + rm ~/.zen/tmp/${MOATS}/next.priv + ## BOOSTRAP SWARM PUBLICATION _next.sectorns + echo "${SECTORG1PUB}:${DEMAINDATE}:${NEXTNS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.sectorns + ## IN UMAP KEY PUBLICATION + cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.sectorns \ + ~/.zen/tmp/${MOATS}/${UMAP}/ + ## REGION NEXTNS ############### INFORM "PLAYER.refresh.sh" WITH _next.region + ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/next.priv "${DEMAINDATE}${UPLANETNAME}${REGION}" "${DEMAINDATE}${UPLANETNAME}${REGION}" + ipfs key rm "next" > /dev/null 2>&1 + NEXTNS=$(ipfs key import "next" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/next.priv) + echo "REGION NEXTNS : ${myIPFS}/ipns/${NEXTNS}" + ipfs key rm "next" > /dev/null 2>&1 + rm ~/.zen/tmp/${MOATS}/next.priv + ## BOOSTRAP SWARM PUBLICATION _next.regionns + echo "${REGIONG1PUB}:${DEMAINDATE}:${NEXTNS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.regionns + ## IN UMAP KEY PUBLICATION + cp ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/_next.regionns \ + ~/.zen/tmp/${MOATS}/${UMAP}/ + #################################################################################### + ## TODATE DATA + #################################################################################### + echo "${TODATENS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/TODATENS + echo "${SECTORNS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORNS + echo "${TODATEREGIONNS}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/REGIONNS + echo "${G1PUB}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB + echo "${SECTORG1PUB}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORG1PUB + echo "${REGIONG1PUB}" \ + > ~/.zen/tmp/${IPFSNODEID}/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/REGIONG1PUB + + #################################################################################### + # %%%%%%%%%% ################################################## ## COLLECT RSS FROM ALL PLAYERS WITH SAME UMAP IN SWARM MEMORY /UPLANET/__/_*_*/_*.?_*.?/_*.??_*.?? # %%%%%%%%%% ################################################## @@ -400,6 +476,8 @@ for UMAP in ${unique_combined[@]}; do -e "s~_UPUPZONE_~REGION ${REGION}~g" \ -e "s~_UPUPZONENS_~${TODATEREGIONNS}~g" \ -e "s~_PHONEBOOTH_~${PHONEBOOTH}~g" \ + -e "s~_CESIUMIPFS_~${CESIUMIPFS}~g" \ + -e "s~_G1PUB_~${G1PUB}~g" \ -e "s~_DATE_~$(date +%A-%d_%m_%Y)~g" \ -e "s~_UPLANETLINK_~${EARTHCID}/map_render.html\?southWestLat=${LAT}\&southWestLon=${LON}\°=0.01~g" \ -e "s~http://127.0.0.1:8080~~g" \ @@ -430,7 +508,7 @@ for UMAP in ${unique_combined[@]}; do ## ZEN CHAINING # Send 1 Zen to UPlanet SECTORG1PUB Wallet containing REGION TW HASH INTERCOM="UPLANET:${UMAP}:${TODATE}:/ipfs/${UMAPROOT}" - echo "> INTERCOM ${INTERCOM} (${ZEN} ZEN)" + echo "> INTERCOM ${INTERCOM} (${ZEN} ZEN > 11 ?)" if [[ ${ZEN} -gt 11 ]]; then echo "---ZZZ-- UMAP 2 SECTOR ZEN CHAINING ---ZZZ------ZZZ----" ${MY_PATH}/../tools/PAY4SURE.sh ~/.zen/tmp/${MOATS}/${UMAP}.dunikey "0.1" "${SECTORG1PUB}" "${INTERCOM}" @@ -444,7 +522,7 @@ for UMAP in ${unique_combined[@]}; do echo "PUBLISHING ${TODATE} UMAPROOT : ${myIPFS}/ipfs/${UMAPROOT}" - ipfs name publish --key=${TODATE}${G1PUB} /ipfs/${UMAPROOT} + ipfs --timeout 300s name publish --key=${TODATE}${G1PUB} /ipfs/${UMAPROOT} end=`date +%s` echo "(UMAP) ${UMAP} ${TODATE} PUBLISH time was "`expr $end - $start` seconds. diff --git a/RUNTIME/VISA.new.sh b/RUNTIME/VISA.new.sh index 4b7eea77f..e1f39707d 100755 --- a/RUNTIME/VISA.new.sh +++ b/RUNTIME/VISA.new.sh @@ -19,29 +19,33 @@ SALT="$1" PEPPER="$2" PLAYER="$3" PSEUDO="$4" +[[ $PSEUDO == "" ]] && PSEUDO="Anonymous" ## Fill UP TW with VIDEO URL or UMAP NS URL="$5" +[[ $URL == "" ]] && URL="_URL_" -## UPLANET SECTOR +## UPLANET UMAP LAT="$6" +[[ $LAT == "" ]] && LAT="0.00" LON="$7" +[[ $LON == "" ]] && LON="0.00" ################################################################################ YOU=$(myIpfsApi); -LIBRA=$(head -n 2 ${MY_PATH}/../A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ################################################################################ ## LIST TW MODELS ################################################################################ -TWMODEL="/ipfs/bafybeiewwxkmiojbskcqhbj2gbkde3czkeqftn6fgvwoa7ez5n5whido3q" -# ipfs cat $TWMODEL > templates/twdefault.html -MINIMAL="/ipfs/bafybeifnlpnvpxxnblgwefoflmdnt2vhckmnu22orsi43zilh2v4sbegjy" -# ipfs cat $MINIMAL > templates/twuplanet.html +#~ TWMODEL="/ipfs/bafybeid7xwuqkgyiffehs77x3wky3dghjncxepr5ln6dewapgvbwrqi7n4" +#~ # ipfs cat $TWMODEL > templates/twdefault.html +TWUPLANET="/ipfs/bafybeigpwapdih24vnakummoyj6vodxiem4i6ezp5hxa35yt3paxpqz53y" ## WITH LIGHTBEAMS SAVER +TWUPLANET="/ipfs/bafybeicquhlstbogaxgx2bwqjra5zlmfg33ciengwwy62w5myucaxksuli" ## WITH IPFS SAVER +# ipfs cat $TWUPLANET > templates/twuplanet.html ################################################################################ mkdir -p ~/.zen/tmp/${MOATS}/TW -## Chargement TW !!! +## TEST chargement ONLINE TW !!! if [[ $SALT != "" && PEPPER != "" ]]; then ## Creating SALT/PEPPER IPNS KEY @@ -57,22 +61,22 @@ if [[ $SALT != "" && PEPPER != "" ]]; then [[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] \ && [[ -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \ && echo "TW FOUND ENTER 'yes' TO RESET TW. HIT ENTER TO KEEP IT." \ - && read ENTER \ - && [[ $ENTER != "" ]] && rm ~/.zen/tmp/${MOATS}/TW/index.html + && read ENTER - # EXTEND SEARCH IN WEB2.0 - #~ [[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \ - #~ && echo "Trying curl on $LIBRA" \ - #~ && curl -m 30 -so ~/.zen/tmp/${MOATS}/TW/index.html "$LIBRA/ipns/${ASTRONAUTENS}" + if [[ $ENTER != "" ]]; then + + # BACKUP tiddlers + tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp \ + --render '.' 'backup.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[!is[system]]' + rm ~/.zen/tmp/${MOATS}/TW/index.html + echo ">> Tiddlers Backup : ~/.zen/tmp/backup.json" + fi ############################################# ## AUCUN RESULTAT if [ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]; then - # COPY TW TEMPLATE - [[ ${LON} && ${LAT} ]] \ - && cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html \ - || cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html + cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html else ############################################# @@ -80,10 +84,11 @@ if [[ $SALT != "" && PEPPER != "" ]]; then rm -f ~/.zen/tmp/${MOATS}/Astroport.json tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) + HPass=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].HPASS) echo "ASTROPORT=${ASTROPORT}" tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'AstroID.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'AstroID' - AstroID=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[]._canonical_uri) - HPass=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[].HPASS) + AstroID=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[]._canonical_uri) ## Can be deleted + [[ -z $HPass ]] && HPass=$(cat ~/.zen/tmp/${MOATS}/AstroID.json | jq -r .[].HPASS) ## Double HPASS echo "AstroID=$AstroID ($HPass)" tiddlywiki --load ~/.zen/tmp/${MOATS}/TW/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'ZenCard.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'ZenCard' ZenCard=$(cat ~/.zen/tmp/${MOATS}/ZenCard.json | jq -r .[]._canonical_uri) @@ -98,7 +103,7 @@ if [[ $SALT != "" && PEPPER != "" ]]; then else echo ">> NO ACTIVE TW - CREATING FRESH NEW ONE" - cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html + cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html fi @@ -124,7 +129,7 @@ fi [[ $SALT == "" ]] && SALT=$(${MY_PATH}/../tools/diceware.sh 4 | xargs) #~ echo "-> ID : $SALT" -[[ $PEPPER == "" ]] && PEPPER=$(${MY_PATH}/../tools/diceware.sh 2 | xargs) +[[ $PEPPER == "" ]] && PEPPER=$(${MY_PATH}/../tools/diceware.sh 4 | xargs) #~ echo "-> PASS : $PEPPER" [[ ! $PSEUDO ]] && PSEUDO=${PLAYER%%[0-9]*} @@ -132,8 +137,9 @@ fi [[ $(ls ~/.zen/game/players/$PSEUDO 2>/dev/null) ]] && echo "$PSEUDO EST DEJA UN PLAYER. EXIT" && exit 1 # PSEUDO=${PSEUDO,,} #lowercase -[[ ! ${PLAYER} ]] && PLAYER=${PSEUDO}${RANDOM:0:3}@$(${MY_PATH}/../tools/diceware.sh 1 | xargs).${RANDOM:0:3} \ - && echo "ADRESSE EMAIL ?" && read OPLAYER && [[ $OPLAYER ]] && PLAYER=$OPLAYER +[[ ! ${PLAYER} ]] \ + && PLAYER=${PSEUDO}${RANDOM:0:3}@$(${MY_PATH}/../tools/diceware.sh 1 | xargs).${RANDOM:0:3} \ + && echo "ADRESSE EMAIL ?" && read OPLAYER && [[ $OPLAYER ]] && PLAYER=$OPLAYER ## CLI MODE PLAYER=${PLAYER,,} @@ -141,341 +147,324 @@ PLAYER=${PLAYER,,} PASS=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-5) ############################################################ -######### TODO Ajouter d'autres clefs IPNS, GPG ? -# MOANS=$(ipfs key gen moa_${PLAYER}) -# MOAKEYFILE=$(${MY_PATH}/give_me_keystore_filename.py "moa_${PLAYER}") -# echo "Coffre personnel multimedia journalisé dans votre 'Astroport' (amis de niveau 3)" -# echo "Votre clef moa_${PLAYER} <=> $MOANS ($MOAKEYFILE)"; sleep 2 -############################################################ - ${MY_PATH}/../tools/keygen -t duniter -o ~/.zen/tmp/${MOATS}/secret.dunikey "$SALT" "$PEPPER" G1PUB=$(cat ~/.zen/tmp/${MOATS}/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) [[ ! $G1PUB ]] && echo "Désolé. clef Cesium absente. ERROR" && exit 1 - ## CREATE Player personnal files storage and IPFS publish directory - mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure - echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api +## CREATE Player personnal files storage and IPFS publish directory +mkdir -p ~/.zen/game/players/${PLAYER}/.ipfs # Prepare PLAYER datastructure +echo "/ip4/127.0.0.1/tcp/5001" > ~/.zen/game/players/${PLAYER}/.ipfs/api - # PLAYER=geg-la_debrouille@super.chez-moi.com -YUSER=$(echo ${PLAYER} | cut -d '@' -f1) # YUSER=geg-la_debrouille -LYUSER=($(echo "$YUSER" | sed 's/[^a-zA-Z0-9]/\ /g')) # LYUSER=(geg la debrouille) -CLYUSER=$(printf '%s\n' "${LYUSER[@]}" | tac | tr '\n' '.' ) # CLYUSER=debrouille.la.geg. -YOMAIN=$(echo ${PLAYER} | cut -d '@' -f 2) # YOMAIN=super.chez-moi.com -# echo "NEXT STYLE GW : https://ipfs.$CLYUSER$YOMAIN.$(myHostName)" -# echo "MY PLAYER API GW : $(myPlayerApiGw)" +## secret.june = SALT PEPPER CREDENTIALS +echo "SALT=\"$SALT\"" > ~/.zen/game/players/${PLAYER}/secret.june +echo "PEPPER=\"$PEPPER\"" >> ~/.zen/game/players/${PLAYER}/secret.june +#### +## MOVE ${MOATS} secret.dunikey IN PLAYER DIRECTORY +mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/${PLAYER}/ NID="${myIPFS}" -WID="https://ipfs.$CLYUSER$YOMAIN.$(myHostName)/api" ## Next Generation API # TODO PLAYER IPFS Docker entrance -WID="https://ipfs.$(myHostName)/api" -WID="https://ipfs.$(myHostName)/api" WID="${myAPI}" ## https://ipfs.libra.copylaradio.com -# WID="http://ipfs.$(myHostName):5001" +[[ $isLAN ]] && NID="http://ipfs.localhost:8080" \ + && WID="http://ipfs.localhost:5001" + +# Create ${PLAYER} "IPNS Key" +ipfs key rm ${PLAYER} >/dev/null 2>&1 +ipfs key rm ${G1PUB} >/dev/null 2>&1 +${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/secret.player "$SALT" "$PEPPER" +TWNS=$(ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player) +ASTRONAUTENS=$(ipfs key import ${G1PUB} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player) + +## TODO MAKE CLEANER +mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/G1SSB # Prepare astrXbian sub-datastructure "old scarf code" +qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.png "$G1PUB" ## Check by VISA.print.sh +cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/ipfs/QR.png +echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/_g1.pubkey # G1SSB NOTATION (astrXbian compatible) +qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png "$myLIBRA/ipns/${ASTRONAUTENS}" + +############################################################################ +## SEC PASS PROTECTED QRCODE : base58 secret.june / openssl(pass) +#~ secFromDunikey=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep "sec" | cut -d ' ' -f2) +#~ echo "$secFromDunikey" > ~/.zen/tmp/${MOATS}/${PSEUDO}.sec + USALT=$(echo "$SALT" | jq -Rr @uri) UPEPPER=$(echo "$PEPPER" | jq -Rr @uri) DISCO="/?salt=${USALT}&pepper=${UPEPPER}" -[[ $isLAN ]] && NID="http://ipfs.localhost:8080" \ - && WID="http://ipfs.localhost:5001" +## PGP ENCODING SALT/PEPPER API ACCESS +echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp +cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$PASS" -o ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc +rm ~/.zen/tmp/${MOATS}/topgp +#~ openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in ~/.zen/game/players/${PLAYER}/secret.june -out "$HOME/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec" -k "$PASS" +#~ PASsec=$(cat ~/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec | base64 -w 0 | jq -sRr '@uri' ) +#~ HPass=$(echo "$PASS" | sha512sum | cut -d ' ' -f 1) +#~ qrencode -s 12 -o $HOME/.zen/game/players/${PLAYER}/QRsec.png $PASsec -#### +## Add logo to QRCode +cp ${MY_PATH}/../images/astrologo_nb.png ~/.zen/tmp/${MOATS}/fond.png - mv ~/.zen/tmp/${MOATS}/secret.dunikey ~/.zen/game/players/${PLAYER}/ +## ASTROID ~~~~~ +ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '~' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )" +## MAKE amzqr ASTROID PGP QRCODE +amzqr "${ASTROIDQR}" \ + -d ~/.zen/tmp/${MOATS} \ + -l H \ + -p ~/.zen/tmp/${MOATS}/fond.png 1>/dev/null - # Create Player "IPNS Key" (key import) - ipfs key rm ${PLAYER} - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/game/players/${PLAYER}/secret.player "$SALT" "$PEPPER" - TWNS=$(ipfs key import ${PLAYER} -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player) - ASTRONAUTENS=$(ipfs key import $G1PUB -f pem-pkcs8-cleartext ~/.zen/game/players/${PLAYER}/secret.player) +## ADD PLAYER EMAIL +convert -gravity northwest -pointsize 28 -fill black -draw "text 5,5 \"$PLAYER\"" ~/.zen/tmp/${MOATS}/fond_qrcode.png ~/.zen/game/players/${PLAYER}/result_qrcode.png +convert ~/.zen/game/players/${PLAYER}/result_qrcode.png -resize 480 ~/.zen/game/players/${PLAYER}/AstroID.png - mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/G1SSB # Prepare astrXbian sub-datastructure "old scarf code" - - qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.png "$G1PUB" - cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/ipfs/QR.png - echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/ipfs/G1SSB/_g1.pubkey # G1SSB NOTATION (astrXbian compatible) - - qrencode -s 12 -o ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png "$myLIBRA/ipns/${ASTRONAUTENS}" - -############################################################################ - ## SEC PASS PROTECTED QRCODE : base58 secret.june / openssl(pass) - #~ secFromDunikey=$(cat ~/.zen/game/players/${PLAYER}/secret.dunikey | grep "sec" | cut -d ' ' -f2) - #~ echo "$secFromDunikey" > ~/.zen/tmp/${MOATS}/${PSEUDO}.sec - - ## PGP ENCODING SALT/PEPPER API ACCESS - echo "${DISCO}" > ~/.zen/tmp/${MOATS}/topgp - cat ~/.zen/tmp/${MOATS}/topgp | gpg --symmetric --armor --batch --passphrase "$PASS" -o ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc - rm ~/.zen/tmp/${MOATS}/topgp - #~ openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in ~/.zen/game/players/${PLAYER}/secret.june -out "$HOME/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec" -k "$PASS" - #~ PASsec=$(cat ~/.zen/tmp/${MOATS}/enc.${PSEUDO}.sec | base64 -w 0 | jq -sRr '@uri' ) - #~ HPass=$(echo "$PASS" | sha512sum | cut -d ' ' -f 1) - #~ qrencode -s 12 -o $HOME/.zen/game/players/${PLAYER}/QRsec.png $PASsec - - ## Add logo to QRCode - cp ${MY_PATH}/../images/astrologo_nb.png ~/.zen/tmp/${MOATS}/fond.png - - ## ASTROID ~~~~~ || &&&&& - ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '~' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )" - [[ ${PSEUDO} == "UPlanet" ]] && ASTROIDQR="$(cat ~/.zen/tmp/${MOATS}/gpg.${PSEUDO}.asc | tr '-' '&' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )" - ## MAKE amzqr ASTROID PGP QRCODE - amzqr "${ASTROIDQR}" \ - -d ~/.zen/tmp/${MOATS} \ - -l H \ - -p ~/.zen/tmp/${MOATS}/fond.png 1>/dev/null - - ## ADD PLAYER EMAIL - convert -gravity northwest -pointsize 28 -fill black -draw "text 5,5 \"$PLAYER\"" ~/.zen/tmp/${MOATS}/fond_qrcode.png ~/.zen/game/players/${PLAYER}/result_qrcode.png - convert ~/.zen/game/players/${PLAYER}/result_qrcode.png -resize 480 ~/.zen/game/players/${PLAYER}/AstroID.png - - ASTROQR="/ipfs/$(ipfs add -q $HOME/.zen/game/players/${PLAYER}/AstroID.png | tail -n 1)" +ASTROQR="/ipfs/$(ipfs add -q $HOME/.zen/game/players/${PLAYER}/AstroID.png | tail -n 1)" ############################################################################ TW - ### INITALISATION WIKI dans leurs répertoires de publication IPFS - mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/moa/ +### INITALISATION WIKI dans leurs répertoires de publication IPFS +mkdir -p ~/.zen/game/players/${PLAYER}/ipfs/moa/ - [[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] && cp ${MY_PATH}/../templates/twdefault.html ~/.zen/tmp/${MOATS}/TW/index.html - sed "s~_BIRTHDATE_~${MOATS}~g" ~/.zen/tmp/${MOATS}/TW/index.html > ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +[[ ! -s ~/.zen/tmp/${MOATS}/TW/index.html ]] \ + && cp ${MY_PATH}/../templates/twuplanet.html ~/.zen/tmp/${MOATS}/TW/index.html - # INSERT ASTROPORT ADDRESS - tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' - ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) - sed -i "s~${ASTROPORT}~/ipns/${IPFSNODEID}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed "s~_BIRTHDATE_~${MOATS}~g" ~/.zen/tmp/${MOATS}/TW/index.html \ + > ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - # TW CHAIN INIT WITH TWMODEL - sed -i "s~_MOATS_~${MOATS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_CHAIN_~${TWMODEL}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_TWMODEL_~${TWMODEL}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_TW_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +# INSERT ASTROPORT ADDRESS +tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'Astroport.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'Astroport' +ASTROPORT=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astroport) +sed -i "s~${ASTROPORT}~/ipns/${IPFSNODEID}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ## AND HACK QRCODE.sh FOR _PGP KEY_ TO VERIFY LAST HASH OF PROVIDED PASS - HPASS=$(echo $PASS | sha512sum | cut -d ' ' -f 1) - [[ ${HPass} != "" ]] && SRCPASS=${HPass} || SRCPASS="_HPASS_" - sed -i "s~${SRCPASS}~${HPASS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +# TW CHAIN INIT WITH TWMODEL +sed -i "s~_MOATS_~${MOATS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~_CHAIN_~${TWUPLANET}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~_TWMODEL_~${TWUPLANET}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~_ASTRONAUTENS_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ## RESET WISHES TO DEPLOY DERIVATED KEYS ON HOST AGAIN ( DONE IN PLAYER_REFRESH ) - #~ sed -i "s~G1Voeu~voeu~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +## AND HACK QRCODE.sh FOR _PGP KEY_ TO VERIFY LAST HASH OF PROVIDED PASS +HPASS=$(echo $PASS | sha512sum | cut -d ' ' -f 1) +[[ ${HPass} != "" ]] && SRCPASS=${HPass} || SRCPASS="_HPASS_" +sed -i "s~${SRCPASS}~${HPASS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ## Fill LNK - Tiddler - escape \& - sed -i "s~_URL_~$(echo "${URL}" | sed 's/[&/]/\\&/g')~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +## RESET WISHES TO DEPLOY DERIVATED KEYS ON HOST AGAIN ( DONE IN PLAYER_REFRESH ) +#~ sed -i "s~G1Voeu~voeu~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - # INSERT PLAYER DATA - sed -i "s~_PLAYER_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_PSEUDO_~${PSEUDO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_WISHKEY_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +## Fill LNK - Tiddler - escape \& +sed -i "s~_URL_~$(echo "${URL}" | sed 's/[&/]/\\&/g')~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_G1PUB_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - #~ sed -i "s~_QRSEC_~${PASsec}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +# INSERT PLAYER DATA +sed -i "s~_PLAYER_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~_PSEUDO_~${PSEUDO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~_G1PUB_~${G1PUB}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +#~ sed -i "s~_QRSEC_~${PASsec}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1) - # La Clef IPNS porte comme nom G1PUB et ${PLAYER} - sed -i "s~_MEDIAKEY_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~k2k4r8kxfnknsdf7tpyc46ks2jb3s9uvd3lqtcv9xlq9rsoem7jajd75~${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +# La Clef IPNS porte comme nom G1PUB et ${PLAYER} +sed -i "s~_MEDIAKEY_~${PLAYER}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~k2k4r8kxfnknsdf7tpyc46ks2jb3s9uvd3lqtcv9xlq9rsoem7jajd75~${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~_ASTRONAUTENS_~/ipns/${ASTRONAUTENS}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ## AstroID Tiddler UPGRADE - cat ${MY_PATH}/../templates/data/AstroID.json \ - | sed -e "s~/ipfs/bafybeifbebc3ewnzrzbm44arddedbralegnxklhua5d5ymzaqtf2kaub7i~${ASTROQR}~g" \ - -e "s~_PLAYER_~${PLAYER}~g" \ - -e "s~_G1PUB_~${G1PUB}~g" \ - -e "s~_ASTRONAUTENS_~${ASTRONAUTENS}~g" \ - -e "s~_HPASS_~${HPASS}~g" \ - > ~/.zen/tmp/${MOATS}/AstroID.json +## AstroID Tiddler UPGRADE +cat ${MY_PATH}/../templates/data/AstroID.json \ + | sed -e "s~/ipfs/bafybeifbebc3ewnzrzbm44arddedbralegnxklhua5d5ymzaqtf2kaub7i~${ASTROQR}~g" \ + -e "s~_PLAYER_~${PLAYER}~g" \ + -e "s~_MOATS_~${MOATS}~g" \ + -e "s~_G1PUB_~${G1PUB}~g" \ + -e "s~_ASTRONAUTENS_~${ASTRONAUTENS}~g" \ + -e "s~_HPASS_~${HPASS}~g" \ + > ~/.zen/tmp/${MOATS}/AstroID.json - sed -i "s~${AstroID}~${ASTROQR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ## NOT CYPHERED AstroID +sed -i "s~tube.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +sed -i "s~ipfs.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~tube.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - sed -i "s~ipfs.copylaradio.com~$myTUBE~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html +## PREPARE UMAP LAT LON replacement +[[ ! ${LAT} ]] && LAT="0.00" +[[ ! ${LON} ]] && LON="0.00" - ## PREPARE UMAP LAT LON replacement - [[ ! ${LAT} ]] && LAT="0.00" - [[ ! ${LON} ]] && LON="0.00" - UMAP=${URL} - [[ ! $(echo ${UMAP} | grep "/ipns/") ]] && UMAP="/ipns/k51qzi5uqu5djg1gqzujq5p60w25mi235gdg0lgkk5qztkfrpi5c22oolrriyu" ## DEFAULT = 0.00 +SECTOR="_${LAT::-1}_${LON::-1}" ### SECTOR = 0.1° Planet Slice in MadeInZion Tiddler +echo "UPlanet 0.1° SECTOR : ${SECTOR}" +sed -i "s~_SECTOR_~${SECTOR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - if [[ ${LAT} && ${LON} ]]; then - # GET ACTUAL GPS VALUES - tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' - OLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat) - OLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon) - OUMAP=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].umap) - # REPLACE WITH NEW LAT LON UMAP - sed -i "s~${OLAT}~${LAT}~g" ~/.zen/tmp/${MOATS}/GPS.json - sed -i "s~${OLON}~${LON}~g" ~/.zen/tmp/${MOATS}/GPS.json - sed -i "s~${OUMAP}~${UMAP}~g" ~/.zen/tmp/${MOATS}/GPS.json - fi +# GET ACTUAL GPS VALUES +tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'GPS.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'GPS' - SECTOR="_${LAT::-1}_${LON::-1}" ### SECTOR = 0.1° Planet Slice in MadeInZion Tiddler - echo "UPlanet 0.1° SECTOR : ${SECTOR}" - sed -i "s~_SECTOR_~${SECTOR}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - ## Change myIP - #~ sed -i "s~127.0.0.1~$myIP~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html # 8080 & 5001 BEING THE RECORDING GATEWAY (WAN or ipfs.localhost) - - ## TODATE ######################################### - TODATESECTORNS=$(${MY_PATH}/../tools/keygen -t ipfs "${TODATE}${UPLANETNAME}${SECTOR}" "${TODATE}${UPLANETNAME}${SECTOR}") - DEMAINSECTORNS=$(${MY_PATH}/../tools/keygen -t ipfs "${DEMAINDATE}${UPLANETNAME}${SECTOR}" "${DEMAINDATE}${UPLANETNAME}${SECTOR}") +OLAT=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lat) +OLON=$(cat ~/.zen/tmp/${MOATS}/GPS.json | jq -r .[].lon) +# REPLACE WITH NEW LAT LON UMAP +sed -i "s~${OLAT}~${LAT}~g" ~/.zen/tmp/${MOATS}/GPS.json +sed -i "s~${OLON}~${LON}~g" ~/.zen/tmp/${MOATS}/GPS.json +## Add _SECTORTW_ +cat ~/.zen/tmp/${MOATS}/GPS.json | jq '.[0] + {"sectortw": "_SECTORTW_"}' \ + > ~/.zen/tmp/${MOATS}/GPStw.json \ + && mv ~/.zen/tmp/${MOATS}/GPStw.json ~/.zen/tmp/${MOATS}/GPS.json ########### - ## GET OLD16 - tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'MIZ.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' - OLD16=$(cat ~/.zen/tmp/${MOATS}/MIZ.json | jq -r ".[].secret") - [[ ${OLD16} == "" || ${OLD16} == "null" ]] && OLD16="_SECRET_" +## GET OLD16 +tiddlywiki \ + --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'MIZ.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' +OLD16=$(cat ~/.zen/tmp/${MOATS}/MIZ.json | jq -r ".[].secret") +[[ ${OLD16} == "" || ${OLD16} == "null" ]] && OLD16="_SECRET_" +echo "${OLD16}" - ## USING SWARMKEY (derivated from IPFSNODE "/proc/cpuinfo" key made by _12345.sh) ## HARDWARE SPECIFIC KEY ## - # TODO : NODE COULD FORGET PASS THEN DECODE ${PLAYER}/secret.dunikey FROM TW # PROD # - MACHINEPUB=$(cat $HOME/.zen/game/myswarm_secret.dunikey | grep pub | cut -d ' ' -f 2) - #~ echo "# CRYPTO ENCODING _SECRET_ " - ${MY_PATH}/../tools/natools.py encrypt -p ${MACHINEPUB} -i $HOME/.zen/game/players/${PLAYER}/secret.dunikey -o $HOME/.zen/tmp/${MOATS}/secret.dunikey.$G1PUB.enc - ENCODING=$(cat ~/.zen/tmp/${MOATS}/bafybeiewwxkmiojbskcqhbj2gbkde3czkeqftn6fgvwoa7ez5n5whido3qsecret.dunikey.$G1PUB.enc | base16) - sed -i "s~${OLD16}~${ENCODING}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - # IN CASE ORIGINAL STATION NEEDS ACCESS # COULD BE REMOVED ? -########### - #~ echo "# CRYPTO DECODING TESTING..." - tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html --output ~/.zen/tmp/${MOATS} --render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' - cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r ".[].secret" | base16 -d > ~/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 - ${MY_PATH}/../tools/natools.py decrypt -f pubsec -k $HOME/.zen/game/myswarm_secret.dunikey -i $HOME/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 -o $HOME/.zen/tmp/${MOATS}/crypto.2 - #~ echo "DEBUG : $(cat $HOME/.zen/tmp/${MOATS}/crypto.2)" -########### - ## CRYPTO PROCESS VALIDATED - [[ -s ~/.zen/tmp/${MOATS}/crypto.2 ]] && echo "NATOOLS LOADED STATION TW KEY " \ - || echo "NATOOLS ERRORS - CHECK STATION" # MACHINEPUB CRYPTO ERROR +# TODO : MAKE NODE FORGET PASS THEN DECODE ${PLAYER}/secret.june FROM TW # PROD # +MACHINEPUB=$(cat $HOME/.zen/game/myswarm_secret.dunikey | grep pub | cut -d ' ' -f 2) +if [[ "${MACHINEPUB}" != "" ]]; then + #~ echo "# CRYPTO ENCODING PLAYER KEY WITH MACHINEPUB + ${MY_PATH}/../tools/natools.py encrypt \ + -p ${MACHINEPUB} \ + -i $HOME/.zen/game/players/${PLAYER}/secret.june \ + -o $HOME/.zen/tmp/${MOATS}/secret.june.${G1PUB}.enc + ENCODING=$(cat ~/.zen/tmp/${MOATS}/secret.june.$G1PUB.enc | base16) + sed -i "s~${OLD16}~${ENCODING}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html + echo "ENCODING: ${ENCODING}" + + # IN CASE ORIGINAL STATION NEEDS ACCESS # COULD BE REMOVED ? +########### + #~ echo "# CRYPTO DECODING TESTING..." + tiddlywiki \ + --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ + --output ~/.zen/tmp/${MOATS} \ + --render '.' 'MadeInZion.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' 'MadeInZion' + + cat ~/.zen/tmp/${MOATS}/MadeInZion.json \ + | jq -r ".[].secret" | base16 -d \ + > ~/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 + + ${MY_PATH}/../tools/natools.py decrypt \ + -f pubsec \ + -k $HOME/.zen/game/myswarm_secret.dunikey \ + -i $HOME/.zen/tmp/${MOATS}/crypto.$G1PUB.enc.2 \ + -o $HOME/.zen/tmp/${MOATS}/crypto.2 + #~ echo "DEBUG : $(cat $HOME/.zen/tmp/${MOATS}/crypto.2)" +########### + ## CRYPTO PROCESS VALIDATED + [[ -s ~/.zen/tmp/${MOATS}/crypto.2 ]] \ + && echo "NATOOLS LOADED STATION TW KEY " \ + || echo "NATOOLS ERRORS - CHECK STATION" # MACHINEPUB CRYPTO ERROR + +else + echo " - WARNING - MISSING ~/.zen/game/myswarm_secret.dunikey - WARNING -" +fi ########### SECTOR = 0.1° UPLANET SLICE - OSECTOR=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].sector) - [[ ${OSECTOR} != "null" ]] && sed -i "s~${OSECTOR}~${SECTOR}~g" ~/.zen/tmp/${MOATS}/MadeInZion.json +OSECTOR=$(cat ~/.zen/tmp/${MOATS}/MadeInZion.json | jq -r .[].sector) +[[ ${OSECTOR} != "null" ]] && sed -i "s~${OSECTOR}~${SECTOR}~g" ~/.zen/tmp/${MOATS}/MadeInZion.json - ### CREATE ${NID} ADDRESS FOR API & ROUND ROBIN FOR GW - cat ${MY_PATH}/../templates/data/local.api.json | sed "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json - cat ${MY_PATH}/../templates/data/local.gw.json | sed "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json +### CREATE ${NID} ADDRESS FOR API & ROUND ROBIN FOR GW +cat ${MY_PATH}/../templates/data/local.api.json | sed "s~_NID_~${WID}~g" > ~/.zen/tmp/${MOATS}/local.api.json +cat ${MY_PATH}/../templates/data/local.gw.json | sed "s~_NID_~${NID}~g" > ~/.zen/tmp/${MOATS}/local.gw.json - # Create"${PLAYER}_feed" Key ! DERIVATED ! "$SALT" "$PEPPER $G1PUB" - ${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/feed.ipfskey "$SALT" "$PEPPER $G1PUB" - FEEDNS=$(ipfs key import "${PLAYER}_feed" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/feed.ipfskey) +# Create"${PLAYER}_feed" Key ! DERIVATED ! "$SALT" "$PEPPER $G1PUB" +ipfs key rm "${PLAYER}_feed" 2>/dev/null +${MY_PATH}/../tools/keygen -t ipfs -o ~/.zen/tmp/${MOATS}/feed.ipfskey "$SALT" "$PEPPER $G1PUB" +FEEDNS=$(ipfs key import "${PLAYER}_feed" -f pem-pkcs8-cleartext ~/.zen/tmp/${MOATS}/feed.ipfskey) - ## MAKE LightBeam Plugin Tiddler ${PLAYER}_feed - # $:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json +## MAKE LightBeam Plugin Tiddler ${PLAYER}_feed +# $:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name","text":"'${PLAYER}_feed'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-name.json +echo '[{"title":"$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key","text":"'${FEEDNS}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-key.json - ## NATOOLS ENCRYPT - #~ echo "# NATOOLS ENCODING MYSELF feed.ipfskey (TODO: could be decoded to compare with G1lib.js) " - ${MY_PATH}/../tools/natools.py encrypt -p $G1PUB -i $HOME/.zen/tmp/${MOATS}/feed.ipfskey -o $HOME/.zen/tmp/${MOATS}/feed.ipfskey.$G1PUB.enc - ENCODING=$(cat $HOME/.zen/tmp/${MOATS}/feed.ipfskey.$G1PUB.enc | base16) - #~ echo ${ENCODING} - echo '[{"title":"$:/plugins/astroport/lightbeams/saver/g1/lightbeam-natools-feed","text":"'${ENCODING}'","tags":""}]' > ~/.zen/tmp/${MOATS}/lightbeam-natools.json + ## ADD SYSTEM TW +tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ + --import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/local.api.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/local.gw.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/AstroID.json "application/json" \ + --import ~/.zen/tmp/${MOATS}/MadeInZion.json "application/json" \ +--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_api.json" "application/json" \ +--import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_gateway.json" "application/json" \ + --output ~/.zen/tmp/${MOATS} --render "$:/core/save/all" "tw.html" "text/plain" - #~ echo - #~ echo "IPFS GATEWAY : ${NID}" - # cat ~/.zen/tmp/${MOATS}/local.gw.json | jq -r - #~ echo "IPFS API : ${WID}" - # cat ~/.zen/tmp/${MOATS}/local.api.json | jq -r - #~ echo ">>> RSS FEED : ${myIPFS}/ipns/${FEEDNS}" - #~ ## CHANGE SELECTED GW & API - - ## ADD SYSTEM TW - tiddlywiki --load ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ - --import ~/.zen/tmp/${MOATS}/lightbeam-name.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-key.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/lightbeam-natools.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/local.api.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/local.gw.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/GPS.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/AstroID.json "application/json" \ - --import ~/.zen/tmp/${MOATS}/MadeInZion.json "application/json" \ - --import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_api.json" "application/json" \ - --import "${MY_PATH}/../templates/tw/\$ _ipfs_saver_gateway.json" "application/json" \ - --output ~/.zen/tmp/${MOATS} --render "$:/core/save/all" "tw.html" "text/plain" - - ## COPY TO LOCAL & 12345 IPFSNODEID MAP - [[ -s ~/.zen/tmp/${MOATS}/tw.html ]] \ - && cp -f ~/.zen/tmp/${MOATS}/tw.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ - && mkdir -p ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \ - && cp ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/ \ - || ( echo "Problem with TW - EXIT" && exit 1 ) + ## COPY TO LOCAL & 12345 IPFSNODEID MAP + [[ -s ~/.zen/tmp/${MOATS}/tw.html ]] \ + && cp -f ~/.zen/tmp/${MOATS}/tw.html ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html \ + && mkdir -p ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER} \ + && cp ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html ~/.zen/tmp/${IPFSNODEID}/TW/${PLAYER}/ \ + || ( echo "Problem with TW - EXIT" && exit 1 ) ############################################################################ G1TW #### MAKE G1TW - [[ -s ~/.zen/G1BILLET/MAKE_G1BILLET.sh ]] && \ - ~/.zen/G1BILLET/MAKE_G1BILLET.sh "$SALT" "$PEPPER" "___" "$G1PUB" "${PASS}" "${PSEUDO-xastro}" "$ASTRONAUTENS" "$PLAYER" + [[ -s ~/.zen/G1BILLET/MAKE_G1BILLET.sh ]] && \ + ~/.zen/G1BILLET/MAKE_G1BILLET.sh "$SALT" "$PEPPER" "___" "$G1PUB" "${PASS}" "${PSEUDO-xastro}" "$ASTRONAUTENS" "$PLAYER" #### MADE # BILLETNAME=$(echo "$SALT" | sed 's/ /_/g') ## # IMAGE ~/.zen/G1BILLET/tmp/g1billet/${PASS}/${BILLETNAME}.BILLET.jpg ############################################################################ - ## MAKE IMAGE AVATAR WITH G1PUB QRCODE - if [[ $(which amzqr) ]]; then + ## MAKE IMAGE AVATAR WITH G1PUB QRCODE + if [[ $(which amzqr) ]]; then - GIMG="${MY_PATH}/../images/moa_net.png" - CIMG="${MY_PATH}/../images/zenticket.png" + GIMG="${MY_PATH}/../images/moa_net.png" + CIMG="${MY_PATH}/../images/zenticket.png" - # QRG1avatar.png - [[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] && amzqr "${G1PUB}" -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null - # QRTWavatar.png - [[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] && amzqr "${myIPFSGW}/ipns/${ASTRONAUTENS}" -l H -p "$GIMG" -c -n QRTWavatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null + # QRG1avatar.png + [[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] && amzqr "${G1PUB}" -l H -p "$CIMG" -c -n QRG1avatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null + # QRTWavatar.png + [[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] && amzqr "${myIPFSGW}/ipns/${ASTRONAUTENS}" -l H -p "$GIMG" -c -n QRTWavatar.png -d ~/.zen/game/players/${PLAYER}/ 1>/dev/null - else + else - [[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] \ - && cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/QRG1avatar.png + [[ ! -s ~/.zen/game/players/${PLAYER}/QRG1avatar.png ]] \ + && cp ~/.zen/game/players/${PLAYER}/QR.png ~/.zen/game/players/${PLAYER}/QRG1avatar.png - [[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] \ - && cp ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png ~/.zen/game/players/${PLAYER}/QRTWavatar.png + [[ ! -s ~/.zen/game/players/${PLAYER}/QRTWavatar.png ]] \ + && cp ~/.zen/game/players/${PLAYER}/QR.ASTRONAUTENS.png ~/.zen/game/players/${PLAYER}/QRTWavatar.png - fi + fi - ## ID CARD & QRCODE - convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 300 ~/.zen/tmp/${MOATS}/QR.png 2>/dev/null - convert ~/.zen/game/players/${PLAYER}/QRTWavatar.png -resize 240 ~/.zen/tmp/${MOATS}/TW.png 2>/dev/null - convert ${MY_PATH}/../images/astroport.jpg -resize 240 ~/.zen/tmp/${MOATS}/ASTROPORT.png 2>/dev/null + ## ID CARD & QRCODE + convert ~/.zen/game/players/${PLAYER}/QRG1avatar.png -resize 300 ~/.zen/tmp/${MOATS}/QR.png 2>/dev/null + convert ~/.zen/game/players/${PLAYER}/QRTWavatar.png -resize 240 ~/.zen/tmp/${MOATS}/TW.png 2>/dev/null + convert ${MY_PATH}/../images/astroport.jpg -resize 240 ~/.zen/tmp/${MOATS}/ASTROPORT.png 2>/dev/null - composite -compose Over -gravity SouthEast -geometry +5+5 ~/.zen/tmp/${MOATS}/ASTROPORT.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/${MOATS}/astroport.png 2>/dev/null - composite -compose Over -gravity NorthEast -geometry +10+55 ~/.zen/tmp/${MOATS}/TW.png ~/.zen/tmp/${MOATS}/astroport.png ~/.zen/tmp/${MOATS}/astroport2.png 2>/dev/null - composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/${MOATS}/QR.png ~/.zen/tmp/${MOATS}/astroport2.png ~/.zen/tmp/${MOATS}/one.png 2>/dev/null - convert -gravity SouthWest -pointsize 12 -fill black -draw "text 5,3 \"$G1PUB\"" ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/txt.png + composite -compose Over -gravity SouthEast -geometry +5+5 ~/.zen/tmp/${MOATS}/ASTROPORT.png ${MY_PATH}/../images/Brother_600x400.png ~/.zen/tmp/${MOATS}/astroport.png 2>/dev/null + composite -compose Over -gravity NorthEast -geometry +10+55 ~/.zen/tmp/${MOATS}/TW.png ~/.zen/tmp/${MOATS}/astroport.png ~/.zen/tmp/${MOATS}/astroport2.png 2>/dev/null + composite -compose Over -gravity NorthWest -geometry +0+0 ~/.zen/tmp/${MOATS}/QR.png ~/.zen/tmp/${MOATS}/astroport2.png ~/.zen/tmp/${MOATS}/one.png 2>/dev/null + convert -gravity SouthWest -pointsize 12 -fill black -draw "text 5,3 \"$G1PUB\"" ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/txt.png - # composite -compose Over -gravity NorthWest -geometry +280+280 ~/.zen/game/players/.current/QRsec.png ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/image.png + # composite -compose Over -gravity NorthWest -geometry +280+280 ~/.zen/game/players/.current/QRsec.png ~/.zen/tmp/${MOATS}/one.png ~/.zen/tmp/${MOATS}/image.png - convert -gravity northwest -pointsize 25 -fill black -draw "text 50,300 \"$PSEUDO\"" ~/.zen/tmp/${MOATS}/txt.png ~/.zen/tmp/${MOATS}/image.png - convert -gravity northwest -pointsize 20 -fill black -draw "text 300,40 \"${PLAYER}\"" ~/.zen/tmp/${MOATS}/image.png ~/.zen/tmp/${MOATS}/pseudo.png + convert -gravity northwest -pointsize 25 -fill black -draw "text 50,300 \"$PSEUDO\"" ~/.zen/tmp/${MOATS}/txt.png ~/.zen/tmp/${MOATS}/image.png + convert -gravity northwest -pointsize 20 -fill black -draw "text 300,40 \"${PLAYER}\"" ~/.zen/tmp/${MOATS}/image.png ~/.zen/tmp/${MOATS}/pseudo.png - ## WITH CONFIDENTIAL (LOCAL PRINT) - convert -gravity northeast -pointsize 25 -fill black -draw "text 20,180 \"$PASS\"" ~/.zen/tmp/${MOATS}/pseudo.png ~/.zen/tmp/${MOATS}/pass.png - convert -gravity northwest -pointsize 25 -fill black -draw "text 300,100 \"$SALT\"" ~/.zen/tmp/${MOATS}/pass.png ~/.zen/tmp/${MOATS}/salt.png - convert -gravity northwest -pointsize 25 -fill black -draw "text 300,140 \"$PEPPER\"" ~/.zen/tmp/${MOATS}/salt.png ~/.zen/game/players/${PLAYER}/ID.png + ## WITH CONFIDENTIAL (LOCAL PRINT) + convert -gravity northeast -pointsize 25 -fill black -draw "text 20,180 \"$PASS\"" ~/.zen/tmp/${MOATS}/pseudo.png ~/.zen/tmp/${MOATS}/pass.png + convert -gravity northwest -pointsize 25 -fill black -draw "text 300,100 \"$SALT\"" ~/.zen/tmp/${MOATS}/pass.png ~/.zen/tmp/${MOATS}/salt.png + convert -gravity northwest -pointsize 25 -fill black -draw "text 300,140 \"$PEPPER\"" ~/.zen/tmp/${MOATS}/salt.png ~/.zen/game/players/${PLAYER}/ID.png - # INSERTED IMAGE IPFS - # IASTRO=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ID.png | tail -n 1) ## ZENCARD PUBLIC / PRIVATE - IASTRO="/ipfs/$(ipfs add -Hq ~/.zen/tmp/${MOATS}/pseudo.png | tail -n 1)" ## ZENCARD PUBLIC ONLY + # INSERTED IMAGE IPFS + # IASTRO=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ID.png | tail -n 1) ## ZENCARD PUBLIC / PRIVATE + IASTRO="/ipfs/$(ipfs add -Hq ~/.zen/tmp/${MOATS}/pseudo.png | tail -n 1)" ## ZENCARD PUBLIC ONLY - ## Update ZenCard - [[ ! $ZenCard ]] && ZenCard="/ipfs/bafybeidhghlcx3zdzdah2pzddhoicywmydintj4mosgtygr6f2dlfwmg7a" - sed -i "s~${ZenCard}~${IASTRO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html + ## Update ZenCard + [[ ! $ZenCard ]] && ZenCard="/ipfs/bafybeidhghlcx3zdzdah2pzddhoicywmydintj4mosgtygr6f2dlfwmg7a" + sed -i "s~${ZenCard}~${IASTRO}~g" ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html - echo - echo "♥ IPFS Ŋ1 TW INIT ♥" - echo "TW ${NID}/ipns/${ASTRONAUTENS}/" - IPUSH=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1) - echo $IPUSH > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain # Contains last IPFS backup PLAYER KEY - echo $MOATS > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats +echo +echo "♥ IPFS Ŋ1 TW INIT ♥" +echo "TW ${NID}/ipns/${ASTRONAUTENS}/" +IPUSH=$(ipfs add -Hq ~/.zen/game/players/${PLAYER}/ipfs/moa/index.html | tail -n 1) +echo $IPUSH > ~/.zen/game/players/${PLAYER}/ipfs/moa/.chain # Contains last IPFS backup PLAYER KEY +echo $MOATS > ~/.zen/game/players/${PLAYER}/ipfs/moa/.moats - ( - #~ echo "$MOATS :: /ipfs/$IPUSH" - ipfs name publish --key=${PLAYER} /ipfs/$IPUSH - #~ echo "TW PUBLISHING DONE" - ) & +( + #~ echo "$MOATS :: /ipfs/$IPUSH" + ipfs name publish --key=${PLAYER} /ipfs/$IPUSH + #~ echo "TW PUBLISHING DONE" +) & - ## MEMORISE PLAYER Ŋ1 ZONE - echo "${PLAYER}" > ~/.zen/game/players/${PLAYER}/.player - echo "$PSEUDO" > ~/.zen/game/players/${PLAYER}/.pseudo - echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/.g1pub +## MEMORISE PLAYER Ŋ1 ZONE +echo "${PLAYER}" > ~/.zen/game/players/${PLAYER}/.player +echo "$PSEUDO" > ~/.zen/game/players/${PLAYER}/.pseudo +echo "$G1PUB" > ~/.zen/game/players/${PLAYER}/.g1pub - echo "${ASTRONAUTENS}" > ~/.zen/game/players/${PLAYER}/.playerns - - echo "SALT=\"$SALT\"" > ~/.zen/game/players/${PLAYER}/secret.june - echo "PEPPER=\"$PEPPER\"" >> ~/.zen/game/players/${PLAYER}/secret.june +echo "${ASTRONAUTENS}" > ~/.zen/game/players/${PLAYER}/.playerns #~ echo; echo "Création Clefs et QR codes pour accès au niveau Astroport Ŋ1"; sleep 1 @@ -484,9 +473,10 @@ echo "--- PLAYER : ${PLAYER} - DATA PROTOCOL LAYER LOADED"; [[ $XDG_SESSION_TYPE == 'x11' || $XDG_SESSION_TYPE == 'wayland' ]] && xdg-open "${myIPFS}/ipns/${ASTRONAUTENS}" && espeak "YOUR PASS IS $PASS" -################# PREPARE DOCKERIZATION -#~ [[ -l ~/.zen/game/players/.current ]] \ -#~ && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current +####### NO CURRENT ? PLAYER = .current +[[ ! -e ~/.zen/game/players/.current ]] \ + && rm ~/.zen/game/players/.current 2>/dev/null \ + && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current . "${MY_PATH}/../tools/my.sh" @@ -528,8 +518,7 @@ echo " " echo "* AstroID : with PASS : $PASS" echo "${NID}/ipns/${ASTRONAUTENS}#AstroID" echo -echo "* UMap : registration at ${LAT}, ${LON} -${myIPFS}${URL}" +echo "* UMap : registration at ${LAT}, ${LON}" echo echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" echo "" @@ -550,7 +539,11 @@ echo " } -

UPlanet : ZenCard + TW

" > ~/.zen/tmp/${MOATS}/ZenCard.html +

UPlanet : TW

" > ~/.zen/tmp/${MOATS}/ZenCard.html + +echo "

ZenCard

+
" >> ~/.zen/tmp/${MOATS}/ZenCard.html + asciiart="${MY_PATH}/../images/astroport.art" while IFS= read -r line do @@ -558,9 +551,7 @@ do echo "
" >> ~/.zen/tmp/${MOATS}/ZenCard.html done <"$asciiart" -echo "

PRINT & SHARE ZenCard

-
-" >> ~/.zen/tmp/${MOATS}/ZenCard.html +echo "" >> ~/.zen/tmp/${MOATS}/ZenCard.html $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/ZenCard.html "ZenCard (${PLAYER}) " @@ -581,7 +572,14 @@ echo " } -

UPlanet : AstroID ($PASS)

" > ~/.zen/tmp/${MOATS}/AstroID.html +

UPlanet : AstroID

" > ~/.zen/tmp/${MOATS}/AstroID.html + +echo "AstroID
+

SECRET1=\"$SALT\" SECRET2=\"$PEPPER\" ($PASS)

+

ASTROPORT : /ipns/${IPFSNODEID}

+

<--> SECTOR : ${SECTOR} <-->

+" >> ~/.zen/tmp/${MOATS}/AstroID.html + asciiart="${MY_PATH}/../images/logoastro.art" while IFS= read -r line do @@ -589,13 +587,7 @@ do echo "
" >> ~/.zen/tmp/${MOATS}/AstroID.html done <"$asciiart" -echo " -

<--> 0.1 SECTOR : ${SECTOR} <-->

-
PRINT & KEEP SAFE AstroID
-
SECRET1=$SALT
SECRET2=$PEPPER
($PASS)
-

ASTROPORT : /ipns/${IPFSNODEID}

-Uplanet -" >> ~/.zen/tmp/${MOATS}/AstroID.html +echo "" >> ~/.zen/tmp/${MOATS}/AstroID.html $MY_PATH/../tools/mailjet.sh "${PLAYER}" ~/.zen/tmp/${MOATS}/AstroID.html "AstroID (${PLAYER}) " diff --git a/RUNTIME/VOEUX.refresh.sh b/RUNTIME/VOEUX.refresh.sh index 7ef9db3ac..8835dadb0 100755 --- a/RUNTIME/VOEUX.refresh.sh +++ b/RUNTIME/VOEUX.refresh.sh @@ -275,7 +275,7 @@ do ${MY_PATH}/../tools/json_dir.all.sh ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME} WISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* | tail -n 1) # ADDING JSONS TO IPFS - ipfs name publish -k $VOEUKEY /ipfs/$WISHFLUX # PUBLISH $VOEUKEY + ipfs --timeout 180s name publish -k $VOEUKEY /ipfs/$WISHFLUX # PUBLISH $VOEUKEY echo "## ASK ${myIPFSGW}${IPNS_VOEUNS} TO REFRESH" ## TODO LOOP BOOSTRAP & ONLINE FRIENDS curl -m 120 -so ~/.zen/tmp/${WISHNAME}.astroindex.html "${myIPFSGW}${IPNS_VOEUNS}" & @@ -285,6 +285,12 @@ do echo "WALLET ${VOEUKEY} FOUNDED by ${G1PUB}" cp -f ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${WISHNAME}/* ~/.zen/game/players/${PLAYER}/G1${WISHNAME}/${G1PUB}/ 2>/dev/null + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + echo "SEARCH WORLD SAME WISH CACHE" + [[ "$WISHNAME" != "" ]] && cat ~/.zen/game/world/$WISHNAME/*/.link 2>/dev/null + ## ANYTIME A PLAYER CHOOSE AN ASTROPORT - LOCAL WISH CACHE IS EXTENDED - + echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + done < ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/${PLAYER}.g1wishes.txt ################################################ @@ -304,30 +310,29 @@ if [[ ${wishnumbers} -gt 0 ]]; then LON=$(makecoord $LON) echo "LAT=${LAT}; LON=${LON}; UMAPNS=${TWMAPNS}" rm ~/.zen/tmp/${MOATS}/GPS.json - SECLAT="${LAT::-1}" - SECLON="${LON::-1}" - SECTOR="_${SECLAT}_${SECLON}" + SLAT="${LAT::-1}" + SLON="${LON::-1}" + SECTOR="_${SLAT}_${SLON}" + RLAT="$(echo ${LAT} | cut -d '.' -f 1)" + RLON="$(echo ${LON} | cut -d '.' -f 1)" + REGION="_${RLAT}_${RLON}" ############################################################## - SECTORG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}") + UMAPG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/G1PUB | tail -n 1) + SECTORG1PUB=$(cat ~/.zen/tmp/swarm/12D*/UPLANET/__/_${RLAT}_${RLON}/_${SLAT}_${SLON}/_${LAT}_${LON}/SECTORG1PUB | tail -n 1) + [[ ${UMAPG1PUB} == "" ]] && UMAPG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${LAT}" "${UPLANETNAME}${LON}") + [[ ${SECTORG1PUB} == "" ]] && SECTORG1PUB=$(${MY_PATH}/../tools/keygen -t duniter "${UPLANETNAME}${SECTOR}" "${UPLANETNAME}${SECTOR}") ############################################################## GRATITUDE=$($MY_PATH/../tools/getcoins_from_gratitude_box.sh) G1AMOUNT=$(echo "$GRATITUDE / 10" | bc -l | xargs printf "%.2f" | sed "s~,~.~g" ) echo "***** PLAYER $PLAYER *************************************" - echo "GRATITUDE ${GRATITUDE} ZEN = ${G1AMOUNT} G1 - to ${SECTOR} WALLET ${SECTORG1PUB}" + echo "GRATITUDE ${GRATITUDE} ZEN (${G1AMOUNT} G1) + to UMAP_${LAT}_${LON} WALLET ${UMAPG1PUB}" echo "************************************************************" + YOUSER=$($MY_PATH/../tools/clyuseryomail.sh "${PLAYER}") MYWISHFLUX=$(ipfs add -qHwr ~/.zen/tmp/${IPFSNODEID}/WISH/${PLAYER}/g1voeu/* | tail -n 1) # ADDING JSONS TO IPFS - ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${G1AMOUNT}" "${SECTORG1PUB}" "UPLANET:TWISH:$TODATE:/ipfs/${MYWISHFLUX}" + ${MY_PATH}/../tools/PAY4SURE.sh "${HOME}/.zen/game/players/${PLAYER}/secret.dunikey" "${G1AMOUNT}" "${UMAPG1PUB}" "UPLANET:UWISH:$YOUSER:/ipfs/${MYWISHFLUX}" fi ################################################ ################################################ GRATITUDE SENT TO SECTOR -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" -echo "TODO : REFRESH WORLD SAME WISH CACHE" -cat ~/.zen/game/world/$WISHNAME/*/.link 2>/dev/null -## ANYTIME A PLAYER CHOOSE AN ASTROPORT - LOCAL WISH CACHE IS EXTENDED - -echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" - -############################################ - exit 0 diff --git a/RUNTIME/ZEN.SECTOR.memory.sh b/RUNTIME/ZEN.SECTOR.memory.sh index 092a5b3f1..6e45e583b 100755 --- a/RUNTIME/ZEN.SECTOR.memory.sh +++ b/RUNTIME/ZEN.SECTOR.memory.sh @@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized SECTOR="$1" [[ $SECTOR == "" ]] && echo "MISSING SECTOR ADRESS" && exit 1 MOATS="$2" +G1PUB="$3" ## CHECK FOR BAD PARAM [[ ! -d ~/.zen/tmp/${MOATS-empty}/${SECTOR-empty}/ ]] \ @@ -40,23 +41,24 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${REGIONG1PUB} | tail -n 1) echo "REGION : ${REGION} (${COINS} G1) WALLET : ${REGIONG1PUB}" ## RETRIEVE FROM REGION UKEY -${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${REGIONG1PUB} -j \ +${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${REGIONG1PUB} -j \ > ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ## SCAN FOR UPLANET:${SECTOR} in TX if [[ -s ~/.zen/tmp/${MOATS}/${REGION}.g1history.json ]]; then - intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json) - ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':/ipfs/\K[^"]+') - todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':\K[^:]*') - echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> /ipfs/$ipfs_pop" + intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1) + ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev) + todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev) + echo "SYNC ${SECTOR} <= $todate => $ipfs_pop" - ## TODO: SECURITY PATCH : check payment emitter is SECTORG1PUB if [[ $ipfs_pop ]]; then - echo "from $todate memory slot" - ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop + g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .pubkey' ~/.zen/tmp/${MOATS}/${REGION}.g1history.json | tail -n 1) + echo "INFO :: $g1pub Memory updater" + ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${SECTOR} $ipfs_pop \ + || echo "$ipfs_pop ERROR ... " else - echo "WARNING cannot remember... scan for more TX ??!" + echo "WARNING cannot revover any memory !!" fi else @@ -67,30 +69,4 @@ fi end=`date +%s` echo "(${SECTOR}.memory) ${todate} get time : "`expr $end - $start` seconds. -#~ ## EXTRACT WORLDG1PUB HISTORY -#~ ${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${WORLDG1PUB} -j \ - #~ > ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json - -#~ ## SCAN FOR UPLANET:${SECTOR} in TX -#~ if [[ -s ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json ]]; then - - #~ intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${SECTOR}"'")) | .comment' ~/.zen/tmp/${MOATS}/${WORLDG1PUB}.g1history.json) - #~ ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':/ipfs/\K[^"]+') - #~ todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${SECTOR}"':\K[^:]*') - #~ echo "SYNC ~/.zen/tmp/${MOATS}/${SECTOR} <=> /ipfs/$ipfs_pop" - - #~ if [[ $ipfs_pop ]]; then - #~ echo "from $todate memory slot" - #~ ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${SECTOR} /ipfs/$ipfs_pop - #~ end=`date +%s` - #~ echo "(${SECTOR}) ${todate} get time : "`expr $end - $start` seconds. - #~ else - #~ echo "WARNING cannot remember... scan for more TX ??!" - #~ fi - -#~ else - #~ echo "FATAL ERROR cannot access to WORLDG1PUB history" - #~ exit 1 -#~ fi - exit 0 diff --git a/RUNTIME/ZEN.UMAP.memory.sh b/RUNTIME/ZEN.UMAP.memory.sh index 569940cf5..a88ae3106 100755 --- a/RUNTIME/ZEN.UMAP.memory.sh +++ b/RUNTIME/ZEN.UMAP.memory.sh @@ -17,6 +17,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized UMAP="$1" [[ $UMAP == "" ]] && echo "MISSING UMAP ADRESS" && exit 1 MOATS="$2" +G1PUB="$3" ## CHECK FOR BAD PARAM [[ ! -d ~/.zen/tmp/${MOATS-empty}/${UMAP-empty}/ ]] \ @@ -43,23 +44,26 @@ COINS=$($MY_PATH/../tools/COINScheck.sh ${SECTORG1PUB} | tail -n 1) echo "SECTOR : ${SECTOR} (${COINS} G1) WALLET : ${SECTORG1PUB}" ## RETRIEVE FROM SECTOR UKEY -${MY_PATH}/timeout.sh -t 20 $MY_PATH/jaklis/jaklis.py history -n 300 -p ${SECTORG1PUB} -j \ +${MY_PATH}/../tools/timeout.sh -t 20 ${MY_PATH}/../tools/jaklis/jaklis.py history -n 100 -p ${SECTORG1PUB} -j \ > ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ## SCAN FOR UPLANET:${UMAP} in TX if [[ -s ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json ]]; then - intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json) - ipfs_pop=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':/ipfs/\K[^"]+') - todate=$(echo "$intercom" | grep -oP 'UPLANET:'"${UMAP}"':\K[^:]*') - echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> /ipfs/$ipfs_pop" + intercom=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .comment' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1) + ipfs_pop=$(echo "$intercom" | rev | cut -d ':' -f 1 | rev) + todate=$(echo "$intercom" | rev | cut -d ':' -f 2 | rev) + echo "SYNC ~/.zen/tmp/${MOATS}/${UMAP} <=> $ipfs_pop" ## TODO: SECURITY PATCH : check payment emitter is UMAPG1PUB if [[ $ipfs_pop ]]; then - echo "from $todate memory slot" - ipfs --timeout 90s get -o ~/.zen/tmp/${MOATS}/${UMAP} /ipfs/$ipfs_pop + echo "FOUND $todate MEMORY SLOT" + g1pub=$(jq -r '.[] | select(.comment | test("UPLANET:'"${UMAP}"'")) | .pubkey' ~/.zen/tmp/${MOATS}/${SECTOR}.g1history.json | tail -n 1) + [[ "$g1pub" != "$G1PUB" ]] && echo "INFO :: $g1pub Memory updater" + ipfs --timeout 180s get -o ~/.zen/tmp/${MOATS}/${UMAP} $ipfs_pop \ + || echo "$ipfs_pop ERROR ... " else - echo "WARNING cannot remember... scan for more TX ??!" + echo "WARNING cannot revover any memory !!" fi else diff --git a/WWW/CopierYoutube/index.html b/WWW/CopierYoutube/index.html index f33c0e681..e3ec8c939 100644 --- a/WWW/CopierYoutube/index.html +++ b/WWW/CopierYoutube/index.html @@ -170,7 +170,7 @@ let durees = []; // Récupérer les données - fetch('http://127.0.0.1:8080_VOEUNS_/__PLAYER_.tiddlers.json') + fetch('http://127.0.0.1:8080_VOEUNS_/__PLAYER_.tiddlers.rss.json') .then(res => res.json()) .then(data => { // Extraire les gifanime diff --git a/_12345.sh b/_12345.sh index b1e3a8b3e..0e1c3606b 100755 --- a/_12345.sh +++ b/_12345.sh @@ -47,10 +47,11 @@ CHAN=$(ipfs key list -l | grep -w "MySwarm_${IPFSNODEID}" | cut -d ' ' -f 1) ####################################################### ## CREATE MySwarm KEYS ? -if [[ ${CHAN} == "" || ${CHAN} == "null" ]]; then +if [[ ${CHAN} == "" || ${CHAN} == "null" || ! -s ~/.zen/game/myswarm_secret.june ]]; then echo "## MAKE /proc/cpuinfo IPFSNODEID DERIVATED KEY ##" SECRET1=$(cat /proc/cpuinfo | grep -Ev MHz | sha512sum | cut -d ' ' -f 1) SECRET2=${IPFSNODEID} + ipfs key rm "MySwarm_${IPFSNODEID}" echo "SALT=$SECRET1 && PEPPER=$SECRET2" > ~/.zen/game/myswarm_secret.june ${MY_PATH}/tools/keygen -t ipfs -o ~/.zen/game/myswarm_secret.ipfskey "$SECRET1" "$SECRET2" ${MY_PATH}/tools/keygen -t duniter -o ~/.zen/game/myswarm_secret.dunikey "$SECRET1" "$SECRET2" @@ -65,15 +66,16 @@ echo "" > ~/.z ############################################################ ############################################################ echo 0 > ~/.zen/tmp/random.sleep -################### -# NEVER ENDING LOOP + #### UPLANET FLASHMEM UPDATES -${MY_PATH}/RUNTIME/UPlanetKEYS_refresh.sh & +${MY_PATH}/RUNTIME/GEOKEYS_refresh.sh & ################################################################### ## WILL SCAN ALL BOOSTRAP - REFRESH "SELF IPNS BALISE" - RECEIVE UPLINK ORDERS ################################################################### +################### +# NEVER ENDING LOOP while true; do start=`date +%s` @@ -82,16 +84,27 @@ while true; do lastrun=$(cat ~/.zen/tmp/${IPFSNODEID}/_MySwarm.moats) duree=$(expr ${MOATS} - $lastrun) + ### STOP SWARM SYNC 1H BEFORE 20H12 + [[ $(date +"%H%M") -gt 1912 ]] \ + && echo "$(date +"%H%M") : 20H12 is coming... " && continue + ## FIXING TIC TAC FOR NODE & SWARM REFRESH ( 1H ) if [[ ${duree} -gt 3600000 ]]; then + PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null)) + [[ ${PLAYERONE[@]} == "" ]] && echo "EMPTY ASTROPORT - NO PLAYER - NO PUBLISHING" && continue + + ## CHECK IF IPFS NODE IS RESPONDING + ipfs --timeout=30s swarm peers 2>/dev/null > ~/.zen/tmp/ipfs.swarm.peers + [[ ! -s ~/.zen/tmp/ipfs.swarm.peers || $? != 0 ]] \ + && echo "---- SWARM COMMUNICATION BROKEN / RESTARTING IPFS DAEMON ----" \ + && sudo systemctl restart ipfs \ + && sleep 60 + ${MY_PATH}/ping_bootstrap.sh #### UPLANET FLASHMEM UPDATES - ${MY_PATH}/RUNTIME/UPlanetKEYS_refresh.sh & - - PLAYERONE=($(ls -t ~/.zen/game/players/ | grep "@" 2>/dev/null)) - [[ ${PLAYERONE[@]} == "" ]] && echo "EMPTY ASTROPORT - NO PLAYER - NO PUBLISHING" && continue + ${MY_PATH}/RUNTIME/GEOKEYS_refresh.sh & ##################################### ( ##### SUB-PROCESS £ @@ -101,7 +114,7 @@ while true; do for player in ${PLAYERONE[@]}; do g1pub=$(cat ~/.zen/game/players/${player}/.g1pub 2>/dev/null) # Check Station PLAYER payments - PENDINGS=($(ls "$HOME/.zen/game/pending/${g1pub}/*.TX")) + PENDINGS=($(ls "$HOME/.zen/game/pending/${g1pub}/*.TX" 2>/dev/null)) for pending in "${PENDINGS[@]}"; do echo ${pending} # TODO TREAT PENDINGS diff --git a/adventure/BLOCKCHAIN/Fred.ipfsnodeid b/adventure/BLOCKCHAIN/Fred.ipfsnodeid new file mode 100644 index 000000000..eb4c36f59 --- /dev/null +++ b/adventure/BLOCKCHAIN/Fred.ipfsnodeid @@ -0,0 +1 @@ +12D3KooWK1ACupF7RD3MNvkBFU9Z6fX11pKRAR99WDzEUiYp5t8j diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/block.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/block.txt new file mode 100644 index 000000000..3fb209436 --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/block.txt @@ -0,0 +1,20 @@ +1709306506 N8.txt= -25 +1709306506 N2.txt= +25 +1709306506 N3.txt= -1 +1709306506 N10.txt= +1 +1709306506 N7.txt= -43 +1709306506 N8.txt= +43 +1709306506 N3.txt= -14 +1709306506 N10.txt= +14 +1709306506 N9.txt= -48 +1709306506 N6.txt= +48 +1709306506 N10.txt= -37 +1709306506 N9.txt= +37 +1709306506 N4.txt= -21 +1709306506 N5.txt= +21 +1709306506 N4.txt= -15 +1709306506 N7.txt= +15 +1709306506 N6.txt= -47 +1709306506 N3.txt= +47 +1709306506 N6.txt= -1 +1709306506 N3.txt= +1 diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/chaine.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/chaine.txt new file mode 100644 index 000000000..838700d9f --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/chaine.txt @@ -0,0 +1,200 @@ +1709306497 N2.txt= -6 +1709306497 N4.txt= +6 +1709306497 N2.txt= -23 +1709306497 N7.txt= +23 +1709306497 N2.txt= -31 +1709306497 N8.txt= +31 +1709306497 N3.txt= -42 +1709306497 N8.txt= +42 +1709306497 N4.txt= -16 +1709306497 N8.txt= +16 +1709306497 N5.txt= -9 +1709306497 N3.txt= +9 +1709306497 N9.txt= -27 +1709306497 N10.txt= +27 +1709306497 N8.txt= -29 +1709306497 N10.txt= +29 +1709306497 N8.txt= -19 +1709306497 N4.txt= +19 +1709306497 N1.txt= -23 +1709306497 N9.txt= +23 +1709306498 N7.txt= -34 +1709306498 N5.txt= +34 +1709306498 N7.txt= -8 +1709306498 N4.txt= +8 +1709306498 N6.txt= -46 +1709306498 N4.txt= +46 +1709306498 N9.txt= -18 +1709306498 N5.txt= +18 +1709306498 N2.txt= -40 +1709306498 N3.txt= +40 +1709306498 N1.txt= -42 +1709306498 N9.txt= +42 +1709306498 N7.txt= -21 +1709306498 N10.txt= +21 +1709306498 N4.txt= -27 +1709306498 N8.txt= +27 +1709306498 N10.txt= -33 +1709306498 N1.txt= +33 +1709306498 N3.txt= -7 +1709306498 N10.txt= +7 +1709306499 N7.txt= -26 +1709306499 N6.txt= +26 +1709306499 N5.txt= -1 +1709306499 N3.txt= +1 +1709306499 N7.txt= -49 +1709306499 N10.txt= +49 +1709306499 N9.txt= -26 +1709306499 N3.txt= +26 +1709306499 N6.txt= -11 +1709306499 N10.txt= +11 +1709306499 N5.txt= -19 +1709306499 N9.txt= +19 +1709306499 N6.txt= -8 +1709306499 N3.txt= +8 +1709306499 N3.txt= -22 +1709306499 N5.txt= +22 +1709306499 N8.txt= -42 +1709306499 N5.txt= +42 +1709306499 N7.txt= -47 +1709306499 N6.txt= +47 +1709306500 N7.txt= -33 +1709306500 N5.txt= +33 +1709306500 N3.txt= -41 +1709306500 N7.txt= +41 +1709306500 N6.txt= -25 +1709306500 N3.txt= +25 +1709306500 N1.txt= -22 +1709306500 N8.txt= +22 +1709306500 N7.txt= -4 +1709306500 N8.txt= +4 +1709306500 N2.txt= -47 +1709306500 N3.txt= +47 +1709306500 N1.txt= -30 +1709306500 N9.txt= +30 +1709306500 N10.txt= -43 +1709306500 N1.txt= +43 +1709306500 N6.txt= -11 +1709306500 N1.txt= +11 +1709306500 N6.txt= -21 +1709306500 N8.txt= +21 +1709306501 N6.txt= -16 +1709306501 N8.txt= +16 +1709306501 N5.txt= -28 +1709306501 N6.txt= +28 +1709306501 N8.txt= -29 +1709306501 N4.txt= +29 +1709306501 N7.txt= -41 +1709306501 N10.txt= +41 +1709306501 N3.txt= -48 +1709306501 N6.txt= +48 +1709306501 N2.txt= -12 +1709306501 N9.txt= +12 +1709306501 N5.txt= -18 +1709306501 N4.txt= +18 +1709306501 N1.txt= -27 +1709306501 N2.txt= +27 +1709306501 N9.txt= -20 +1709306501 N2.txt= +20 +1709306501 N4.txt= -30 +1709306501 N8.txt= +30 +1709306502 N5.txt= -26 +1709306502 N10.txt= +26 +1709306502 N10.txt= -39 +1709306502 N6.txt= +39 +1709306502 N10.txt= -18 +1709306502 N4.txt= +18 +1709306502 N1.txt= -7 +1709306502 N3.txt= +7 +1709306502 N10.txt= -20 +1709306502 N2.txt= +20 +1709306502 N2.txt= -42 +1709306502 N5.txt= +42 +1709306502 N6.txt= -7 +1709306502 N2.txt= +7 +1709306502 N3.txt= -36 +1709306502 N1.txt= +36 +1709306502 N7.txt= -30 +1709306502 N10.txt= +30 +1709306502 N2.txt= -15 +1709306502 N6.txt= +15 +1709306503 N4.txt= -13 +1709306503 N8.txt= +13 +1709306503 N2.txt= -28 +1709306503 N9.txt= +28 +1709306503 N10.txt= -37 +1709306503 N1.txt= +37 +1709306503 N6.txt= -8 +1709306503 N1.txt= +8 +1709306503 N10.txt= -39 +1709306503 N6.txt= +39 +1709306503 N1.txt= -20 +1709306503 N3.txt= +20 +1709306503 N10.txt= -33 +1709306503 N4.txt= +33 +1709306503 N5.txt= -34 +1709306503 N9.txt= +34 +1709306503 N6.txt= -17 +1709306503 N4.txt= +17 +1709306503 N4.txt= -41 +1709306503 N5.txt= +41 +1709306504 N3.txt= -42 +1709306504 N10.txt= +42 +1709306504 N2.txt= -48 +1709306504 N1.txt= +48 +1709306504 N10.txt= -1 +1709306504 N2.txt= +1 +1709306504 N8.txt= -47 +1709306504 N5.txt= +47 +1709306504 N4.txt= -4 +1709306504 N1.txt= +4 +1709306504 N7.txt= -36 +1709306504 N10.txt= +36 +1709306504 N8.txt= -43 +1709306504 N5.txt= +43 +1709306504 N2.txt= -1 +1709306504 N10.txt= +1 +1709306504 N4.txt= -48 +1709306504 N10.txt= +48 +1709306504 N6.txt= -35 +1709306504 N7.txt= +35 +1709306505 N9.txt= -8 +1709306505 N2.txt= +8 +1709306505 N9.txt= -4 +1709306505 N2.txt= +4 +1709306505 N7.txt= -26 +1709306505 N10.txt= +26 +1709306505 N10.txt= -21 +1709306505 N7.txt= +21 +1709306505 N8.txt= -31 +1709306505 N7.txt= +31 +1709306505 N8.txt= -11 +1709306505 N10.txt= +11 +1709306505 N1.txt= -22 +1709306505 N6.txt= +22 +1709306505 N3.txt= -16 +1709306505 N5.txt= +16 +1709306505 N8.txt= -19 +1709306505 N3.txt= +19 +1709306505 N6.txt= -10 +1709306505 N4.txt= +10 +1709306506 N8.txt= -25 +1709306506 N2.txt= +25 +1709306506 N3.txt= -1 +1709306506 N10.txt= +1 +1709306506 N7.txt= -43 +1709306506 N8.txt= +43 +1709306506 N3.txt= -14 +1709306506 N10.txt= +14 +1709306506 N9.txt= -48 +1709306506 N6.txt= +48 +1709306506 N10.txt= -37 +1709306506 N9.txt= +37 +1709306506 N4.txt= -21 +1709306506 N5.txt= +21 +1709306506 N4.txt= -15 +1709306506 N7.txt= +15 +1709306506 N6.txt= -47 +1709306506 N3.txt= +47 +1709306506 N6.txt= -1 +1709306506 N3.txt= +1 diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/script.py b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/script.py new file mode 100644 index 000000000..c6b1e1d54 --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/FENETRE/script.py @@ -0,0 +1,80 @@ +import os +import random +import time + +folder_user = './../LACHAINE' + +def genesis(): + print("Lancement de la chaine") + with open("chaine.txt", "w") as fichier: + fichier.write("") + +def get_users_account(): + if os.path.isdir(folder_user): + users_name = os.listdir(folder_user) + return users_name + +def regeneration_account(users_name): + for user in users_name: + with open(os.path.join(folder_user, user), "w") as fichier: + fichier.write("N=100") + +def create_block(users_name): + with open("block.txt", "w") as fichier: + fichier.write("") + for i in range(10): + transaction = create_transaction(users_name) + +def create_transaction(users_name): + debtor = random.choice(users_name) + creditor = random.choice(users_name) + while debtor == creditor: + creditor = random.choice(users_name) + payment = random.randint(1, 50) + print('debtor:', debtor, 'creditor:', creditor, 'payment:', payment) + debit_value(debtor, payment) + credit_value(creditor, payment) + with open("block.txt", "a") as fichier: + timestamp = int(time.time()) + fichier.write(str(timestamp)+' '+debtor+"= -"+str(payment)+'\n') + fichier.write(str(timestamp)+' '+creditor+"= +"+str(payment)+'\n') + +def debit_value(debtor, payment): + with open(os.path.join(folder_user, debtor), "r") as fichier: + account = fichier.read() + account_value = int(account.split("=")[1]) + new_account_value = "N="+ str(account_value - payment) + with open(os.path.join(folder_user, debtor), "w") as fichier: + fichier.write(new_account_value) + + +def credit_value(creditor, payment): + with open(os.path.join(folder_user, creditor), "r") as fichier: + account = fichier.read() + account_value = int(account.split("=")[1]) + new_account_value = "N="+ str(account_value + payment) + with open(os.path.join(folder_user, creditor), "w") as fichier: + fichier.write(new_account_value) + + +def get_account_value(user): + path = os.path.join(folder_user, user) + with open(path, "r") as fichier: + contenu_lu = fichier.read() + print(user, contenu_lu) + +def push_to_chaine(): + with open("block.txt", "r") as fichier: + block = fichier.read() + with open("chaine.txt", "a") as fichier: + fichier.write(block) + +genesis() +users_name = get_users_account() +regeneration_account(users_name) +for i in range(10): + time.sleep(1) + create_block(users_name) + push_to_chaine() + + diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N1.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N1.txt new file mode 100644 index 000000000..7aca9f73e --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N1.txt @@ -0,0 +1 @@ +N=127 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N10.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N10.txt new file mode 100644 index 000000000..05e862c5a --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N10.txt @@ -0,0 +1 @@ +N=199 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N2.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N2.txt new file mode 100644 index 000000000..7a5dbb1fd --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N2.txt @@ -0,0 +1 @@ +N=-81 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N3.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N3.txt new file mode 100644 index 000000000..a68aed427 --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N3.txt @@ -0,0 +1 @@ +N=81 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N4.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N4.txt new file mode 100644 index 000000000..c4b9aa0bb --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N4.txt @@ -0,0 +1 @@ +N=89 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N5.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N5.txt new file mode 100644 index 000000000..4911f7aaf --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N5.txt @@ -0,0 +1 @@ +N=324 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N6.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N6.txt new file mode 100644 index 000000000..e38925bdb --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N6.txt @@ -0,0 +1 @@ +N=149 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N7.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N7.txt new file mode 100644 index 000000000..f677bfe4b --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N7.txt @@ -0,0 +1 @@ +N=-132 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N8.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N8.txt new file mode 100644 index 000000000..08fd8625a --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N8.txt @@ -0,0 +1 @@ +N=70 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N9.txt b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N9.txt new file mode 100644 index 000000000..b8840b552 --- /dev/null +++ b/adventure/BLOCKCHAIN/gaetan.corin@ynov.com/LACHAINE/N9.txt @@ -0,0 +1 @@ +N=174 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/jean.crypto@ynov.com b/adventure/BLOCKCHAIN/jean.crypto@ynov.com index 87536105b..55557bc84 100644 --- a/adventure/BLOCKCHAIN/jean.crypto@ynov.com +++ b/adventure/BLOCKCHAIN/jean.crypto@ynov.com @@ -7,3 +7,6 @@ Connaissances techniques: Python, Bash, Docker, SQL, MongoDB, Power BI Activité pro: Data analyst Objectif souhaité: Utiliser la technologie blockchain dans un point de vue Data engineering +--- + +ipfs_id=12D3KooWHfPeHQCqmZHzYs5pMa5LqEjxcEZDLJZgU92kLr5JAXhT diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N0.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N0.txt new file mode 100644 index 000000000..8d26133e7 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N0.txt @@ -0,0 +1 @@ +10.799999999999978 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N1.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N1.txt new file mode 100644 index 000000000..434bd5335 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N1.txt @@ -0,0 +1 @@ +31.39999999999999 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N10.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N10.txt new file mode 100644 index 000000000..0ddd92435 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N10.txt @@ -0,0 +1 @@ +60.699999999999974 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N2.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N2.txt new file mode 100644 index 000000000..e34e55d3b --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N2.txt @@ -0,0 +1 @@ +65.69999999999996 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N3.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N3.txt new file mode 100644 index 000000000..bff5ac8b1 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N3.txt @@ -0,0 +1 @@ +43.99999999999998 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N4.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N4.txt new file mode 100644 index 000000000..24045caf7 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N4.txt @@ -0,0 +1 @@ +-29.10000000000003 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N5.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N5.txt new file mode 100644 index 000000000..cd315402b --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N5.txt @@ -0,0 +1 @@ +50.89999999999997 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N6.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N6.txt new file mode 100644 index 000000000..1bd3938c5 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N6.txt @@ -0,0 +1 @@ +24.49999999999998 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N7.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N7.txt new file mode 100644 index 000000000..4cdd6ea45 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N7.txt @@ -0,0 +1 @@ +35.19999999999997 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N8.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N8.txt new file mode 100644 index 000000000..6dc8f4138 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N8.txt @@ -0,0 +1 @@ +70.59999999999997 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/LACHAINE/N9.txt b/adventure/BLOCKCHAIN/student001/LACHAINE/N9.txt new file mode 100644 index 000000000..7de2e2460 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/LACHAINE/N9.txt @@ -0,0 +1 @@ +35.29999999999996 \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/main.py b/adventure/BLOCKCHAIN/student001/main.py new file mode 100644 index 000000000..cf7de2c7c --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/main.py @@ -0,0 +1,103 @@ +N_TOTAL = 1000 + +from time import sleep +import random + + + + +def read_sold(user): + sold = 0 + with open(f'./LACHAINE/{user}.txt', 'r') as file: + file_content = file.read() + sold = float(file_content) + return sold + + + +def write_sold(user, sold): + with open(f'./LACHAINE/{user}.txt', 'w') as file: + file.write(str(sold)) + + + + + + +def read_tx(): + transactions = [] + with open('./tx_list.txt', 'r') as file: + file_content = file.read() + transactions = file_content.split('\n') + + tx = [] + for t in transactions: + tx.append(t.split(',')) + return tx + + +def main(): + tx = read_tx() + for t in tx: + sleep(0.1) + demandeur = t[5] + montant = float(t[4]) + montant_without_commission = montant - 0.10 + N1 = t[1] + if N1 != demandeur: + print(f'tx:{t[0]: <4} -> Processing transaction 🚫') + continue + print(f'tx:{t[0]: <4} -> Processing transaction ✅') + N2 = t[2] + tx_type = t[3] + sold_N1 = read_sold(N1) + sold_N2 = read_sold(N2) + if tx_type == '-': + sold_N1 -= montant_without_commission + sold_N2 += montant_without_commission + elif tx_type == '+': + sold_N1 -= montant_without_commission + sold_N2 -= montant_without_commission + write_sold(N1, sold_N1) + write_sold(N2, sold_N2) + N0_sold = read_sold('N0') + write_sold('N0',N0_sold+0.1) + + +def tx_generator(): + file_path = './tx_list.txt' + try: + with open(file_path, 'w') as file: + for i in range(1, 1000): + n_i = random.randint(1, 10) + n_i_plus_1 = random.randint(1, 10) + n_demandeur = random.randint(1, 10) + montant = random.randint(1, 10) + tx_type = random.choice(['-', '+']) + if i == 999: + line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}" + else: + line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}\n" + file.write(line) + + print(f"Content successfully written to '{file_path}'.") + + except Exception as e: + print(f"An error occurred: {e}") + + +def reset_account(): + for i in range(0, 11): + with open(f'./LACHAINE/N{i}.txt', 'w') as file: + if i == 0: + file.write('0') + else: + file.write('100') + print('Reset done') + + + +if __name__ == '__main__': + tx_generator() + reset_account() + main() \ No newline at end of file diff --git a/adventure/BLOCKCHAIN/student001/tx_list.txt b/adventure/BLOCKCHAIN/student001/tx_list.txt new file mode 100644 index 000000000..48e34e838 --- /dev/null +++ b/adventure/BLOCKCHAIN/student001/tx_list.txt @@ -0,0 +1,999 @@ +1,N1,N10,+,9,N10 +2,N10,N6,-,7,N5 +3,N5,N6,-,5,N10 +4,N4,N3,+,3,N5 +5,N2,N3,-,1,N9 +6,N10,N7,+,2,N1 +7,N7,N2,+,10,N6 +8,N9,N10,+,6,N1 +9,N4,N2,+,4,N9 +10,N6,N1,+,9,N8 +11,N8,N1,+,10,N2 +12,N8,N1,+,3,N9 +13,N7,N1,+,8,N10 +14,N3,N1,+,8,N8 +15,N10,N1,-,1,N1 +16,N9,N1,-,9,N6 +17,N2,N1,+,7,N9 +18,N6,N1,-,5,N8 +19,N9,N1,+,7,N5 +20,N5,N1,-,3,N5 +21,N4,N1,+,2,N2 +22,N8,N1,-,2,N4 +23,N10,N1,+,9,N1 +24,N10,N1,-,2,N3 +25,N4,N1,+,5,N3 +26,N6,N1,-,9,N2 +27,N8,N1,+,1,N2 +28,N7,N1,+,10,N8 +29,N2,N1,-,6,N10 +30,N6,N1,-,8,N7 +31,N7,N1,+,8,N3 +32,N4,N1,+,1,N7 +33,N5,N1,-,5,N7 +34,N10,N1,+,5,N3 +35,N3,N1,+,4,N3 +36,N3,N1,+,5,N1 +37,N5,N1,-,6,N9 +38,N1,N1,+,4,N9 +39,N3,N1,+,1,N4 +40,N7,N1,+,1,N8 +41,N2,N1,+,1,N7 +42,N9,N1,+,8,N8 +43,N8,N1,-,5,N6 +44,N8,N1,+,10,N5 +45,N3,N1,+,10,N2 +46,N9,N1,+,7,N9 +47,N3,N1,+,2,N3 +48,N7,N1,+,5,N5 +49,N6,N1,+,8,N8 +50,N10,N1,-,1,N5 +51,N2,N1,+,2,N3 +52,N8,N1,+,4,N10 +53,N7,N1,-,4,N8 +54,N4,N1,-,9,N6 +55,N4,N1,-,6,N9 +56,N2,N1,+,8,N3 +57,N5,N1,-,8,N4 +58,N2,N1,-,8,N7 +59,N8,N1,-,9,N6 +60,N5,N1,+,4,N2 +61,N8,N1,-,4,N6 +62,N10,N1,+,5,N1 +63,N1,N1,+,10,N4 +64,N4,N1,+,9,N4 +65,N1,N1,-,2,N4 +66,N1,N1,-,8,N2 +67,N7,N1,-,10,N5 +68,N4,N1,+,8,N6 +69,N10,N1,-,10,N9 +70,N3,N1,-,10,N7 +71,N4,N1,-,4,N10 +72,N6,N1,-,9,N7 +73,N4,N1,+,7,N6 +74,N7,N1,-,5,N1 +75,N10,N1,+,9,N9 +76,N5,N1,+,9,N6 +77,N9,N1,-,10,N7 +78,N2,N1,+,8,N4 +79,N7,N1,-,1,N1 +80,N7,N1,+,1,N5 +81,N9,N1,+,10,N3 +82,N1,N1,-,6,N9 +83,N3,N1,+,4,N5 +84,N9,N1,+,7,N8 +85,N1,N1,-,7,N9 +86,N5,N1,-,1,N1 +87,N10,N1,+,10,N7 +88,N3,N1,-,8,N1 +89,N5,N1,+,6,N2 +90,N7,N1,+,3,N6 +91,N8,N1,-,8,N9 +92,N8,N1,+,10,N2 +93,N8,N1,+,3,N10 +94,N6,N1,-,8,N6 +95,N7,N1,+,1,N1 +96,N10,N1,+,5,N2 +97,N4,N1,-,7,N10 +98,N7,N1,-,4,N7 +99,N6,N1,+,3,N7 +100,N9,N1,+,3,N4 +101,N5,N1,-,3,N6 +102,N4,N1,-,6,N4 +103,N1,N1,+,2,N7 +104,N8,N1,-,2,N6 +105,N2,N1,-,3,N2 +106,N9,N1,-,9,N1 +107,N4,N1,-,7,N10 +108,N4,N1,+,3,N10 +109,N8,N1,+,3,N7 +110,N6,N1,+,2,N6 +111,N3,N1,-,4,N6 +112,N10,N1,-,7,N10 +113,N4,N1,-,8,N4 +114,N4,N1,-,2,N6 +115,N7,N1,-,2,N2 +116,N2,N1,+,4,N4 +117,N8,N1,-,9,N6 +118,N6,N1,+,7,N6 +119,N6,N1,+,5,N1 +120,N4,N1,+,10,N1 +121,N7,N1,-,3,N10 +122,N3,N1,+,10,N8 +123,N7,N1,+,7,N6 +124,N8,N1,+,10,N9 +125,N4,N1,+,10,N3 +126,N2,N1,+,1,N7 +127,N1,N1,+,2,N4 +128,N2,N1,+,6,N8 +129,N5,N1,-,10,N2 +130,N1,N1,+,2,N6 +131,N9,N1,+,4,N2 +132,N2,N1,+,2,N1 +133,N4,N1,+,9,N4 +134,N9,N1,+,4,N10 +135,N5,N1,+,6,N9 +136,N10,N1,+,3,N9 +137,N3,N1,-,3,N5 +138,N7,N1,-,5,N8 +139,N6,N1,+,8,N6 +140,N2,N1,-,2,N2 +141,N2,N1,+,4,N9 +142,N3,N1,-,6,N7 +143,N1,N1,+,9,N7 +144,N2,N1,-,6,N8 +145,N4,N1,+,8,N3 +146,N7,N1,+,1,N2 +147,N6,N1,-,8,N6 +148,N10,N1,-,10,N6 +149,N1,N1,+,8,N5 +150,N6,N1,+,2,N1 +151,N7,N1,-,3,N2 +152,N4,N1,-,9,N5 +153,N8,N1,+,5,N7 +154,N7,N1,+,10,N5 +155,N4,N1,+,1,N4 +156,N8,N1,+,5,N10 +157,N10,N1,+,10,N1 +158,N2,N1,-,1,N3 +159,N4,N1,-,10,N9 +160,N2,N1,-,3,N10 +161,N1,N1,-,6,N7 +162,N2,N1,+,8,N3 +163,N3,N1,-,7,N3 +164,N6,N1,+,3,N6 +165,N6,N1,+,9,N4 +166,N1,N1,-,5,N3 +167,N2,N1,-,3,N3 +168,N5,N1,+,1,N6 +169,N6,N1,-,10,N8 +170,N3,N1,+,10,N9 +171,N8,N1,+,3,N3 +172,N6,N1,+,5,N2 +173,N2,N1,-,8,N3 +174,N4,N1,-,6,N10 +175,N6,N1,-,10,N2 +176,N4,N1,-,9,N9 +177,N1,N1,-,10,N5 +178,N4,N1,-,2,N7 +179,N1,N1,+,3,N8 +180,N6,N1,-,9,N4 +181,N8,N1,+,8,N2 +182,N9,N1,+,2,N3 +183,N10,N1,+,1,N4 +184,N1,N1,-,8,N3 +185,N9,N1,-,3,N2 +186,N1,N1,-,1,N6 +187,N5,N1,-,10,N10 +188,N8,N1,+,5,N4 +189,N5,N1,-,10,N10 +190,N10,N1,+,6,N9 +191,N7,N1,+,4,N9 +192,N8,N1,-,2,N4 +193,N10,N1,+,3,N3 +194,N6,N1,-,6,N6 +195,N10,N1,-,7,N10 +196,N9,N1,+,4,N3 +197,N4,N1,-,7,N7 +198,N2,N1,+,9,N9 +199,N4,N1,-,2,N5 +200,N10,N1,+,9,N6 +201,N2,N1,+,3,N6 +202,N8,N1,-,5,N5 +203,N4,N1,+,1,N8 +204,N7,N1,+,5,N2 +205,N5,N1,+,5,N10 +206,N3,N1,+,9,N7 +207,N6,N1,+,5,N1 +208,N7,N1,-,3,N3 +209,N2,N1,-,4,N9 +210,N5,N1,-,4,N6 +211,N9,N1,+,4,N6 +212,N10,N1,+,9,N2 +213,N3,N1,-,1,N1 +214,N5,N1,+,10,N7 +215,N4,N1,-,3,N6 +216,N1,N1,+,5,N8 +217,N7,N1,-,10,N6 +218,N8,N1,+,1,N6 +219,N3,N1,+,8,N10 +220,N9,N1,-,2,N8 +221,N6,N1,+,7,N6 +222,N8,N1,+,4,N6 +223,N6,N1,-,2,N5 +224,N8,N1,+,7,N9 +225,N7,N1,+,3,N7 +226,N1,N1,+,5,N9 +227,N8,N1,-,8,N2 +228,N3,N1,+,8,N8 +229,N8,N1,+,7,N7 +230,N2,N1,+,2,N7 +231,N3,N1,+,9,N2 +232,N4,N1,-,3,N7 +233,N6,N1,+,10,N9 +234,N3,N1,+,1,N2 +235,N5,N1,+,2,N7 +236,N4,N1,+,2,N2 +237,N3,N1,+,10,N6 +238,N7,N1,-,7,N3 +239,N4,N1,+,2,N8 +240,N9,N1,+,9,N1 +241,N10,N1,+,7,N9 +242,N4,N1,-,10,N6 +243,N9,N1,-,2,N3 +244,N6,N1,+,9,N2 +245,N10,N1,+,4,N3 +246,N1,N1,+,3,N10 +247,N9,N1,-,9,N8 +248,N2,N1,-,1,N10 +249,N6,N1,-,4,N8 +250,N5,N1,-,10,N5 +251,N6,N1,+,7,N7 +252,N2,N1,-,9,N10 +253,N10,N1,+,10,N8 +254,N2,N1,+,7,N8 +255,N8,N1,+,2,N4 +256,N6,N1,+,1,N3 +257,N4,N1,+,6,N8 +258,N1,N1,-,7,N4 +259,N6,N1,-,10,N1 +260,N6,N1,-,6,N5 +261,N3,N1,-,8,N3 +262,N9,N1,-,1,N4 +263,N4,N1,+,9,N6 +264,N9,N1,+,7,N10 +265,N7,N1,+,10,N3 +266,N10,N1,-,7,N5 +267,N4,N1,+,7,N5 +268,N7,N1,+,8,N4 +269,N2,N1,-,4,N10 +270,N5,N1,+,5,N9 +271,N3,N1,+,9,N7 +272,N4,N1,-,3,N4 +273,N8,N1,-,7,N1 +274,N7,N1,-,8,N6 +275,N8,N1,-,1,N8 +276,N3,N1,-,7,N3 +277,N1,N1,+,5,N9 +278,N6,N1,-,9,N9 +279,N8,N1,-,7,N6 +280,N8,N1,+,2,N5 +281,N6,N1,+,4,N1 +282,N8,N1,+,5,N7 +283,N2,N1,-,7,N5 +284,N2,N1,-,2,N2 +285,N1,N1,-,7,N8 +286,N7,N1,+,5,N5 +287,N10,N1,+,9,N7 +288,N7,N1,-,4,N7 +289,N10,N1,-,5,N10 +290,N4,N1,+,10,N9 +291,N10,N1,+,7,N6 +292,N4,N1,+,10,N7 +293,N6,N1,-,4,N1 +294,N2,N1,+,8,N7 +295,N4,N1,+,9,N4 +296,N8,N1,+,10,N10 +297,N8,N1,+,7,N5 +298,N8,N1,+,5,N1 +299,N4,N1,+,5,N8 +300,N8,N1,+,7,N6 +301,N3,N1,-,9,N1 +302,N7,N1,-,1,N1 +303,N9,N1,-,10,N10 +304,N4,N1,+,3,N6 +305,N10,N1,-,3,N2 +306,N1,N1,+,7,N1 +307,N5,N1,+,5,N3 +308,N6,N1,-,3,N10 +309,N7,N1,+,6,N7 +310,N4,N1,+,9,N4 +311,N7,N1,-,6,N2 +312,N3,N1,+,6,N5 +313,N1,N1,-,4,N10 +314,N6,N1,+,9,N3 +315,N4,N1,+,7,N8 +316,N4,N1,+,2,N5 +317,N2,N1,-,6,N4 +318,N10,N1,-,8,N10 +319,N10,N1,-,3,N7 +320,N4,N1,-,5,N6 +321,N9,N1,+,7,N2 +322,N8,N1,-,10,N4 +323,N2,N1,+,1,N1 +324,N8,N1,+,2,N3 +325,N8,N1,+,6,N9 +326,N10,N1,+,4,N6 +327,N10,N1,-,1,N4 +328,N8,N1,+,3,N7 +329,N4,N1,-,8,N2 +330,N2,N1,-,7,N5 +331,N8,N1,+,1,N3 +332,N6,N1,-,1,N1 +333,N9,N1,-,4,N2 +334,N9,N1,-,3,N8 +335,N4,N1,-,9,N2 +336,N5,N1,+,5,N4 +337,N2,N1,-,3,N10 +338,N8,N1,-,2,N5 +339,N8,N1,+,10,N4 +340,N10,N1,+,9,N5 +341,N10,N1,-,1,N10 +342,N8,N1,-,3,N7 +343,N9,N1,+,9,N5 +344,N3,N1,-,10,N7 +345,N10,N1,+,1,N4 +346,N3,N1,-,7,N10 +347,N1,N1,+,5,N7 +348,N6,N1,-,5,N6 +349,N4,N1,-,4,N10 +350,N8,N1,-,3,N5 +351,N3,N1,+,9,N10 +352,N9,N1,+,4,N7 +353,N2,N1,+,6,N8 +354,N2,N1,+,5,N3 +355,N3,N1,+,4,N8 +356,N4,N1,+,4,N3 +357,N10,N1,-,5,N5 +358,N7,N1,-,6,N3 +359,N9,N1,-,7,N2 +360,N4,N1,-,5,N7 +361,N8,N1,+,5,N10 +362,N5,N1,-,10,N6 +363,N4,N1,-,10,N4 +364,N2,N1,+,8,N3 +365,N4,N1,+,1,N10 +366,N6,N1,-,10,N2 +367,N4,N1,+,6,N6 +368,N2,N1,+,4,N1 +369,N10,N1,+,3,N3 +370,N8,N1,+,9,N7 +371,N5,N1,-,4,N7 +372,N3,N1,-,9,N9 +373,N6,N1,-,4,N8 +374,N9,N1,-,10,N1 +375,N9,N1,+,4,N10 +376,N9,N1,-,10,N3 +377,N8,N1,+,7,N2 +378,N3,N1,+,9,N2 +379,N5,N1,-,10,N6 +380,N10,N1,-,5,N2 +381,N7,N1,+,8,N7 +382,N3,N1,+,5,N5 +383,N3,N1,+,10,N3 +384,N1,N1,+,3,N10 +385,N3,N1,+,10,N10 +386,N4,N1,-,2,N10 +387,N4,N1,-,5,N7 +388,N1,N1,-,8,N3 +389,N8,N1,-,7,N7 +390,N4,N1,+,5,N5 +391,N6,N1,-,7,N9 +392,N7,N1,+,4,N3 +393,N1,N1,+,8,N10 +394,N9,N1,+,7,N6 +395,N6,N1,-,1,N5 +396,N9,N1,+,3,N9 +397,N10,N1,+,9,N6 +398,N2,N1,-,3,N6 +399,N9,N1,+,1,N2 +400,N6,N1,-,6,N8 +401,N1,N1,+,4,N8 +402,N1,N1,+,1,N7 +403,N3,N1,+,10,N6 +404,N1,N1,-,9,N7 +405,N10,N1,-,6,N2 +406,N2,N1,+,2,N5 +407,N10,N1,+,6,N8 +408,N3,N1,+,5,N10 +409,N9,N1,+,1,N7 +410,N8,N1,-,10,N1 +411,N5,N1,+,2,N1 +412,N6,N1,-,2,N1 +413,N3,N1,-,5,N8 +414,N9,N1,+,5,N8 +415,N7,N1,-,9,N10 +416,N5,N1,-,9,N2 +417,N6,N1,-,7,N5 +418,N1,N1,-,5,N8 +419,N5,N1,-,9,N4 +420,N3,N1,+,4,N4 +421,N9,N1,-,2,N7 +422,N9,N1,+,1,N9 +423,N1,N1,+,9,N9 +424,N9,N1,-,1,N10 +425,N10,N1,+,8,N3 +426,N4,N1,-,6,N6 +427,N9,N1,-,2,N5 +428,N2,N1,+,3,N10 +429,N3,N1,+,3,N1 +430,N7,N1,-,1,N9 +431,N7,N1,+,8,N1 +432,N2,N1,+,9,N1 +433,N3,N1,-,5,N6 +434,N3,N1,+,4,N4 +435,N6,N1,+,3,N6 +436,N8,N1,-,1,N10 +437,N2,N1,+,7,N9 +438,N10,N1,+,2,N1 +439,N4,N1,-,1,N9 +440,N3,N1,-,10,N2 +441,N9,N1,+,3,N6 +442,N2,N1,+,10,N3 +443,N9,N1,+,7,N9 +444,N8,N1,+,10,N10 +445,N6,N1,-,10,N4 +446,N4,N1,+,3,N6 +447,N10,N1,-,5,N4 +448,N8,N1,+,9,N7 +449,N10,N1,-,3,N1 +450,N9,N1,-,5,N9 +451,N3,N1,+,9,N9 +452,N10,N1,+,7,N5 +453,N10,N1,-,4,N3 +454,N10,N1,+,6,N1 +455,N1,N1,+,9,N9 +456,N7,N1,+,4,N10 +457,N5,N1,+,5,N5 +458,N10,N1,+,5,N7 +459,N4,N1,-,8,N4 +460,N9,N1,-,9,N4 +461,N7,N1,-,6,N1 +462,N1,N1,-,1,N7 +463,N2,N1,-,10,N10 +464,N6,N1,+,8,N5 +465,N10,N1,+,1,N4 +466,N5,N1,+,10,N6 +467,N5,N1,-,5,N4 +468,N1,N1,+,6,N2 +469,N1,N1,+,9,N4 +470,N4,N1,+,6,N4 +471,N4,N1,-,4,N5 +472,N3,N1,-,5,N1 +473,N1,N1,+,7,N5 +474,N1,N1,+,7,N3 +475,N8,N1,-,3,N9 +476,N9,N1,-,1,N9 +477,N7,N1,-,3,N2 +478,N10,N1,-,10,N9 +479,N5,N1,-,4,N5 +480,N9,N1,-,6,N7 +481,N7,N1,+,4,N7 +482,N3,N1,+,9,N5 +483,N1,N1,-,10,N9 +484,N5,N1,-,6,N4 +485,N3,N1,-,2,N4 +486,N1,N1,+,5,N9 +487,N4,N1,+,1,N7 +488,N1,N1,+,7,N4 +489,N6,N1,-,10,N10 +490,N4,N1,-,5,N6 +491,N3,N1,-,4,N3 +492,N8,N1,-,9,N1 +493,N6,N1,-,4,N10 +494,N2,N1,-,10,N6 +495,N2,N1,+,4,N1 +496,N4,N1,-,8,N1 +497,N2,N1,-,6,N9 +498,N8,N1,-,9,N2 +499,N8,N1,-,7,N10 +500,N10,N1,-,3,N5 +501,N10,N1,+,7,N4 +502,N2,N1,-,10,N8 +503,N1,N1,+,1,N9 +504,N5,N1,-,8,N6 +505,N5,N1,-,3,N1 +506,N4,N1,-,7,N2 +507,N1,N1,-,6,N1 +508,N7,N1,+,9,N5 +509,N2,N1,+,2,N9 +510,N5,N1,-,7,N7 +511,N9,N1,+,10,N8 +512,N2,N1,-,7,N6 +513,N8,N1,-,2,N3 +514,N4,N1,+,5,N9 +515,N2,N1,+,2,N8 +516,N1,N1,+,8,N6 +517,N4,N1,-,7,N9 +518,N9,N1,-,2,N9 +519,N7,N1,-,3,N5 +520,N6,N1,+,3,N10 +521,N10,N1,-,4,N8 +522,N6,N1,-,6,N3 +523,N8,N1,-,9,N8 +524,N2,N1,+,3,N2 +525,N2,N1,-,8,N4 +526,N4,N1,+,1,N2 +527,N7,N1,+,2,N6 +528,N7,N1,-,2,N3 +529,N5,N1,+,8,N6 +530,N6,N1,-,4,N2 +531,N3,N1,+,4,N7 +532,N3,N1,-,3,N7 +533,N6,N1,-,6,N8 +534,N7,N1,-,5,N2 +535,N2,N1,-,5,N8 +536,N5,N1,-,5,N6 +537,N7,N1,-,3,N10 +538,N4,N1,+,2,N2 +539,N6,N1,+,5,N6 +540,N10,N1,-,6,N9 +541,N1,N1,-,5,N2 +542,N5,N1,+,4,N10 +543,N5,N1,-,2,N1 +544,N10,N1,+,5,N1 +545,N1,N1,+,9,N2 +546,N4,N1,-,2,N3 +547,N7,N1,-,3,N3 +548,N7,N1,+,9,N5 +549,N6,N1,-,5,N9 +550,N1,N1,-,8,N7 +551,N1,N1,+,5,N3 +552,N8,N1,-,7,N1 +553,N9,N1,+,6,N5 +554,N10,N1,+,8,N7 +555,N9,N1,-,5,N8 +556,N6,N1,+,5,N5 +557,N5,N1,+,3,N7 +558,N1,N1,+,3,N1 +559,N4,N1,+,3,N2 +560,N8,N1,+,10,N6 +561,N5,N1,+,4,N6 +562,N6,N1,-,10,N2 +563,N5,N1,+,3,N9 +564,N6,N1,-,8,N7 +565,N5,N1,+,10,N3 +566,N5,N1,+,2,N1 +567,N5,N1,+,3,N6 +568,N5,N1,-,6,N5 +569,N2,N1,+,2,N4 +570,N7,N1,-,9,N5 +571,N2,N1,+,9,N4 +572,N6,N1,-,7,N1 +573,N7,N1,+,4,N7 +574,N5,N1,+,6,N5 +575,N9,N1,+,2,N2 +576,N4,N1,-,2,N2 +577,N3,N1,+,6,N10 +578,N2,N1,+,9,N1 +579,N9,N1,+,7,N9 +580,N1,N1,-,7,N3 +581,N6,N1,-,8,N5 +582,N7,N1,+,9,N10 +583,N2,N1,-,3,N1 +584,N4,N1,-,8,N10 +585,N8,N1,+,3,N3 +586,N6,N1,-,9,N3 +587,N10,N1,+,9,N1 +588,N8,N1,-,8,N5 +589,N8,N1,-,2,N3 +590,N9,N1,+,1,N8 +591,N6,N1,+,5,N10 +592,N7,N1,-,7,N6 +593,N8,N1,+,1,N7 +594,N2,N1,+,5,N3 +595,N3,N1,+,5,N6 +596,N6,N1,-,4,N5 +597,N9,N1,+,7,N8 +598,N1,N1,-,8,N7 +599,N7,N1,-,4,N4 +600,N1,N1,+,1,N3 +601,N8,N1,-,4,N6 +602,N8,N1,-,1,N4 +603,N5,N1,-,2,N1 +604,N10,N1,+,8,N1 +605,N5,N1,-,5,N7 +606,N6,N1,-,7,N6 +607,N9,N1,-,9,N1 +608,N8,N1,+,1,N5 +609,N3,N1,+,10,N2 +610,N5,N1,-,8,N10 +611,N5,N1,+,2,N6 +612,N1,N1,+,8,N1 +613,N4,N1,-,1,N8 +614,N8,N1,-,6,N5 +615,N1,N1,+,8,N7 +616,N10,N1,-,6,N2 +617,N5,N1,-,10,N1 +618,N5,N1,+,3,N10 +619,N6,N1,+,8,N1 +620,N9,N1,+,3,N3 +621,N4,N1,-,3,N2 +622,N6,N1,+,7,N2 +623,N4,N1,+,2,N8 +624,N7,N1,-,8,N4 +625,N3,N1,-,1,N3 +626,N2,N1,-,4,N10 +627,N2,N1,+,4,N3 +628,N6,N1,+,4,N9 +629,N3,N1,+,10,N4 +630,N1,N1,-,6,N3 +631,N6,N1,+,1,N2 +632,N4,N1,-,2,N7 +633,N1,N1,+,5,N9 +634,N6,N1,+,3,N7 +635,N9,N1,+,7,N4 +636,N10,N1,-,7,N2 +637,N6,N1,-,9,N3 +638,N3,N1,-,2,N6 +639,N4,N1,-,6,N4 +640,N9,N1,+,10,N9 +641,N1,N1,+,10,N4 +642,N4,N1,-,8,N9 +643,N8,N1,+,4,N2 +644,N6,N1,+,3,N1 +645,N8,N1,+,4,N8 +646,N6,N1,+,4,N3 +647,N5,N1,-,7,N5 +648,N1,N1,-,10,N3 +649,N2,N1,-,6,N9 +650,N1,N1,-,2,N2 +651,N2,N1,+,7,N6 +652,N8,N1,-,6,N9 +653,N5,N1,+,2,N1 +654,N2,N1,+,7,N9 +655,N8,N1,+,3,N1 +656,N1,N1,-,4,N7 +657,N1,N1,+,6,N8 +658,N1,N1,+,1,N8 +659,N4,N1,-,10,N1 +660,N2,N1,+,7,N2 +661,N9,N1,-,10,N9 +662,N6,N1,-,8,N5 +663,N10,N1,+,8,N5 +664,N1,N1,+,3,N3 +665,N5,N1,-,7,N8 +666,N10,N1,-,10,N1 +667,N5,N1,-,7,N7 +668,N10,N1,-,5,N5 +669,N9,N1,+,6,N4 +670,N9,N1,+,9,N8 +671,N5,N1,-,2,N1 +672,N1,N1,+,5,N7 +673,N8,N1,+,3,N9 +674,N2,N1,-,2,N5 +675,N2,N1,-,2,N4 +676,N4,N1,+,4,N1 +677,N4,N1,-,2,N5 +678,N6,N1,-,5,N3 +679,N2,N1,+,3,N6 +680,N6,N1,-,3,N7 +681,N1,N1,+,1,N6 +682,N4,N1,+,5,N1 +683,N6,N1,+,1,N6 +684,N3,N1,+,3,N4 +685,N2,N1,+,5,N9 +686,N7,N1,-,7,N7 +687,N1,N1,-,7,N10 +688,N10,N1,+,8,N3 +689,N6,N1,+,5,N7 +690,N4,N1,+,9,N5 +691,N4,N1,-,1,N1 +692,N2,N1,+,8,N1 +693,N9,N1,-,7,N10 +694,N2,N1,-,7,N1 +695,N10,N1,+,8,N4 +696,N4,N1,+,10,N6 +697,N4,N1,+,1,N5 +698,N5,N1,-,2,N6 +699,N5,N1,+,1,N1 +700,N2,N1,+,5,N3 +701,N6,N1,-,5,N5 +702,N9,N1,+,8,N3 +703,N10,N1,+,1,N2 +704,N5,N1,-,2,N7 +705,N3,N1,-,7,N10 +706,N7,N1,+,4,N6 +707,N7,N1,+,7,N4 +708,N1,N1,-,6,N7 +709,N5,N1,+,3,N8 +710,N4,N1,+,3,N5 +711,N6,N1,-,6,N8 +712,N4,N1,-,5,N8 +713,N5,N1,-,5,N6 +714,N5,N1,+,8,N1 +715,N10,N1,-,4,N5 +716,N6,N1,+,5,N9 +717,N2,N1,+,4,N5 +718,N4,N1,-,3,N4 +719,N10,N1,-,1,N7 +720,N8,N1,-,9,N4 +721,N4,N1,+,3,N5 +722,N3,N1,-,6,N2 +723,N8,N1,-,3,N6 +724,N5,N1,-,9,N7 +725,N2,N1,-,6,N4 +726,N9,N1,+,8,N9 +727,N4,N1,-,2,N1 +728,N6,N1,-,4,N4 +729,N7,N1,-,9,N8 +730,N1,N1,+,7,N3 +731,N3,N1,+,10,N2 +732,N3,N1,-,10,N9 +733,N7,N1,+,9,N4 +734,N4,N1,+,8,N4 +735,N7,N1,-,8,N6 +736,N2,N1,+,5,N9 +737,N4,N1,+,10,N4 +738,N4,N1,+,6,N4 +739,N6,N1,-,5,N2 +740,N5,N1,+,6,N4 +741,N7,N1,-,7,N7 +742,N10,N1,+,5,N6 +743,N8,N1,-,6,N8 +744,N7,N1,+,9,N6 +745,N8,N1,-,2,N2 +746,N2,N1,+,2,N8 +747,N3,N1,+,4,N3 +748,N7,N1,-,6,N4 +749,N9,N1,+,4,N9 +750,N7,N1,+,10,N3 +751,N1,N1,+,5,N7 +752,N3,N1,-,2,N5 +753,N4,N1,+,6,N2 +754,N1,N1,-,6,N8 +755,N6,N1,+,4,N4 +756,N3,N1,+,9,N2 +757,N6,N1,-,9,N4 +758,N4,N1,+,9,N8 +759,N7,N1,-,1,N8 +760,N4,N1,+,4,N8 +761,N1,N1,-,6,N2 +762,N10,N1,+,9,N1 +763,N1,N1,-,2,N4 +764,N8,N1,+,6,N3 +765,N6,N1,+,1,N6 +766,N3,N1,+,4,N2 +767,N7,N1,+,7,N2 +768,N10,N1,-,6,N3 +769,N4,N1,-,9,N8 +770,N10,N1,+,3,N9 +771,N5,N1,+,7,N5 +772,N7,N1,-,8,N2 +773,N4,N1,-,5,N2 +774,N4,N1,+,9,N7 +775,N8,N1,+,7,N9 +776,N7,N1,+,4,N4 +777,N7,N1,-,1,N5 +778,N10,N1,+,7,N2 +779,N1,N1,-,8,N4 +780,N5,N1,+,8,N8 +781,N7,N1,-,5,N10 +782,N1,N1,+,8,N6 +783,N5,N1,+,6,N1 +784,N7,N1,-,8,N9 +785,N9,N1,-,6,N10 +786,N10,N1,-,8,N9 +787,N3,N1,+,7,N10 +788,N10,N1,+,9,N10 +789,N6,N1,+,2,N4 +790,N10,N1,+,10,N1 +791,N5,N1,-,8,N7 +792,N9,N1,-,5,N5 +793,N5,N1,+,9,N7 +794,N10,N1,+,6,N3 +795,N7,N1,-,8,N8 +796,N8,N1,-,6,N6 +797,N7,N1,+,5,N2 +798,N8,N1,+,4,N10 +799,N2,N1,-,7,N1 +800,N3,N1,+,10,N3 +801,N7,N1,+,7,N6 +802,N8,N1,-,2,N10 +803,N7,N1,+,9,N2 +804,N3,N1,-,5,N2 +805,N1,N1,+,8,N8 +806,N2,N1,-,6,N1 +807,N8,N1,+,5,N5 +808,N2,N1,+,10,N1 +809,N8,N1,+,4,N1 +810,N10,N1,-,4,N1 +811,N4,N1,+,6,N4 +812,N1,N1,-,6,N8 +813,N4,N1,+,9,N10 +814,N6,N1,-,7,N4 +815,N7,N1,-,2,N10 +816,N10,N1,-,3,N3 +817,N7,N1,-,3,N1 +818,N5,N1,-,9,N2 +819,N3,N1,-,5,N10 +820,N8,N1,+,4,N1 +821,N2,N1,+,9,N2 +822,N9,N1,+,4,N7 +823,N5,N1,+,5,N8 +824,N1,N1,-,7,N9 +825,N8,N1,+,5,N5 +826,N1,N1,+,9,N1 +827,N2,N1,-,3,N4 +828,N7,N1,-,10,N7 +829,N7,N1,+,4,N6 +830,N9,N1,-,10,N6 +831,N3,N1,+,9,N5 +832,N7,N1,-,4,N3 +833,N3,N1,+,8,N2 +834,N8,N1,+,4,N1 +835,N7,N1,+,6,N6 +836,N1,N1,+,4,N5 +837,N7,N1,+,6,N7 +838,N10,N1,+,4,N7 +839,N6,N1,+,5,N8 +840,N7,N1,-,4,N10 +841,N4,N1,+,10,N8 +842,N6,N1,-,9,N4 +843,N2,N1,-,9,N2 +844,N3,N1,+,5,N7 +845,N2,N1,+,5,N4 +846,N10,N1,+,5,N7 +847,N1,N1,-,10,N3 +848,N2,N1,-,5,N7 +849,N4,N1,+,3,N1 +850,N3,N1,+,4,N4 +851,N3,N1,+,4,N4 +852,N10,N1,-,10,N9 +853,N4,N1,-,2,N5 +854,N9,N1,+,8,N5 +855,N6,N1,+,4,N9 +856,N7,N1,-,6,N8 +857,N1,N1,+,1,N5 +858,N10,N1,+,1,N3 +859,N3,N1,+,6,N4 +860,N8,N1,+,2,N6 +861,N6,N1,+,6,N6 +862,N7,N1,+,3,N7 +863,N1,N1,+,9,N6 +864,N7,N1,-,3,N2 +865,N6,N1,+,5,N3 +866,N10,N1,-,2,N1 +867,N10,N1,-,3,N5 +868,N4,N1,+,3,N10 +869,N6,N1,+,7,N5 +870,N5,N1,+,2,N5 +871,N7,N1,+,1,N10 +872,N8,N1,+,10,N2 +873,N9,N1,+,6,N6 +874,N1,N1,+,3,N4 +875,N3,N1,+,7,N5 +876,N4,N1,-,8,N4 +877,N9,N1,-,6,N2 +878,N5,N1,-,10,N9 +879,N1,N1,+,9,N8 +880,N3,N1,-,3,N8 +881,N4,N1,+,6,N4 +882,N10,N1,-,5,N5 +883,N1,N1,+,10,N7 +884,N8,N1,+,4,N8 +885,N2,N1,-,5,N5 +886,N3,N1,-,3,N8 +887,N9,N1,+,1,N9 +888,N6,N1,-,2,N9 +889,N1,N1,-,7,N10 +890,N10,N1,+,3,N10 +891,N2,N1,-,2,N9 +892,N9,N1,+,2,N2 +893,N10,N1,-,4,N9 +894,N1,N1,+,6,N1 +895,N6,N1,-,7,N2 +896,N5,N1,+,1,N10 +897,N7,N1,+,5,N10 +898,N6,N1,+,6,N5 +899,N1,N1,+,9,N2 +900,N2,N1,-,10,N8 +901,N2,N1,+,4,N8 +902,N9,N1,-,8,N4 +903,N5,N1,-,10,N8 +904,N1,N1,+,2,N1 +905,N8,N1,-,9,N10 +906,N8,N1,+,5,N6 +907,N2,N1,-,1,N8 +908,N3,N1,-,2,N4 +909,N7,N1,+,6,N2 +910,N8,N1,-,7,N3 +911,N2,N1,+,7,N9 +912,N5,N1,+,2,N8 +913,N9,N1,+,2,N3 +914,N1,N1,+,6,N6 +915,N1,N1,+,5,N4 +916,N8,N1,+,10,N3 +917,N4,N1,-,8,N3 +918,N10,N1,+,2,N3 +919,N2,N1,+,2,N3 +920,N3,N1,+,5,N6 +921,N9,N1,-,2,N5 +922,N1,N1,+,4,N1 +923,N4,N1,+,10,N10 +924,N2,N1,+,6,N10 +925,N3,N1,+,6,N4 +926,N4,N1,-,10,N2 +927,N6,N1,+,4,N8 +928,N7,N1,-,4,N9 +929,N2,N1,-,8,N8 +930,N9,N1,-,10,N2 +931,N2,N1,+,3,N4 +932,N6,N1,+,9,N7 +933,N9,N1,-,1,N10 +934,N1,N1,+,3,N9 +935,N3,N1,+,7,N1 +936,N10,N1,-,2,N5 +937,N9,N1,-,7,N10 +938,N10,N1,+,9,N4 +939,N9,N1,-,7,N2 +940,N2,N1,-,5,N4 +941,N6,N1,-,6,N8 +942,N4,N1,+,6,N3 +943,N10,N1,+,7,N4 +944,N10,N1,+,5,N9 +945,N1,N1,+,5,N10 +946,N3,N1,+,8,N10 +947,N5,N1,-,3,N10 +948,N3,N1,+,6,N1 +949,N8,N1,-,4,N6 +950,N6,N1,-,1,N8 +951,N1,N1,-,2,N8 +952,N6,N1,-,9,N2 +953,N2,N1,-,10,N4 +954,N5,N1,+,10,N7 +955,N10,N1,+,1,N8 +956,N1,N1,-,5,N1 +957,N2,N1,-,5,N8 +958,N7,N1,+,8,N9 +959,N7,N1,-,2,N8 +960,N3,N1,-,7,N9 +961,N3,N1,+,4,N1 +962,N10,N1,+,10,N4 +963,N2,N1,+,10,N8 +964,N10,N1,+,5,N8 +965,N3,N1,+,8,N2 +966,N2,N1,+,9,N5 +967,N1,N1,-,3,N6 +968,N10,N1,-,3,N6 +969,N6,N1,-,10,N4 +970,N7,N1,+,6,N9 +971,N1,N1,+,9,N2 +972,N5,N1,+,5,N2 +973,N8,N1,+,4,N2 +974,N8,N1,-,5,N2 +975,N9,N1,+,6,N6 +976,N8,N1,-,1,N6 +977,N6,N1,+,7,N4 +978,N6,N1,+,2,N8 +979,N5,N1,-,6,N3 +980,N5,N1,-,3,N7 +981,N9,N1,-,2,N10 +982,N4,N1,+,3,N8 +983,N10,N1,+,1,N8 +984,N9,N1,-,7,N1 +985,N8,N1,+,6,N8 +986,N4,N1,+,1,N1 +987,N8,N1,-,8,N10 +988,N9,N1,+,4,N3 +989,N2,N1,-,5,N3 +990,N4,N1,-,8,N1 +991,N9,N1,+,5,N4 +992,N2,N1,+,5,N3 +993,N1,N1,+,5,N7 +994,N1,N1,-,4,N1 +995,N4,N1,-,10,N3 +996,N5,N1,+,10,N4 +997,N5,N1,-,10,N8 +998,N2,N1,-,5,N7 +999,N2,N1,-,9,N4 \ No newline at end of file diff --git a/adventure/adventure.sh b/adventure/adventure.sh index 56bbe6495..864d25602 100755 --- a/adventure/adventure.sh +++ b/adventure/adventure.sh @@ -16,6 +16,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" ################################################################### ### CREER VOTRE PROPRE VERSION DU JEU + ### List games/E@MAIL/ directories ## ADD PROPOSAL ON THE METHOD GAMES_DIR="games" @@ -90,4 +91,4 @@ cd "$homefolder" rm -r $HOME/.zen/adventure/$newplayer echo "To continue..." -exit +exit \ No newline at end of file diff --git a/adventure/extra/shadoktube_tiddlers.json b/adventure/extra/shadoktube_tiddlers.json deleted file mode 100644 index 08f8d191f..000000000 --- a/adventure/extra/shadoktube_tiddlers.json +++ /dev/null @@ -1 +0,0 @@ -[{"created":"20221208182057874","creator":"shadoktube@yopmail.com","text":"A la prochaine synchronisation de l'essaim (20H12), la présence du Tiddler \"CopierYoutube\" avec le tag 'voeu' activera le programme ```ASTROBOT/G1CopierYoutube.sh``` qui assure la copie des LIENS VIDÉOS en provenance de ces sources compatibles \n\nhttps://www.youtube.com/watch?v=UwkUUhVQ3os&list=PLsbtzZi9n5PvMI95b8_01q8tsE_zX5N_z&index=4\n\nIndiquez ici les liens à recopier, sautez une ligne entre chaque lien !\n\n<>\n","tags":"shadoktube@yopmail.com ♥BOX CopierYoutube","title":"♥BOX - CopierYoutube URL","modified":"20230822232159961","modifier":"shadoktube@yopmail.com","compatible":"https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md","type":"text/x-markdown"},{"created":"20221214202230677","creator":"Fred","text":"\\define p1() [get[\n\\define p2() ]]\n\\define p3() +[sum[]]\n\n!! Comment contrôler votre TW ?\n---\n\nUn TW contient des Tiddlers. Ils se propagent selon les ''voeux'' formulés\n\n<$list filter=\"[tag[G1Voeu]sort[title]]\">\n<$link><>\n\n\n---\n\n! (♥‿‿♥) : G1CopierYoutube\n\n<$list filter=\"[tag[G1CopierYoutube]]\">\n<$link><>\n{{||$:/core/ui/ViewTemplate/tags}}\n\n\n---\n\n! TAILLE\n\n<$vars thisDynamicFilter={{{ [fields[]regexp[size]addprefixaddsuffix] [] +[join[ ]] }}}>\n<$list filter={{{ [] }}}>\n''total:'' <> octets\n\n\n\n! TEMPS\n\n<$list variable=\"thisField\" filter=\"[fields[]regexp[dur]]\">\nsum of <> values:\n<$list filter=\"[getsum[]]\">\n{{!!title}}\n
\n\n<$vars thisDynamicFilter={{{ [fields[]regexp[dur]addprefixaddsuffix] [] +[join[ ]] }}}>\n<$list filter={{{ [] }}}>\n''total:'' <> secondes\n\n\n\n\n","tags":"support@qo-op.com shadoktube@yopmail.com","title":"♥BOX OPERATION","modified":"20221226210309429","modifier":"shadoktube@yopmail.com"},{"created":"20230815191216593","resolution":"480p","duree":"0:02:09","duration":"129","giftime":"79","gifanime":"/ipfs/QmbW7cZ93kPZNYRLPAKhUDi8aVL4DpD8YvrqUCymwwTwtm","modified":"20230815191216593","title":"A_quoi_sert_l_antimemoire_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,04","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

A_quoi_sert_l_antimemoire_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"9631027","filesize":"9.18 MB","sec":"129","dur":"20","ipfs":"/ipfs/Qmbduj4SnXdvPpFQ5G1JVakku7TZN313HnbRYtpBKGaU9E","youtubeid":"d3DZSQO3gnc","zurl":"https://www.youtube.com/watch?v=d3DZSQO3gnc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 A quoi sert l antimemoire des Shadoks Archive INA mp4"},{"created":"20230816191217674","resolution":"480p","duree":"0:01:50","duration":"110","giftime":"67","gifanime":"/ipfs/QmUH3v7Cs48bhG5Q7SnhLxQLhtfrHqV4u5vT4PS7hQMW5E","modified":"20230816191217674","title":"A_quoi_sert_l_ordinateur_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,49","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

A_quoi_sert_l_ordinateur_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8550718","filesize":"8.15 MB","sec":"111","dur":"21","ipfs":"/ipfs/QmQjAmrXG3XWdC22mwUvunue26bvGTLtL9WW3ULVVM4xg1","youtubeid":"C-FqSmdjRyw","zurl":"https://www.youtube.com/watch?v=C-FqSmdjRyw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 A quoi sert l ordinateur Shadok Archive INA mp4"},{"created":"20230806191223340","resolution":"480p","duree":"0:01:13","duration":"73","giftime":"45","gifanime":"/ipfs/QmZm2K1hCDxtoKLLBZC44UY5DKbFRkuHwnWWwPVxxMjBmz","modified":"20230806191223340","title":"A_quoi_sert_le_chapeau_des_Gibis_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,93","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

A_quoi_sert_le_chapeau_des_Gibis_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"6418413","filesize":"6.12 MB","sec":"73","dur":"20","ipfs":"/ipfs/Qmbq8UvnLby98DzEbF8Sv9w1GM3yokt5ctMbX8f9hk7Rtj","youtubeid":"5WJxtkgf07U","zurl":"https://www.youtube.com/watch?v=5WJxtkgf07U","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 A quoi sert le chapeau des Gibis Archive INA mp4"},{"created":"20221028140644690","creator":"shadoktube@yopmail.com","text":"Il s'agit du code situé dans le répertoire ASTROBOT de la distribution Astroport.ONE que vous utilisez.\n\nCelui-ci contient les script de traitement de réplication Ŋ1 de vos G1Voeux.\n\nAjoutez le programme \"G1LeNomDeCeCanal.sh\" permet de personnaliser votre Application.\n\nhttps://git.p2p.legal/qo-op/Astroport.ONE/src/branch/master/ASTROBOT\n","title":"AstroBot","modified":"20230413122026570","tags":"","modifier":"shadoktube@yopmail.com"},{"created":"20230227185225098","creator":"shadoktube@yopmail.com","text":"","title":"AstroID","type":"image/png","modified":"20230407113918891","modifier":"shadoktube@yopmail.com","tags":"$:/isAttachment shadoktube@yopmail.com $:/isIpfs G1AstroID","_canonical_uri":"/ipfs/QmdtyPxf8Z6h2iWW5vqLFisEanvPoLJgGn1n1exXQKXdsf","PASS":"_PASS_","HPASS":"aa98e179f4590dafc5d6f5c9fd84887509489bb2a2913b5ec93827e70529d49e1621f1fe232316cb897aed9cd0fa0be6c34d5b9695e0d670d912f3f43f1a9c59"},{"created":"20210804081616558","creator":"shadoktube@yopmail.com","text":"!! Participez au développement d'un meilleur Internet !\n\n!! Applications collaboratives pour collectifs en réseau\n\nDans le réseau p2p propulsé par [[Astroport|https://astroport.com]], vous échangez des biens, des services, selon la confiance exprimée par un échange d'étoiles sur [[GChange|https://gchange.fr]].\n\nTissez vos toiles Ŋ1 dans un réseau humain de confiance qui utilise [[Ğ1 (la \"June\")|https://monnaie-libre.fr/]] \n\nA 20H12 ''le protocole de réplication Ŋ1'' active les échanges en fonction des toiles de confiances établies : étoiles Gchange, Transactions G1, etc\n\n!! Comment aider ?\n\nPropagez l'expérience du monde numérique Libre. Révélez. Tissez vos toiles de confiance Ŋ1.\nReliez vos clefs aux nôtres, faites vos voeux. Nos voeux les plus chers, révèlent et gratifient les talents et les ressources près de chez vous.\n\nHébergez votre [[♥BOX|https://opencollective.com/monnaie-libre/projects/coeurbox]]\n\ninstallez IPFS\n<<<\n\n* Installez '[[IPFS kubo|https://docs.ipfs.tech/install/command-line/#official-distributions]]' sur votre ordinateur\n* Ajoutez [[ipfs-companion|https://docs.ipfs.tech/install/ipfs-companion/]] à votre navigateur (ou utilisez \"[[Brave|https://brave.com/fr/]]\")\n\n''Agissez collectif ''\n\n* [[Devenez généreux donateur|https://opencollective.com/monnaie-libre]] aidez à notre développement.\n* [[Rejoignez notre Constellation de ♥BOX|https://opencollective.com/monnaie-libre/projects/coeurbox]] et faite grossir les \"To Utiles\" de notre disque et hébergement collectif.\n* Activez votre Station. Installez [[Astroport.ONE|https://git.p2p.legal/qo-op/Astroport.ONE]] sur votre ordinateur, hébergez vos amis en laissant votre machine allumée.\n\n\n* [[Améliorer, diversifier les modèles de TiddlyWiki|https://tiddlywiki.com/languages/fr-FR/index.html]]\n* [[Enrichissez notre application avec des plugins TW|https://tw-cpl.netlify.app/#Index:Index]] \n\n<<<\n\nTW MODEL REBASE : {{{ [[https://ipfs.copylaradio.com/ipfs/]addsuffix{!!twmodel}] }}}\n\n''{{Astroport!!pseudo}}'' (Astronaute : ''{{MadeInZion!!player}}'')\n\n> NE SUPPRIMEZ PAS CE \"TIDDLER\"\n","title":"Astroport","modified":"20230719083809529","tags":"shadoktube@yopmail.com","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","qrsec":"_QRSEC_","astroport":"/ipns/12D3KooWL2FcDJ41U9SyLuvDmA5qGzyoaj2RoEHiJPpCvY8jvx9u","birthdate":"202308051418462313","pseudo":"shadoktube@yopmail.com","modifier":"shadoktube@yopmail.com","chain":"/ipfs/QmSuDLsBvMLSCAT7K8qJHbZZP1jaGSy2GDEkPAYdiMLtcU","moats":"202308051418462313","twmodel":"/ipfs/QmSuDLsBvMLSCAT7K8qJHbZZP1jaGSy2GDEkPAYdiMLtcU"},{"created":"20231009211554137","creator":"shadoktube@yopmail.com","text":"
PLAYER
(TW)
PLAYER...
IPNS
IPNS
PLAYER_feed
PLAYER_feed
G1Voeu
G1Voeu
...
...
Astroport.ONE#the-art-of-key-derivation-chaining--useAstroport.ONE#20h12Astroport.ONE#bash-api--box
Text is not SVG - cannot display
","type":"application/vnd.drawio","modified":"20231009211628691","modifier":"shadoktube@yopmail.com","title":"Astroport Layers Diagram","tags":""},{"created":"20230501161742402","creator":"shadoktube@yopmail.com","text":"Astroport.ONE est un logiciel libre qui permet de créer des réseaux pairs à pairs\n\nSon code se trouve \n\n* Sur github [[https://github.com/papiche/Astroport.ONE|https://github.com/papiche/Astroport.ONE]]\n* Sur p2p.legal [[https://git.p2p.legal/STI/Astroport.ONE|https://git.p2p.legal/STI/Astroport.ONE]]\n\nGrâce à son usage: Nous reprenons le pouvoir sur notre système d'information !\n\n* Le protocole Ŋ1 (ala \"ScuttleButt\") assure une réplication intelligente de votre TW \n* Les niveaux de confiance relatif exprimés par le partage de 1 à 5 ★ garantissent la confidentialité des niveaux supérieurs.\n* Centré sur les données, votre TW dispose de ses clefs dérivées sur lesquelles vous construisez votre application, votre expérience.\n* Centré sur l'Humain. Vous co-encadrez un élevage de \"Tiddlers\", vous recevez et donnez de la Ğ1 pour exprimer la gratitude.\n\n[[Documentation|https://pad.p2p.legal/s/Astroport.ONE]] (en cours de rédaction)\n\n!! HotLine","title":"AstroportONE","modified":"20230501190456233","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20231005113359993","creator":"shadoktube@yopmail.com","text":"''Astroport.ONE is an educational web3 playground. ''\n\nChoose a 0.01° sector. Provide an email to join this collaborative App.\n\nhttps://qo-op.com\n\nAstroport.ONE adds \"Boot Sectors\" and PLAYERs datastorage into IPFS. It establish a primal key management system among IPFS nodes hosting TiddlyWiki on UPlanet tiles.\n\nEach TW can share Tiddlers with others on the same Umap and with other G1 Friends identified through Ğ1 web of trust.\n20H12, each day analyze key relations and operates data linking in \"step by step\" blockchains. ASTROBOT can execute actions on specific Tag and interact with DUNITER blockchain.\n\nProgrammers can learn how to create Applications Templates on every derivated keys.\n\nThis \"proof of concept\" introduces an IPFS data layer on Earth anyone running Astroport.ONE can be part of.\n\nDiscovering IPFS was a mind blowing experience.\nContent addressing and Public Key Infrastructure is replacing the old absolute path need with an infinite relative Information System\n\nhttps://pad.p2p.legal/p/G1Fablab","tags":"shadoktube@yopmail.com","title":"Bash Web3 playground - TiddlyWiki hosting & Programmable distributed data layer protocol","modified":"20231102152945519","modifier":"shadoktube@yopmail.com"},{"created":"20230302231451591","creator":"shadoktube@yopmail.com","text":"\n","tags":"shadoktube@yopmail.com G1App poka@p2p.legal","title":"Carte de la Monnaie Libre : Ğ1","modified":"20230407120128480","type":"text/vnd.tiddlywiki","modifier":"shadoktube@yopmail.com"},{"created":"20231121161730791","creator":"shadoktube@yopmail.com","text":"Introduit dans UPlanet, inscrit dans le système de fichier interplanétaire, nos TiddlyWiki sont la base d'un système d'information planétaire Libre.\n\nLe contrat intelligent de base consiste à collecter les données produites par chaque TW pour les remonter au niveau de la couche d'information supérieure.\n\n* 0.01°: Les Tiddlers sont inscrit au niveau local et possèdent une signature (votre email). Chaque jour un processus en analyse les nouveaux pour vous informer de la détection de \"doublons différents\". Le \"conflit\" est résolu en \n* 0.1° : > 2 signatures\n* 1° : > 3 signatures\n* 10° : > 4 signatures\n* UPlanet : 5 signatures et plus.\n\nAfin de déclencher l’exécution de \"contrat intelligent personnel\", il vous suffit de créer un \"voeu\" (et de lui attribuer quelques Zen)\nA ce moment, \"ASTROBOT\" publiera les données relatives au Tag concerné sur une nouvelle \"clef dérivée IPNS personnelle\"\n\n[img[reliable-store-of-value.svg]]","tags":"shadoktube@yopmail.com","title":"Chaque Tiddler porte un \"Contrat Intelligent\"","modified":"20231206214241669","modifier":"shadoktube@yopmail.com"},{"created":"20230813191218326","resolution":"480p","duree":"0:02:23","duration":"143","giftime":"88","gifanime":"/ipfs/QmVVdEFEo2f7mpmkNvnrHWMAJpfZEaKrNXVqez44qqfppi","modified":"20230813191218326","title":"Comment_compter_comme_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,69","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_compter_comme_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8982266","filesize":"8.57 MB","sec":"143","dur":"18","ipfs":"/ipfs/QmReeD6J4hEXTwzGBbycCcFdWQKVJtoqRkLHonf3C9amtU","youtubeid":"lP9PaDs2xgQ","zurl":"https://www.youtube.com/watch?v=lP9PaDs2xgQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment compter comme les Shadoks Archive INA mp4"},{"created":"20230813191218326","resolution":"480p","duree":"0:01:17","duration":"77","giftime":"47","gifanime":"/ipfs/QmUMBMkjaGBttLhkxoyjY3PxUZ8gcrUZ5JF7rm2vndd8wM","modified":"20230813191218326","title":"Comment_differencier_les_Shadoks_du_haut_et_ceux_du_bas_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,03","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_differencier_les_Shadoks_du_haut_et_ceux_du_bas_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"6197172","filesize":"5.91 MB","sec":"77","dur":"17","ipfs":"/ipfs/QmPZeNyQptSttsHxJHgu3QuJWUsoYoCDqziYv3snr7MSGW","youtubeid":"SGsXB8irshY","zurl":"https://www.youtube.com/watch?v=SGsXB8irshY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment differencier les Shadoks du haut et ceux bas Archive INA mp4"},{"created":"20230813191218326","resolution":"480p","duree":"0:01:18","duration":"78","giftime":"48","gifanime":"/ipfs/QmRL8QkGcqWdJNLiYFLaYSKP5GCgJm2MuDYLck54P9kRQT","modified":"20230813191218326","title":"Comment_etait_la_Terre_avant_l_arrivee_des_Gibis_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,64","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_etait_la_Terre_avant_l_arrivee_des_Gibis_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"6468127","filesize":"6.17 MB","sec":"78","dur":"18","ipfs":"/ipfs/QmQoCtG3YU1kzoQ6G4BWMVT7ZxwUs4ai66LtGad79gYtBQ","youtubeid":"i3LFJnVm2Jc","zurl":"https://www.youtube.com/watch?v=i3LFJnVm2Jc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment etait la Terre avant l arrivee des Gibis Archive INA mp4"},{"created":"20230814191217379","resolution":"480p","duree":"0:01:48","duration":"108","giftime":"66","gifanime":"/ipfs/QmNWmwAsJrgKSEkCwSTekpTM7dXxMHbsq962rJkXn6tRri","modified":"20230814191217379","title":"Comment_jouer_de_la_musique_comme_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"15,70","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_jouer_de_la_musique_comme_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7215324","filesize":"6.88 MB","sec":"109","dur":"18","ipfs":"/ipfs/QmRdELrjXcPosnKRNV71EyvutNSGphGb4GRftiNWFNhNte","youtubeid":"KJpA3c8-YSg","zurl":"https://www.youtube.com/watch?v=KJpA3c8-YSg","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment jouer de la musique comme les Shadoks Archive INA mp4"},{"created":"20230812191217353","resolution":"480p","duree":"0:00:46","duration":"46","giftime":"28","gifanime":"/ipfs/QmTextgCFrAZAMSHkhZMFcwKFuntk2W8i3JJ2dSt4ii6Bq","modified":"20230812191217353","title":"Comment_les_Shadoks_vont-ils_reorganiser_la_Terre_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,57","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_les_Shadoks_vont-ils_reorganiser_la_Terre_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"2911070","filesize":"2.78 MB","sec":"47","dur":"18","ipfs":"/ipfs/QmcdR5dfFXAndHSQFtSqHTymPgNtCEUfSoTAovD5SuTg8E","youtubeid":"y8crm7akAi8","zurl":"https://www.youtube.com/watch?v=y8crm7akAi8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment les Shadoks vont-ils reorganiser la Terre Archive INA mp4"},{"created":"20230811191217249","resolution":"480p","duree":"0:01:32","duration":"92","giftime":"56","gifanime":"/ipfs/QmQS53bnaPZJod3BKALcxEs9ZNFnd5GCD5qvhedgeP5bns","modified":"20230811191217249","title":"Comment_les_Shadoks_vont-ils_sur_la_Lune_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"17,16","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_les_Shadoks_vont-ils_sur_la_Lune_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"5623203","filesize":"5.36 MB","sec":"93","dur":"17","ipfs":"/ipfs/QmdHSQfWWJzDoVRmqs5GnuT3FnM9MmJ5ZqJpNGLen3WpgL","youtubeid":"U-h9W8rvje0","zurl":"https://www.youtube.com/watch?v=U-h9W8rvje0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment les Shadoks vont-ils sur la Lune Archive INA mp4"},{"created":"20230805191219906","resolution":"480p","duree":"0:01:37","duration":"97","giftime":"59","gifanime":"/ipfs/QmZoZnpttTPqc8Z1SM2GBxhiXQ1SChYbsphzyGwQBurETB","modified":"20230805191219906","title":"Comment_pomper_intellectuellement_comme_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,30","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_pomper_intellectuellement_comme_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7112401","filesize":"6.78 MB","sec":"98","dur":"21","ipfs":"/ipfs/QmVG191Fg3LSCG5Y46ur6FWhFTXD6fk3z8KY2nA3rM9qWk","youtubeid":"zv0ZzRMjbRk","zurl":"https://www.youtube.com/watch?v=zv0ZzRMjbRk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment pomper intellectuellement comme les Shadoks Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:31","duration":"211","giftime":"130","gifanime":"/ipfs/QmaYozQGDfkoWqQkhJfHC2Wj1tGjFWic8fwPxJaHyhFiiz","modified":"20230816191217674","title":"Comment_rendre_les_Shadoks_beaux_partie_1_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,86","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_rendre_les_Shadoks_beaux_partie_1_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"14884783","filesize":"14.20 MB","sec":"212","dur":"20","ipfs":"/ipfs/QmXkHC7FofWHXJQVQQgzdFXDWSwS1wNyQMZcUhiQ88zcEw","youtubeid":"588RfD9p3Co","zurl":"https://www.youtube.com/watch?v=588RfD9p3Co","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment rendre les Shadoks beaux partie 1 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:02:37","duration":"157","giftime":"97","gifanime":"/ipfs/QmTHhKSmoeymGqcPHMuS6wqfSCKC2Nix25io3Ss3sCacwu","modified":"20230812191217353","title":"Comment_rendre_les_Shadoks_beaux_partie_2_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,40","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_rendre_les_Shadoks_beaux_partie_2_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19594055","filesize":"18.69 MB","sec":"158","dur":"21","ipfs":"/ipfs/QmNdHUZMyqEf7vXUbb9CYdmzgYB5XAZU2kQjjTUfk3wwtK","youtubeid":"8bkWHNJkQ-Q","zurl":"https://www.youtube.com/watch?v=8bkWHNJkQ-Q","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment rendre les Shadoks beaux partie 2 Archive INA mp4"},{"created":"20230818191218851","resolution":"480p","duree":"0:04:35","duration":"275","giftime":"169","gifanime":"/ipfs/QmcnSpuX9qTSrSSLDSf3nLfwQFKHh6k1ohWVYxVrccGKMF","modified":"20230818191218851","title":"Comment_sont_nes_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"19,79","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comment_sont_nes_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"14574449","filesize":"13.90 MB","sec":"276","dur":"21","ipfs":"/ipfs/QmT3wevQRu5ijkE5nmo44Xzo5BTgUKaxPnwJdNukk2j9zh","youtubeid":"ZAeQeM0IX3s","zurl":"https://www.youtube.com/watch?v=ZAeQeM0IX3s","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comment sont nes les Shadoks Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:11:36","duration":"696","giftime":"430","gifanime":"/ipfs/QmcpLZkMVwsHXnxom9NL8yQQgzVnGSe6kBWmqfPGUPGih3","modified":"20230815191216593","title":"Comprendre_la_logique_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,67","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Comprendre_la_logique_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"75497696","filesize":"72.00 MB","sec":"696","dur":"34","ipfs":"/ipfs/QmZ7oKHsJiuZmUGRsuzbeQZRdAe4dd63qTnV87Jro6MwDf","youtubeid":"rDwj_i6hWe4","zurl":"https://www.youtube.com/watch?v=rDwj_i6hWe4","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Comprendre la logique Shadok Archive INA mp4"},{"created":"20230811191217249","resolution":"480p","duree":"0:03:27","duration":"207","giftime":"127","gifanime":"/ipfs/QmS6U9ekzDF6biwCqhuRbV4P9P3Xb5L7DVL1X9CC4jfqWf","modified":"20230811191217249","title":"Concorde_est-il_un_hommage_aux_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"18,48","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Concorde_est-il_un_hommage_aux_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"11748312","filesize":"11.20 MB","sec":"208","dur":"21","ipfs":"/ipfs/QmaWvMCe8HnfvXuwB4ae6BGtRdr1jwej4D9hsjoxGdiHu4","youtubeid":"F5KjqbeQvb4","zurl":"https://www.youtube.com/watch?v=F5KjqbeQvb4","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Concorde est-il un hommage aux Shadoks Archive INA mp4"},{"created":"20230805191233795","title":"CopierYoutube","type":"text/vnd.tiddlywiki","astronautens":"/ipns/k51qzi5uqu5dj4zeau5fzd5rso3j1e1l88z0soajvvngbr2rw7ua9ttehgz59i","wishns":"/ipns/k51qzi5uqu5dl8sziv5kwd6558od7v0l2m5goireugxva6ejzfulp3emkg8t2f","qrcode":"/ipfs/Qmefxdv1puPwEQ9Dc1mDQLikcyq5dRj4iPUWsrw9fwq1hX","decode":"/ipfs/QmcHE9Ee5moCt8NwtHcZDmWmCRYVokNUzAgRKk7VZGzma6","wish":"EfjtM2K1ZHmbzQ48aEEQ1sZa9e7RHwa3DktQTZjZSYai","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","text":"
TW G1Voeu shadoktube@yopmail.com

<$button class='tc-tiddlylink'> <$list filter='[tag[G1CopierYoutube]]'> <$action-navigate $to=<> $scroll=no/> Afficher tous vos G1CopierYoutube ","tags":"G1Voeu G1CopierYoutube shadoktube@yopmail.com","asksalt":"","junesec":"46513d80bf807eacf355f100db11d5fd7c363876373b52ef1c9639195e2ca056c4013cff14cb440ef87756c94f3c2d793794ffaeb6d23fc2c924e78d5028263273040a68502f5bf5885ec48dfb5717e0d53ea63ac296f38e34276d986e5fb893a110f93f17e4e2418f41cfdbd4eb790c95afb814305b5f6fb9bd2a745939e17d47153c22fe932f5405b36dfd0d765d873e90c332dde8b7f0cf22401aceaf18d48e4598c388e551"},{"created":"20230501165050587","creator":"shadoktube@yopmail.com","text":"[[CopyLaRadio*|https://www.copylaradio.com]] est un collectif de passionnés de musique, de technologie et de liberté, nous organisons un réseau de réseaux de %maker. L'objectif est d'apporter une solution respectueuse de la loi, des artistes, des inventeurs et de notre droit à innover librement.\n\nLa STI \"SociétéTechnologieInternet\" assure la garantie de qualité de services et la \"HotLine\" \nSes bureaux se situent au [[G1Fablab]]","title":"CopyLaRadio","modified":"20230501190957012","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20221209190809907","creator":"shadoktube@yopmail.com","text":"\\define p1() [get[\n\\define p2() ]]\n\\define p3() +[sum[]]\n\n<$list variable=\"thisField\" filter=\"[fields[]regexp[size]]\">\nsum of <> values:\n<$list filter=\"[getsum[]]\">\n{{!!title}}\n
\n\n<$vars thisDynamicFilter={{{ [fields[]regexp[size]addprefixaddsuffix] [] +[join[ ]] }}}>\n<$list filter={{{ [] }}}>\n''total:'' <>\n\n\n\n\n{{$:/core/ui/ExportTiddlyWikiCore}}","tags":"shadoktube@yopmail.com","title":"CoreExport","modified":"20221214201701729","modifier":"shadoktube@yopmail.com"},{"created":"20230719084405543","creator":"shadoktube@yopmail.com","text":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAHLA8QDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7NrzD9gCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+hq9M/HwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD55rzD9gCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+hq9M/HwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD55rzD9gCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+hq9M/HwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD55rzD9gCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+hq9M/HwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD55rzD9gCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+hq9M/HwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDmbn4n/AA1sriS1vPiH4ZgniYrJHLq1urofQgvkGgCL/hbHws/6KX4V/wDBzbf/ABdAGnofjHwj4mlkh8N+KdI1aSFd0iWN9FOyL0yQjHA+tAGxQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAHz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AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//9k=","modified":"20230719084512930","modifier":"shadoktube@yopmail.com","title":"Dessin de shadoktube@yopmail.com","type":"image/jpeg","president":"shadoktube@yopmail.com","tags":"$:/isAttachment $:/isEmbedded G1DessinDeMoa moa","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","tw":"/ipns/"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:30","duration":"150","giftime":"92","gifanime":"/ipfs/QmW6X8BSqWjhBrLPSjVmg6hG4jPLcxJSw5fbYBVF6cbZTv","modified":"20230806191223340","title":"Et_voila_le_Shadok_S01_Ep_01_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,84","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_01_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"13289163","filesize":"12.67 MB","sec":"150","dur":"21","ipfs":"/ipfs/QmbWH9GYttfjbKP4Qk5YeCWq7aW6WWYo8U6U7Nj6NN8Rn6","youtubeid":"eUUviFnGnBE","zurl":"https://www.youtube.com/watch?v=eUUviFnGnBE","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 01 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:04","duration":"124","giftime":"76","gifanime":"/ipfs/Qmag8prncghAYqfHjz4yaDhGqD1ABiXzwMJfWKJ334yD25","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_02_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_02_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"25085066","filesize":"23.92 MB","sec":"125","dur":"25","ipfs":"/ipfs/QmeJWcPxhY5VbLQErRAaoukMTkgbPuLxbafuENAHKte7pT","youtubeid":"uOLG1GJLfas","zurl":"https://www.youtube.com/watch?v=uOLG1GJLfas","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 02 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:11","duration":"131","giftime":"80","gifanime":"/ipfs/QmaB9WBvzpm5Fw5anu8Yrhi1Kn5dS8K5E71J59rinF1erR","modified":"20230805191219906","title":"Et_voila_le_Shadok_S01_Ep_03_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,04","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_03_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27276992","filesize":"26.01 MB","sec":"131","dur":"33","ipfs":"/ipfs/Qmcr1vjxZbgnTSKzsfA2TbQY7FdVTEESNeq78RVA82zhYr","youtubeid":"3EhIQSUU4Fk","zurl":"https://www.youtube.com/watch?v=3EhIQSUU4Fk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 03 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmYmtKCLPqepPnoqP8opHMNR2Q4iuCHcVnff27f2uYJwx8","modified":"20230812191217353","title":"Et_voila_le_Shadok_S01_Ep_05_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,76","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_05_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29521008","filesize":"28.15 MB","sec":"134","dur":"19","ipfs":"/ipfs/QmNgYjwa1QtVuSqryQqcoz1i839FsRgeW9JJkoeFRQY8LD","youtubeid":"MDCXhO8BsFM","zurl":"https://www.youtube.com/watch?v=MDCXhO8BsFM","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 05 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:02:21","duration":"141","giftime":"87","gifanime":"/ipfs/QmPf6AoBSUDxKsGznpW1mGe5NJ7mDG8TzeUDcKmVar44NK","modified":"20230811191217249","title":"Et_voila_le_Shadok_S01_Ep_06_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,71","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_06_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31357351","filesize":"29.90 MB","sec":"142","dur":"33","ipfs":"/ipfs/QmT2SK17hZEsmc4wGdprFzk83VidsWkA2czMT3Fzb7qAeS","youtubeid":"VfExItpu0F0","zurl":"https://www.youtube.com/watch?v=VfExItpu0F0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 06 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:26","duration":"146","giftime":"90","gifanime":"/ipfs/QmbXFCxPGPmSS4NfriZySZiMQwcrZkCQBortcQbywXEPqQ","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_07_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,33","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_07_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28699802","filesize":"27.37 MB","sec":"147","dur":"23","ipfs":"/ipfs/QmU719vunAvZYzBgB94JgWwGUTjVMMjhhf5YPc2t3PVAv7","youtubeid":"yKESHdG7qDY","zurl":"https://www.youtube.com/watch?v=yKESHdG7qDY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 07 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:32","duration":"152","giftime":"93","gifanime":"/ipfs/QmZeDNfj4nNPkP31kVinpNTuso4eMsmaztJxkyCyjVVwGo","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_08_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,34","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_08_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29826955","filesize":"28.45 MB","sec":"152","dur":"27","ipfs":"/ipfs/QmNsewDdySvSyvsRNemPXB3ZeEpM25qgaJqFgoBw6svVkp","youtubeid":"9vteAKC7LOo","zurl":"https://www.youtube.com/watch?v=9vteAKC7LOo","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 08 Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:02:18","duration":"138","giftime":"85","gifanime":"/ipfs/QmYLZtV4q9nA9wZVKypSfdgkkShZtoocvjM14Zj9KPHCVy","modified":"20230808191218180","title":"Et_voila_le_Shadok_S01_Ep_09_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_09_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27926776","filesize":"26.63 MB","sec":"139","dur":"25","ipfs":"/ipfs/QmNiyJajvtcWoJnYKD1UhZveHeAVkFRWPtHPxTbrwrpu87","youtubeid":"dbDv-v-ElHA","zurl":"https://www.youtube.com/watch?v=dbDv-v-ElHA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 09 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:12","duration":"132","giftime":"81","gifanime":"/ipfs/QmRUkbyavrZuG4PwugngBpF4GpU7WVjMHY6wSAPGgUEwSc","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_10_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,25","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_10_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"32575387","filesize":"31.07 MB","sec":"133","dur":"31","ipfs":"/ipfs/QmWM1DD4jA4mWHzDkPEWycvtsaiPPUgVdwvKRsHLTncrUt","youtubeid":"FL6dw7Kl3d0","zurl":"https://www.youtube.com/watch?v=FL6dw7Kl3d0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 10 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:12","duration":"132","giftime":"81","gifanime":"/ipfs/QmYVEQvvobb7FGp2RTMRNhpAfWmVzzA51uGqWwTyui39pa","modified":"20230805191219906","title":"Et_voila_le_Shadok_S01_Ep_11_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,43","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_11_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31273821","filesize":"29.83 MB","sec":"132","dur":"30","ipfs":"/ipfs/QmQxTGr3rtAdjpNM19YVMnsxqzc1nJznZjf4dNVeaSux2n","youtubeid":"zUPo9uKspiU","zurl":"https://www.youtube.com/watch?v=zUPo9uKspiU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 11 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmbFddfkrsryqD5HeqzKaCSomzCd2zHuzu2bAVAzsKCp1q","modified":"20230812191217353","title":"Et_voila_le_Shadok_S01_Ep_12_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,38","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_12_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"32108103","filesize":"30.62 MB","sec":"135","dur":"28","ipfs":"/ipfs/QmPqFBA6CMYqXrFv3eBTXUd9ZyHL73S5CswLHvizkrts9g","youtubeid":"82LRwQdg2x0","zurl":"https://www.youtube.com/watch?v=82LRwQdg2x0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 12 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:02:12","duration":"132","giftime":"81","gifanime":"/ipfs/QmNZ4XaH2953qeNr1xeoQZJQhuSbWh6mnc6A2fYoYrQX4r","modified":"20230814191217379","title":"Et_voila_le_Shadok_S01_Ep_13_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,92","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_13_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28109939","filesize":"26.81 MB","sec":"133","dur":"30","ipfs":"/ipfs/QmSHde2Ea4sHCAuy1PM5r7r1b26tZPGfr8exzyzRhkhrb7","youtubeid":"yy1C-k6GaWI","zurl":"https://www.youtube.com/watch?v=yy1C-k6GaWI","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 13 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:10","duration":"130","giftime":"80","gifanime":"/ipfs/QmVt1578ypk3Pyd5u3A4druRXuNbhWX5vBLqem1Kp2Teae","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_14_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,36","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_14_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"25422912","filesize":"24.25 MB","sec":"131","dur":"26","ipfs":"/ipfs/Qmbg5NNzQPBNJwYs7Joqj9igwVHfHmVffWVNPtKx6XhfEg","youtubeid":"qnfxgqrAXQA","zurl":"https://www.youtube.com/watch?v=qnfxgqrAXQA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 14 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:02:15","duration":"135","giftime":"83","gifanime":"/ipfs/QmTMGcHRM4u7X9q1FvzPqFdw4hv1UDSTdX7zs3gGQKc4MY","modified":"20230811191217249","title":"Et_voila_le_Shadok_S01_Ep_15_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,97","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_15_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28476829","filesize":"27.16 MB","sec":"135","dur":"34","ipfs":"/ipfs/QmTEvvAk4HY2DqWV38JqwNsCv2UzL3ch1mPQXr2YRfiGJo","youtubeid":"o8jFTchE3xQ","zurl":"https://www.youtube.com/watch?v=o8jFTchE3xQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 15 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:19","duration":"139","giftime":"85","gifanime":"/ipfs/QmRD1dhX5kJrvkEhhksNN8Hbpz4KFxYcSB9hX2CjQkSPe1","modified":"20230806191223340","title":"Et_voila_le_Shadok_S01_Ep_16_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,02","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_16_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29046631","filesize":"27.70 MB","sec":"140","dur":"31","ipfs":"/ipfs/QmNfHvm9WM6mYy5EjBTm3PR2knkK4FTDswYCLHrETXbyje","youtubeid":"YwTOFOL7m1M","zurl":"https://www.youtube.com/watch?v=YwTOFOL7m1M","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 16 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:02:16","duration":"136","giftime":"84","gifanime":"/ipfs/QmV9SpPrRbiWbRpSM3kn3uQwajqhsyJgNa9LsYQRp2T93S","modified":"20230811191217249","title":"Et_voila_le_Shadok_S01_Ep_17_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,58","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_17_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31130779","filesize":"29.69 MB","sec":"137","dur":"24","ipfs":"/ipfs/QmexnAGeFQQbjFVmZQM5VZ7HhwY9bpwuXdzu2MZ69JMLYz","youtubeid":"Lok6vdBaaYw","zurl":"https://www.youtube.com/watch?v=Lok6vdBaaYw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 17 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:02:18","duration":"138","giftime":"85","gifanime":"/ipfs/QmdLWdzrQc7oRTZgYQ3WqR5SgJAtEn6csGmGcJvFwYVGCY","modified":"20230815191216593","title":"Et_voila_le_Shadok_S01_Ep_18_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,55","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_18_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26088537","filesize":"24.88 MB","sec":"139","dur":"21","ipfs":"/ipfs/QmR1N3juKVfqqABsNR9MwpafybxPNRTRp16eK7gwmKkUiK","youtubeid":"HvIuyTg1Mm0","zurl":"https://www.youtube.com/watch?v=HvIuyTg1Mm0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 18 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:17","duration":"137","giftime":"84","gifanime":"/ipfs/QmPiWpCkbcsjKWG9MbUYtnhr2v6QVfAeaGEhdm58nEBV6C","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_19_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,99","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_19_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28768241","filesize":"27.44 MB","sec":"137","dur":"31","ipfs":"/ipfs/QmabnHm3qBDjvZAX5Q5YVWPkrRFD5jY2TWbHp3t4kPQVPf","youtubeid":"R00VrgzBSP8","zurl":"https://www.youtube.com/watch?v=R00VrgzBSP8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 19 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmYhuv7jCATz9Su5MezvccKuqjeJPAstDJ6PxYEu4wrTxn","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_21_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,92","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_21_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28562446","filesize":"27.24 MB","sec":"134","dur":"28","ipfs":"/ipfs/QmW8vNCqjeQw72rCQNKby8jZhjvwpEco6NBPbQoeFAWgvW","youtubeid":"DYLcb1xgz0M","zurl":"https://www.youtube.com/watch?v=DYLcb1xgz0M","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 21 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:02:22","duration":"142","giftime":"87","gifanime":"/ipfs/QmYvwkrYCRUcffTieSqau5ARBDnj9cRwTCzRBT6LzAvrnu","modified":"20230814191217379","title":"Et_voila_le_Shadok_S01_Ep_22_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,60","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_22_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26573598","filesize":"25.34 MB","sec":"142","dur":"24","ipfs":"/ipfs/QmRKFQFyiXS2STPYJckF6Wriq19gk66v79vkxNkowSBraE","youtubeid":"XutOMQF010E","zurl":"https://www.youtube.com/watch?v=XutOMQF010E","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 22 Archive INA mp4"},{"created":"20230818191218851","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmPQ8WsMmU9tmoygA84Q3HaNpfQyjr5D4Y3DGinSuMqiVa","modified":"20230818191218851","title":"Et_voila_le_Shadok_S01_Ep_23_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,28","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_23_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26594473","filesize":"25.36 MB","sec":"134","dur":"24","ipfs":"/ipfs/QmX6RGmomLEgrit3Yhmbk53v88cXNyRF5VdNX3BtpBwDdh","youtubeid":"FEmIXEi0U6o","zurl":"https://www.youtube.com/watch?v=FEmIXEi0U6o","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 23 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:20","duration":"140","giftime":"86","gifanime":"/ipfs/QmaHbVPjEGaGQPSLtF9HR2qVpDy7sznEPXRiR3A8nossFZ","modified":"20230805191219906","title":"Et_voila_le_Shadok_S01_Ep_24_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,24","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_24_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28027788","filesize":"26.73 MB","sec":"141","dur":"27","ipfs":"/ipfs/QmayTENczBNuE6o7262MAPfC64cyA6miNxcDznYuCrgLcx","youtubeid":"lAY38pY2py8","zurl":"https://www.youtube.com/watch?v=lAY38pY2py8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 24 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:02:13","duration":"133","giftime":"82","gifanime":"/ipfs/QmV3yS6FJqGTBeNSV5AW14WQP1V5ooUQjrCQMHByMQjJhs","modified":"20230813191218326","title":"Et_voila_le_Shadok_S01_Ep_25_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,29","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_25_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"32539986","filesize":"31.03 MB","sec":"133","dur":"39","ipfs":"/ipfs/QmYnGnjKL86JT3jV27kyi9nvg6UvBKYATw4eE8Cn2ra7x3","youtubeid":"U_uv8nDjSrw","zurl":"https://www.youtube.com/watch?v=U_uv8nDjSrw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 25 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:02:12","duration":"132","giftime":"81","gifanime":"/ipfs/QmWBniFKBVETbZischpKNmkyrw9fJemRptP4aD3rcod1Cm","modified":"20230814191217379","title":"Et_voila_le_Shadok_S01_Ep_26_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,75","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_26_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29161092","filesize":"27.81 MB","sec":"132","dur":"27","ipfs":"/ipfs/QmX2t5YsFxvZBzjnxBkPBwALiR4Jtdy8MUE9bVRY9DtyZ3","youtubeid":"hxKQetg8OO0","zurl":"https://www.youtube.com/watch?v=hxKQetg8OO0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 26 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmeCrsjQT6ppXKoF2NkNNCXq4mx79TERNnRYvM5WMRC6cQ","modified":"20230806191223340","title":"Et_voila_le_Shadok_S01_Ep_28_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,59","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_28_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"30640997","filesize":"29.22 MB","sec":"134","dur":"36","ipfs":"/ipfs/QmXgQYzvzYuRiNFjX6oEKFWboNAqboXVjehn1utkyZ3zV8","youtubeid":"QeT0k84KCTo","zurl":"https://www.youtube.com/watch?v=QeT0k84KCTo","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 28 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:18","duration":"138","giftime":"85","gifanime":"/ipfs/QmXwPHuebiAWXk2jGmtTGRThqBDUHHmbAYB8GJ2A9DmzGc","modified":"20230806191223340","title":"Et_voila_le_Shadok_S01_Ep_29_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,39","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_29_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26823726","filesize":"25.58 MB","sec":"138","dur":"28","ipfs":"/ipfs/QmNSsLfWAX8qQDG2xyXtB3XNGccRZKszcR1kpa6iDAe78m","youtubeid":"MR9IV3tJeoc","zurl":"https://www.youtube.com/watch?v=MR9IV3tJeoc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 29 Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:02:16","duration":"136","giftime":"84","gifanime":"/ipfs/QmNupZaTEKdg7UPCuGWAHCpUVip52syB3NxveyhmPVW5Qn","modified":"20230808191218180","title":"Et_voila_le_Shadok_S01_Ep_30_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,95","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_30_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28809824","filesize":"27.48 MB","sec":"137","dur":"39","ipfs":"/ipfs/QmSyMQiPkNYs2TaEjQvBs9H3otM8WpTJ74n2tjEhd4V85x","youtubeid":"9ber1P_jHDQ","zurl":"https://www.youtube.com/watch?v=9ber1P_jHDQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 30 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:02:09","duration":"129","giftime":"79","gifanime":"/ipfs/QmPPRvcmFY4dbytY42WoSmpQ53BE9TEnDKuQMqVsNHP9BV","modified":"20230816191217674","title":"Et_voila_le_Shadok_S01_Ep_32_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,60","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_32_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24148054","filesize":"23.03 MB","sec":"130","dur":"25","ipfs":"/ipfs/QmYVR4YE8H8ZfsWJ4JXyMR8K4PEmtAzgiNwm4Z61UbBfnr","youtubeid":"uzcmqiy3Dak","zurl":"https://www.youtube.com/watch?v=uzcmqiy3Dak","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 32 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:14","duration":"134","giftime":"82","gifanime":"/ipfs/QmXBRbCpkECWr4fDWzLvZPwKLXLhHJCCoAzXLekUWvqotA","modified":"20230805191219906","title":"Et_voila_le_Shadok_S01_Ep_33_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_33_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27103831","filesize":"25.85 MB","sec":"134","dur":"33","ipfs":"/ipfs/QmXCkUKsvZXTmmrDfqx8CDWSYZoxULiwZ6x99XBTYKYm25","youtubeid":"7gYs_IfTca0","zurl":"https://www.youtube.com/watch?v=7gYs_IfTca0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 33 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:02:21","duration":"141","giftime":"87","gifanime":"/ipfs/QmZqMrQUmQsoiPABLFDGYFFYy3N2QHJVCbHC5BfZpyQdyg","modified":"20230813191218326","title":"Et_voila_le_Shadok_S01_Ep_34_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,82","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_34_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"30652975","filesize":"29.23 MB","sec":"141","dur":"27","ipfs":"/ipfs/QmXU5xeqBxfQJeby7kSjKqkH9Yh9SdB9hzcYm2JWvipdz4","youtubeid":"ZLhWChrdBn8","zurl":"https://www.youtube.com/watch?v=ZLhWChrdBn8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 34 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:02:22","duration":"142","giftime":"87","gifanime":"/ipfs/QmaEXN3PaaoTgwwpVLefKCLKFgfTgM5vRw6ZwDs6dyNrby","modified":"20230812191217353","title":"Et_voila_le_Shadok_S01_Ep_36_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,68","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_36_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31786990","filesize":"30.31 MB","sec":"143","dur":"25","ipfs":"/ipfs/QmcR5Dv8MREyrzi2mQPhTxCBSpSEBzUuMuUWdoEdWzbFRw","youtubeid":"KKCU99oQrYE","zurl":"https://www.youtube.com/watch?v=KKCU99oQrYE","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 36 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:27","duration":"147","giftime":"90","gifanime":"/ipfs/QmRC7qvJU5g4WR5XjryYSfd9WB8BAN9n8jrcNsvXHdaL6D","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_37_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_37_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29739915","filesize":"28.36 MB","sec":"147","dur":"26","ipfs":"/ipfs/QmW9rf1wGy9DRFp3csXR4Qc9NYFei4NsqZu6tfkQBZGtc9","youtubeid":"nQNkiPwRTKo","zurl":"https://www.youtube.com/watch?v=nQNkiPwRTKo","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 37 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:24","duration":"144","giftime":"88","gifanime":"/ipfs/QmRDMN4xgBueg64M6JCnh1mA1x6BWcGsSV4w3CKxJKwk3F","modified":"20230806191223340","title":"Et_voila_le_Shadok_S01_Ep_39_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"3,89","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_39_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"38779679","filesize":"36.98 MB","sec":"144","dur":"39","ipfs":"/ipfs/QmPXXK9t8frKN5H9ZnkY2y6kdsQHHgzRtCHynLqgxsV5kx","youtubeid":"4ZX-EbVrpLc","zurl":"https://www.youtube.com/watch?v=4ZX-EbVrpLc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 39 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:02:31","duration":"151","giftime":"93","gifanime":"/ipfs/QmayZdQSLN9njcgQFSkF7raBxhcCuErycN22phBGWYsT6p","modified":"20230813191218326","title":"Et_voila_le_Shadok_S01_Ep_40_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,55","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_40_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"34777117","filesize":"33.17 MB","sec":"152","dur":"38","ipfs":"/ipfs/Qmb7oMpNirRryzqCHi3aLK8B15QKckkBemm45ZAACJBd6p","youtubeid":"rLdzPAd1kpU","zurl":"https://www.youtube.com/watch?v=rLdzPAd1kpU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 40 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:02:24","duration":"144","giftime":"88","gifanime":"/ipfs/QmWFHrZvbmkCjTcEZLtvSnGRNsRqRVFSrAY9sHtr14s6Ki","modified":"20230814191217379","title":"Et_voila_le_Shadok_S01_Ep_41_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,15","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_41_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29318234","filesize":"27.96 MB","sec":"145","dur":"27","ipfs":"/ipfs/QmduDciF4qrsTj8fzp9nbpszAjGWxmyzDdUxDyvgQToNdj","youtubeid":"Ky78CXml-5o","zurl":"https://www.youtube.com/watch?v=Ky78CXml-5o","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 41 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:29","duration":"149","giftime":"92","gifanime":"/ipfs/QmPRszJTPtwAxtD7qt83RBogNHWfGn1uCtuv8G99CGhJf3","modified":"20230805191219906","title":"Et_voila_le_Shadok_S01_Ep_43_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,34","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_43_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29254526","filesize":"27.90 MB","sec":"149","dur":"32","ipfs":"/ipfs/QmdvB282hSGQv4LYak6TWdLDfGpA9y4bbouDvxVf4kHsVo","youtubeid":"zfXHZp22IFw","zurl":"https://www.youtube.com/watch?v=zfXHZp22IFw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 43 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:02:25","duration":"145","giftime":"89","gifanime":"/ipfs/QmT1BZ5X64EcDreBu9di1HDG2QysP26ALQcN4ypW4RPE9y","modified":"20230814191217379","title":"Et_voila_le_Shadok_S01_Ep_44_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,48","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_44_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27744677","filesize":"26.46 MB","sec":"145","dur":"33","ipfs":"/ipfs/QmdkDBL4LqG8c5mdvpqTLNvATibx1LV4Da682VGzcHhMkN","youtubeid":"EMJH6LJtNVc","zurl":"https://www.youtube.com/watch?v=EMJH6LJtNVc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 44 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:21","duration":"141","giftime":"87","gifanime":"/ipfs/QmRkWFYRqb7MoPwr6Ac2WDMdv2WbaMy6a3r4kt8ueNtL9t","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_45_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,73","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_45_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31253684","filesize":"29.81 MB","sec":"141","dur":"39","ipfs":"/ipfs/QmbeyuznxEqTuJjgs3jJg42F6ahgbp3dC8PLx6VdGasEsC","youtubeid":"yexQNjTB8OQ","zurl":"https://www.youtube.com/watch?v=yexQNjTB8OQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 45 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:23","duration":"143","giftime":"88","gifanime":"/ipfs/QmWuz9mPK1EBityhuhsxMZwTamhd2vQAJeTMk3XFVPa6wk","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_46_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,19","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_46_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28882355","filesize":"27.54 MB","sec":"143","dur":"25","ipfs":"/ipfs/QmS5Q1byjkrFX2ij4dXyx9wadoP5uYEKpY9jmqBfYsqm9o","youtubeid":"97ZGvORvlck","zurl":"https://www.youtube.com/watch?v=97ZGvORvlck","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 46 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:02:26","duration":"146","giftime":"90","gifanime":"/ipfs/QmUZ4ALQiMktc1MQS83nLxPcgjYqknW4P87oJv1MyregY8","modified":"20230813191218326","title":"Et_voila_le_Shadok_S01_Ep_47_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,85","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_47_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31553080","filesize":"30.09 MB","sec":"146","dur":"25","ipfs":"/ipfs/QmdhWh4UFzHkqCoyCwVbBVBcw4PnLVruqo5xicv8aAsurG","youtubeid":"MsOWIk2iwBc","zurl":"https://www.youtube.com/watch?v=MsOWIk2iwBc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 47 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:02:29","duration":"149","giftime":"92","gifanime":"/ipfs/QmdeC5m3grTR5m61UeuX4SjURzRX6ZHdQaY7t1BgerLjoS","modified":"20230809191217544","title":"Et_voila_le_Shadok_S01_Ep_48_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,97","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_48_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31441137","filesize":"29.98 MB","sec":"149","dur":"29","ipfs":"/ipfs/QmSTTtCBWspNGLJoSFZdRhLcXPEsVY1PCCSfuKAP1KV5sg","youtubeid":"jd05CUYDTPc","zurl":"https://www.youtube.com/watch?v=jd05CUYDTPc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 48 Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:02:21","duration":"141","giftime":"87","gifanime":"/ipfs/QmZPVemSeUf3GL5HTh5iQvGUwVVirLtnm26Ld7bMuKWFJZ","modified":"20230808191218180","title":"Et_voila_le_Shadok_S01_Ep_49_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,84","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_49_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"25333585","filesize":"24.16 MB","sec":"142","dur":"28","ipfs":"/ipfs/QmVTYpWJE4rEjpNm7dY5ZvX9MsxXHN13kxvERaAmJHqHJx","youtubeid":"COArFFq1tA8","zurl":"https://www.youtube.com/watch?v=COArFFq1tA8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 49 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:22","duration":"142","giftime":"87","gifanime":"/ipfs/QmdFPkzM6GzFBJZQavp21aXUXoVsyxL8VBxCUyokM6bBVg","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_50_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,96","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_50_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24974656","filesize":"23.82 MB","sec":"143","dur":"24","ipfs":"/ipfs/QmP7ye96rtKXCesM3yztP7AkLPkKnTeu4SBK6nnmhFL2xp","youtubeid":"nNKJFmKsTkc","zurl":"https://www.youtube.com/watch?v=nNKJFmKsTkc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 50 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:02:28","duration":"148","giftime":"91","gifanime":"/ipfs/QmSjWvNibXyMi8XqSxzSnwL5fzsfwLv9AhxZJmVXZtuHZQ","modified":"20230817191217735","title":"Et_voila_le_Shadok_S01_Ep_51_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,20","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_51_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29826223","filesize":"28.44 MB","sec":"149","dur":"39","ipfs":"/ipfs/QmWkw2RLd5Xk8XG9rBtDc3Bhdh381G1nyDb2CFaKtzbXkw","youtubeid":"egwIMlvLjNA","zurl":"https://www.youtube.com/watch?v=egwIMlvLjNA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 51 Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:03:22","duration":"202","giftime":"124","gifanime":"/ipfs/QmSLPWxJ8gaZ18RxvZgpgvUnXM3KarSTBJh9NP5uC42ufs","modified":"20230808191218180","title":"Et_voila_le_Shadok_S01_Ep_52_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"4,01","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S01_Ep_52_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"52850240","filesize":"50.40 MB","sec":"202","dur":"47","ipfs":"/ipfs/QmY1gnoxCXRPcnb7WH8G641p5iisySMeBTB74rmEz6zYYE","youtubeid":"xk_2gwCuPms","zurl":"https://www.youtube.com/watch?v=xk_2gwCuPms","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S01 Ep 52 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmWsoMdh7tMCZZFLvA3392K4B6bEmky4p9pu3ZekUxX1Vq","modified":"20230816191217674","title":"Et_voila_le_Shadok_S02_Ep_11_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,31","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_11_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23843854","filesize":"22.74 MB","sec":"190","dur":"23","ipfs":"/ipfs/QmWiL5kqhPHPwkzE2KUD7RK7Ejixjv3Ftg6N61K6voCd87","youtubeid":"BlpOeYvyYHY","zurl":"https://www.youtube.com/watch?v=BlpOeYvyYHY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 11 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmQAB25jcU9oUw33VAjEJ8jBZb6sSWXyd187GUb91vY7v9","modified":"20230809191217544","title":"Et_voila_le_Shadok_S02_Ep_12_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,66","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_12_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"20632290","filesize":"19.68 MB","sec":"190","dur":"25","ipfs":"/ipfs/Qmf7uUDQhS4phnWKf9vjVqpGj5dpJycZZ2MQhBuxZFenXt","youtubeid":"GeN1-CVXyog","zurl":"https://www.youtube.com/watch?v=GeN1-CVXyog","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 12 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmdyhcTED5R9Q1y5KmG9KxdLRMq6EeZnz95ADTci4uMYvK","modified":"20230815191216593","title":"Et_voila_le_Shadok_S02_Ep_13_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,32","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_13_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27228839","filesize":"25.97 MB","sec":"191","dur":"23","ipfs":"/ipfs/QmSv9aPAScSS8xuXJ8NS9wM7FbSUMkWGgWCzgJmsaWFayY","youtubeid":"Ju_QOcH1xxo","zurl":"https://www.youtube.com/watch?v=Ju_QOcH1xxo","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 13 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmX5WpreDBGACJsgU47xae98gNbQZ8qnDgsYYhpk361vQq","modified":"20230816191217674","title":"Et_voila_le_Shadok_S02_Ep_14_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,94","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_14_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"20154555","filesize":"19.22 MB","sec":"191","dur":"109","ipfs":"/ipfs/QmQ52Wn43VzErzMPou7w3wCzUk2XRqDoaXs19RapCcHnVC","youtubeid":"zAo9mksCYxs","zurl":"https://www.youtube.com/watch?v=zAo9mksCYxs","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 14 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmTzAkYoxBs7cL8K15VBSTeHeqwNgnGifuNzUnpt1UPgVr","modified":"20230815191216593","title":"Et_voila_le_Shadok_S02_Ep_15_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,62","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_15_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23112268","filesize":"22.04 MB","sec":"191","dur":"25","ipfs":"/ipfs/QmZB7YxsnVKj6DqWTNkYQudxDys3p4tSgTFPcpwgc8CiAU","youtubeid":"6KrVNYcOfsY","zurl":"https://www.youtube.com/watch?v=6KrVNYcOfsY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 15 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmZmRmJj9xN5My7AVwkS7dFyXxtN8FqJYo5VB79mzHWmGS","modified":"20230817191217735","title":"Et_voila_le_Shadok_S02_Ep_16_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,92","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_16_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28938474","filesize":"27.60 MB","sec":"191","dur":"27","ipfs":"/ipfs/QmYEXycevPFjrvQMze5pto6X6fPoQcgWnZeryu7dstb7Vd","youtubeid":"XNL8S_H1oSc","zurl":"https://www.youtube.com/watch?v=XNL8S_H1oSc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 16 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmYMAk1xCa69L9X2zs5BFuC4gBtFtwfYwdB694WG6SpDmg","modified":"20230813191218326","title":"Et_voila_le_Shadok_S02_Ep_18_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,43","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_18_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23642915","filesize":"22.55 MB","sec":"191","dur":"23","ipfs":"/ipfs/QmZZV9JoRhfQVY6aRrWL7et1g3rX7wgU5ZbmhkLqN1yNME","youtubeid":"PTjXNlzw-OU","zurl":"https://www.youtube.com/watch?v=PTjXNlzw-OU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 18 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmRHHLowYqx7AgS178fgJAKJ7BQXxUJGUVBPeavKb198Ks","modified":"20230805191219906","title":"Et_voila_le_Shadok_S02_Ep_19_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,06","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_le_Shadok_S02_Ep_19_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28212525","filesize":"26.91 MB","sec":"191","dur":"30","ipfs":"/ipfs/QmTgTiDFozTgHtuABP92Rat2YqSJJ7RQx2A63souymouhF","youtubeid":"Rk50KqQNTXA","zurl":"https://www.youtube.com/watch?v=Rk50KqQNTXA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila le Shadok S02 Ep 19 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:03:08","duration":"188","giftime":"116","gifanime":"/ipfs/QmSeNygWRGiKCqCm6mWfjZk36cCYBRHH2fBrXzeKYoPXn4","modified":"20230805191219906","title":"Et_voila_les_Shadoks_S02_Ep_01_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,06","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_01_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24445849","filesize":"23.31 MB","sec":"188","dur":"27","ipfs":"/ipfs/QmcvC8UFjQTMZSwuZiF7KjSKbsy4tJ5nLhpKnbswPMtYan","youtubeid":"l3tYsdiFqNs","zurl":"https://www.youtube.com/watch?v=l3tYsdiFqNs","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 01 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/Qma64ptp86QrowpJJFJMBZEpads2uzW4fFb2fjCUJHkZuE","modified":"20230806191223340","title":"Et_voila_les_Shadoks_S02_Ep_02_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,97","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_02_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19976470","filesize":"19.05 MB","sec":"191","dur":"41","ipfs":"/ipfs/QmTFaSiN6sgBA3sZ8fSzCKmwdp5kBPo3fNkYoMgec7TXvM","youtubeid":"YSuXTrFoUN8","zurl":"https://www.youtube.com/watch?v=YSuXTrFoUN8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 02 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmSABVtMq9KLQEa2SR6MyGAvboFRkJisVMPkBEk8PnpbiL","modified":"20230815191216593","title":"Et_voila_les_Shadoks_S02_Ep_03_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,63","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_03_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23081745","filesize":"22.01 MB","sec":"190","dur":"21","ipfs":"/ipfs/QmQVFvdwF5vX9ypfTW2bdZoCGcsDzoQBF3ifbihifMEvJX","youtubeid":"Q3olZJLYPr0","zurl":"https://www.youtube.com/watch?v=Q3olZJLYPr0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 03 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmW44RkPmc74G5KMPGxSzvLmpd46wcU1F6RLt11Q8hkmvo","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_04_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"10,17","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_04_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19591238","filesize":"18.68 MB","sec":"190","dur":"38","ipfs":"/ipfs/QmRDJSZBjYoEAvba5jrCVGivP15xW7DwN9nDRGJHEC9Jo4","youtubeid":"z6ayVneWS08","zurl":"https://www.youtube.com/watch?v=z6ayVneWS08","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 04 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmZwuBPuYvM832YHsVViBfUaLpM3CHMKYXRnRb3Fymnrhg","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_07_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,66","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_07_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26005780","filesize":"24.80 MB","sec":"190","dur":"24","ipfs":"/ipfs/QmU2PVjkR2SjcZfkuhDxcRYVadupNe7CyFhRjP1Efi9fQ6","youtubeid":"LG7pRFXYK3M","zurl":"https://www.youtube.com/watch?v=LG7pRFXYK3M","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 07 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmVvKSSZf74UDTZqiBAzN1PRAZnnF2P6LyboLJppyxkKUi","modified":"20230811191217249","title":"Et_voila_les_Shadoks_S02_Ep_08_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"10,03","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_08_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19752695","filesize":"18.84 MB","sec":"189","dur":"26","ipfs":"/ipfs/QmbyebMFUXNTcfbZY6L7izrFX8GriQAXCEEWWs53qN7Qig","youtubeid":"EzCIrwMASEE","zurl":"https://www.youtube.com/watch?v=EzCIrwMASEE","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 08 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmeTCQFwquApp7JaRrdEq6wrYfdP6SmSnbVrrEHfp3Cv9e","modified":"20230815191216593","title":"Et_voila_les_Shadoks_S02_Ep_09_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,96","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_09_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28609086","filesize":"27.28 MB","sec":"191","dur":"35","ipfs":"/ipfs/QmTf4rSBPunGUzD4i6KEvYyYWHna7ttPqh3APukKV1GUcp","youtubeid":"OyB3AEH6918","zurl":"https://www.youtube.com/watch?v=OyB3AEH6918","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 09 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmNooQVCKbGSVSS9DaCwM7oZzHQZsvJV4FhmawCBb9AftV","modified":"20230809191217544","title":"Et_voila_les_Shadoks_S02_Ep_10_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"10,36","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_10_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19231354","filesize":"18.34 MB","sec":"191","dur":"25","ipfs":"/ipfs/QmbirucrzRA5D7GrH8zBxcTYtNpWyshFwS2XnecBQDZeBq","youtubeid":"LAV9OqjM6_8","zurl":"https://www.youtube.com/watch?v=LAV9OqjM6_8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 10 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmeKRq6eWKtghisi3WNqsuAHxU1EDDGnx9rkJgZSUG6CNe","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_21_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,91","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_21_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"16724216","filesize":"15.95 MB","sec":"191","dur":"38","ipfs":"/ipfs/QmPmzJNo6Wb86RB9ZPMS9V2VeoXxokEi3D5qA3a8GCxQ8a","youtubeid":"8H4hiVIGa6s","zurl":"https://www.youtube.com/watch?v=8H4hiVIGa6s","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 21 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmVJh41iYbcMtFuLgWuWJ7EBrcCyH7VjQ3C2wCrVWXYxgK","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_22_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,97","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_22_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"16646662","filesize":"15.88 MB","sec":"190","dur":"26","ipfs":"/ipfs/QmXiik3spcRmrVExg3fvZfMy2EvuHWunEv4Jz7nNpQtAwL","youtubeid":"SGi9aesaRUg","zurl":"https://www.youtube.com/watch?v=SGi9aesaRUg","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 22 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmZANRh1yCSDffuyh3hQiYbgKEobAchikBjMv7HfwkUUsK","modified":"20230816191217674","title":"Et_voila_les_Shadoks_S02_Ep_23_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,06","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_23_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"18115120","filesize":"17.28 MB","sec":"191","dur":"51","ipfs":"/ipfs/Qmd7y3qwMPq6nLNLRZDAYvpWkuzbxZYrQnrAH9j37MATKD","youtubeid":"9IiUpyVIEng","zurl":"https://www.youtube.com/watch?v=9IiUpyVIEng","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 23 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/Qmbur5eJnHxpzJK4PMNwFNgingScqfnd6eXCjWj4mbeS6r","modified":"20230805191219906","title":"Et_voila_les_Shadoks_S02_Ep_25_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,73","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_25_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"20479715","filesize":"19.53 MB","sec":"191","dur":"29","ipfs":"/ipfs/QmW5Lb8TK5ECY8zmuNXbiHnJSThYTkNw54h7vvXz8gekUw","youtubeid":"MKNwAesorvc","zurl":"https://www.youtube.com/watch?v=MKNwAesorvc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 25 Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmPtfzLbFg3Qff5454cemhu2ULjL64YxBghk8oAaKKskA2","modified":"20230808191218180","title":"Et_voila_les_Shadoks_S02_Ep_26_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,51","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_26_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"17315687","filesize":"16.51 MB","sec":"191","dur":"37","ipfs":"/ipfs/QmWCH2d4sCMFHBretxziCNLxHNGSEsUipAXKMVrXfn1UiU","youtubeid":"SD4gS3Gi68w","zurl":"https://www.youtube.com/watch?v=SD4gS3Gi68w","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 26 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmVEvkuQGFUqbaKVkT5eQwcQupjZzkz4pTuMJBbofa8iUT","modified":"20230814191217379","title":"Et_voila_les_Shadoks_S02_Ep_27_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,84","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_27_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"13498950","filesize":"12.87 MB","sec":"191","dur":"41","ipfs":"/ipfs/QmWeD4APo8mAxmXVam4a7BiGDQwRJr4Kfvntg2KJEjnqMm","youtubeid":"uEDGLT_1ZG8","zurl":"https://www.youtube.com/watch?v=uEDGLT_1ZG8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 27 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmePyczmEenHGhsz3Mhr2zFJ4FDnt82qeLDj5X7VNAL1pu","modified":"20230816191217674","title":"Et_voila_les_Shadoks_S02_Ep_28_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,12","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_28_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"15185517","filesize":"14.48 MB","sec":"191","dur":"46","ipfs":"/ipfs/QmeBMqfsDQ7yX7JZQRf2ECsGM1CDv4GkMWXYUdFbBXBVhW","youtubeid":"Bg-BxTEWH74","zurl":"https://www.youtube.com/watch?v=Bg-BxTEWH74","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 28 Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmaeMiBrtE9DpXUkpG4DPD8EUZy4gARLrUucvgrmjWdDCy","modified":"20230813191218326","title":"Et_voila_les_Shadoks_S02_Ep_29_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"18,85","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_29_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"10625113","filesize":"10.13 MB","sec":"191","dur":"25","ipfs":"/ipfs/QmfEuH2m6U9SacH1HVhrKMvMCCTkNEzTzYJGbdHyMAw9g5","youtubeid":"pJ_kHZBECy0","zurl":"https://www.youtube.com/watch?v=pJ_kHZBECy0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 29 Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmSMzqrqTw7S8QfcpVLvrfwP4jZrHpoxZ6tNnhRBFhnST4","modified":"20230816191217674","title":"Et_voila_les_Shadoks_S02_Ep_30_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,59","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_30_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"15825412","filesize":"15.09 MB","sec":"191","dur":"31","ipfs":"/ipfs/QmVSDZUPc9yhamsw1ssBLHvMqM59R1fWkJQMRkSbv6yucS","youtubeid":"duKRZtYbu10","zurl":"https://www.youtube.com/watch?v=duKRZtYbu10","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 30 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/Qmemy9VLmtwcDE5Z5RtGubTeGPEcKdtV6vx8X8c3uaPeeY","modified":"20230806191223340","title":"Et_voila_les_Shadoks_S02_Ep_32_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,29","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_32_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"16124924","filesize":"15.38 MB","sec":"190","dur":"27","ipfs":"/ipfs/QmUL2yALQMHLgZDwf2jdydrAj6VDe7xJesXUweBumpNvx6","youtubeid":"ySx2KKTS4Pc","zurl":"https://www.youtube.com/watch?v=ySx2KKTS4Pc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 32 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmPtdEEphSk7LCaTBMeKqSv1JiKCzBvKMMFac3dLzawf3C","modified":"20230815191216593","title":"Et_voila_les_Shadoks_S02_Ep_33_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,14","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_33_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"16414820","filesize":"15.65 MB","sec":"191","dur":"53","ipfs":"/ipfs/QmNWrNs9wDekeF9vLyv28WRU5BvpYZDysnDrTBp77FSnEf","youtubeid":"9d45_Qr59LA","zurl":"https://www.youtube.com/watch?v=9d45_Qr59LA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 33 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmShA2hMDniKvhsbuUnpNdpMX47xg5hRnihng4GeCwgFXi","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_34_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,74","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_34_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"15638738","filesize":"14.91 MB","sec":"191","dur":"22","ipfs":"/ipfs/QmevMFcfps5XudMv8ETJ8eniuCJ72BBt7r7CSD62T3M6Gj","youtubeid":"43DCgVm_TCY","zurl":"https://www.youtube.com/watch?v=43DCgVm_TCY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 34 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmYmSZrZV22464SQTWbWPKaQ2TxypUrgWdr7Zg3xvyGmKj","modified":"20230811191217249","title":"Et_voila_les_Shadoks_S02_Ep_35_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"10,90","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_35_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"18373732","filesize":"17.52 MB","sec":"191","dur":"22","ipfs":"/ipfs/QmcbG3AnWAK9FvFaA78Hn1rofJrDEGusVqM111WNwwrWiR","youtubeid":"RbyiNW234iU","zurl":"https://www.youtube.com/watch?v=RbyiNW234iU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 35 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmVAet9wh5kho7Fo2dEL3HFk8oi82MCSYmz8sAnric4uYk","modified":"20230815191216593","title":"Et_voila_les_Shadoks_S02_Ep_36_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,31","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_36_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23972336","filesize":"22.86 MB","sec":"190","dur":"32","ipfs":"/ipfs/QmcJpcCG5awGjsP26qWyvgNirxgebVj9E7eZTpLHAmUnQ5","youtubeid":"nxnRL7i005c","zurl":"https://www.youtube.com/watch?v=nxnRL7i005c","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 36 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmcaXBoZ8ueTCM3RSzw7vzxSD3mtdQCmHNrUHoSEKUQuQv","modified":"20230811191217249","title":"Et_voila_les_Shadoks_S02_Ep_37_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,70","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_37_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"20651020","filesize":"19.69 MB","sec":"191","dur":"50","ipfs":"/ipfs/QmYJkvwqBWfPLd2vdDNRzYvgfXABejwKEz8rqKcmeWCiSj","youtubeid":"0OiYt1fI5KA","zurl":"https://www.youtube.com/watch?v=0OiYt1fI5KA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 37 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmZzLAqoNUUhYt3V6xE3ggifuVhEYnR6RePVW67ZJ22fk4","modified":"20230809191217544","title":"Et_voila_les_Shadoks_S02_Ep_38_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,44","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_38_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26925910","filesize":"25.68 MB","sec":"191","dur":"70","ipfs":"/ipfs/QmeNnDCSSKneiBaNCUzUuR1wGSpbVVkxDew9tjB3PMLK9j","youtubeid":"UMLEwtg3SuA","zurl":"https://www.youtube.com/watch?v=UMLEwtg3SuA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 38 Archive INA mp4"},{"created":"20230812191217353","resolution":"720p","duree":"0:03:11","duration":"191","giftime":"118","gifanime":"/ipfs/QmRUSL7CQMo23AeZJrjUbZM3EZqYGTQcHqZktzrH748f98","modified":"20230812191217353","title":"Et_voila_les_Shadoks_S02_Ep_40_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,14","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_40_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"21902977","filesize":"20.89 MB","sec":"191","dur":"26","ipfs":"/ipfs/QmbhTHXB6ecQ5UAYiXR15cRQNVg1g1PojbJT8weZQbaYZZ","youtubeid":"cp_QppkPzwA","zurl":"https://www.youtube.com/watch?v=cp_QppkPzwA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 40 Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmaCK5qta7CvqmLqbDXh4e1Q2gCubux2jp1vYFoUveYPQx","modified":"20230815191216593","title":"Et_voila_les_Shadoks_S02_Ep_41_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,24","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_41_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24055191","filesize":"22.94 MB","sec":"189","dur":"25","ipfs":"/ipfs/Qmc2kYF5pfj59vAxf97wkaaZnjh9fGsC6tQG33gq9rpViZ","youtubeid":"terVF4Pm2Nk","zurl":"https://www.youtube.com/watch?v=terVF4Pm2Nk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 41 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmPvrYyRqeU5onK6PPQZUQZEvRsL3FssvUHcfziLPU6iFL","modified":"20230811191217249","title":"Et_voila_les_Shadoks_S02_Ep_42_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,98","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_42_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28396328","filesize":"27.08 MB","sec":"189","dur":"34","ipfs":"/ipfs/QmUXNsqi6LBADcPCon5kxVyC2GF4AT9JS3ZK154ikCjsPP","youtubeid":"0e1FJTrrkDQ","zurl":"https://www.youtube.com/watch?v=0e1FJTrrkDQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 42 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmV5Cg3c2uuQvgQdmmzyemfdErKqLytLKLD4PKqNfYdqQ2","modified":"20230805191219906","title":"Et_voila_les_Shadoks_S02_Ep_43_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,57","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_43_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23134461","filesize":"22.06 MB","sec":"189","dur":"26","ipfs":"/ipfs/QmcYoeW6FzPR5PjCARw2JLs6PbfjA2JJDUyx8YV5SoQeC9","youtubeid":"FAJ42ug8P7A","zurl":"https://www.youtube.com/watch?v=FAJ42ug8P7A","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 43 Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmcwtrsCPViA9Jgs7KwXhGkADZVJHZbxoSar3DcxnZYx1P","modified":"20230809191217544","title":"Et_voila_les_Shadoks_S02_Ep_45_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,47","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_45_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"17376632","filesize":"16.57 MB","sec":"190","dur":"56","ipfs":"/ipfs/QmTnnyuTEWmbXepQAu8zHk1914JEJP8C6EFDVJtAshNZDB","youtubeid":"Yyl-BH4ZmaU","zurl":"https://www.youtube.com/watch?v=Yyl-BH4ZmaU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 45 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmVVoLEJZEc3yZsmiXpkCitXgCRN5EySAV5tZyGGQqTzfn","modified":"20230814191217379","title":"Et_voila_les_Shadoks_S02_Ep_47_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,23","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_47_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24196741","filesize":"23.08 MB","sec":"190","dur":"39","ipfs":"/ipfs/QmZ9WJzcjjkkatTRR3Bvc6iQ13dgcQJE8edVeYi6b2LhXX","youtubeid":"tl3_qVqsjHU","zurl":"https://www.youtube.com/watch?v=tl3_qVqsjHU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 47 Archive INA mp4"},{"created":"20230818191218851","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/Qmbsirpuf5fckEEHEr1fWL7aDAgjTPKVL5eeUfqVbVaBNJ","modified":"20230818191218851","title":"Et_voila_les_Shadoks_S02_Ep_48_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,08","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_48_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"21952932","filesize":"20.94 MB","sec":"190","dur":"22","ipfs":"/ipfs/QmQuFUYXvTaRBd6cjzj8o4AHuwZxp77m6uFNDzkUqRsrMk","youtubeid":"P-H84w6jFL0","zurl":"https://www.youtube.com/watch?v=P-H84w6jFL0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 48 Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmQH3ePCa6UFjZxEecrYckkujo5gtqEs7akGD2SE4yBhvj","modified":"20230814191217379","title":"Et_voila_les_Shadoks_S02_Ep_49_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,11","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_49_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"17845068","filesize":"17.02 MB","sec":"189","dur":"22","ipfs":"/ipfs/QmcpCkLUsf6xkpAkbMZ5kJ4rSnDkHA3JeEs6ScG2cjTrTA","youtubeid":"wysfCAaxfhI","zurl":"https://www.youtube.com/watch?v=wysfCAaxfhI","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 49 Archive INA mp4"},{"created":"20230817191217735","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmdrqKfyFgHuyE9FySa5eQHDwPyo1keskNzkS4sX2YfWgN","modified":"20230817191217735","title":"Et_voila_les_Shadoks_S02_Ep_50_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,32","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_50_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"23956428","filesize":"22.85 MB","sec":"190","dur":"21","ipfs":"/ipfs/QmPwEUvcq2g1eDVedotAKcngMbUeoVLh3FfPpLTbnRwG2o","youtubeid":"VJ2WQBfk1u0","zurl":"https://www.youtube.com/watch?v=VJ2WQBfk1u0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 50 Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:03:09","duration":"189","giftime":"116","gifanime":"/ipfs/QmehyTAixwNU5G6DW27dNajESCppSw95ppJ3nrF2GJVoSx","modified":"20230806191223340","title":"Et_voila_les_Shadoks_S02_Ep_51_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,04","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_51_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24652104","filesize":"23.51 MB","sec":"190","dur":"30","ipfs":"/ipfs/Qmew8KmuSj2kjpdVKzPsPXfRQv6wCNjCmsVtG78wxHFE63","youtubeid":"TjSyzXR8lKo","zurl":"https://www.youtube.com/watch?v=TjSyzXR8lKo","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 51 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"0:03:10","duration":"190","giftime":"117","gifanime":"/ipfs/QmQfYmW9WykAJ2zfeD5VSyKKyknfjRna4sjbukEguBZt4B","modified":"20230811191217249","title":"Et_voila_les_Shadoks_S02_Ep_52_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,09","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks_S02_Ep_52_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24620758","filesize":"23.48 MB","sec":"190","dur":"21","ipfs":"/ipfs/Qmd5sdt2z1Jw7kbxq1m3azn77NzJg5TFv2bMjbRnyrHans","youtubeid":"9RtVEgKBUCI","zurl":"https://www.youtube.com/watch?v=9RtVEgKBUCI","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks S02 Ep 52 Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"2:18:45","duration":"8325","giftime":"5144","gifanime":"/ipfs/Qma4CFSjBAaGXzEdMCyzjQYJzhfz5R6iEtScsg6Ndiu158","modified":"20230805191219906","title":"Et_voila_les_Shadoks,_la_saison_2_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,94","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks,_la_saison_2_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"1099056408","filesize":"1.02 GB","sec":"8325","dur":"378","ipfs":"/ipfs/QmYnYM58pybrDPqg6TK1BxKMduCcPGRJxMuXB6RzzWAGEg","youtubeid":"Dk1JjjbZ4yc","zurl":"https://www.youtube.com/watch?v=Dk1JjjbZ4yc","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks, la saison 2 Archive INA mp4"},{"created":"20230811191217249","resolution":"720p","duree":"2:18:51","duration":"8331","giftime":"5148","gifanime":"/ipfs/QmXpGhpsPZu5P3mmsmbdXGGq79UFC9tnjyuBWjCo3EqGFB","modified":"20230811191217249","title":"Et_voila_les_Shadoks,_la_saison_3_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,84","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Et_voila_les_Shadoks,_la_saison_3_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"1276264767","filesize":"1.19 GB","sec":"8331","dur":"380","ipfs":"/ipfs/QmUQXqWyzfNHWTirzH5sd1D4WHZyv9CZL2pKhAiFzYctAv","youtubeid":"m8cfXGQTWBU","zurl":"https://www.youtube.com/watch?v=m8cfXGQTWBU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Et voila les Shadoks, la saison 3 Archive INA mp4"},{"created":"20230812191217353","resolution":"480p","duree":"0:03:16","duration":"196","giftime":"121","gifanime":"/ipfs/QmZK63VecBxwkCnsSuLwReZgrvgiiYh6RaNZhXb1iM1usq","modified":"20230812191217353","title":"Faut-il_avoir_un_bureau_spacieux_pour_creer_un_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,58","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Faut-il_avoir_un_bureau_spacieux_pour_creer_un_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"12394868","filesize":"11.82 MB","sec":"197","dur":"20","ipfs":"/ipfs/QmRBVAHmuc9EpTPk4Q76fyexqrr1zv9YwVoZ2V92f6PAqj","youtubeid":"vNPQgbUfElg","zurl":"https://www.youtube.com/watch?v=vNPQgbUfElg","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Faut-il avoir un bureau spacieux pour creer Shadok Archive INA mp4"},{"created":"20230814191217379","resolution":"480p","duree":"0:03:12","duration":"192","giftime":"118","gifanime":"/ipfs/QmQQsyprQ7kRChSWsFochecZj8kSy1jM5pDHiuyBK9aYAj","modified":"20230814191217379","title":"Faut-il_sortir_de_Polytechnique_pour_comprendre_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"22,80","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Faut-il_sortir_de_Polytechnique_pour_comprendre_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8830861","filesize":"8.42 MB","sec":"193","dur":"16","ipfs":"/ipfs/QmY3VcttmooFDBUMEfHsTKpRMX3E2ouzryc8PmKtx3nV4b","youtubeid":"0n7RGJaDzAU","zurl":"https://www.youtube.com/watch?v=0n7RGJaDzAU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Faut-il sortir de Polytechnique pour comprendre les Shadoks Archive INA mp4"},{"created":"20221028151255914","creator":"shadoktube@yopmail.com","text":"''Exemple : Pour activer votre flux Ŋ1 \"G1Film\", ajoutez le tag \"voeu\" à ce Tiddler. Puis enregistrez ce TW. Au prochain 20H12, ASTROBOT activera ce canal avec vos amis...''\n\n[img[Voeu1.png]]","title":"Film","modified":"20230413121628359","tags":"","modifier":"shadoktube@yopmail.com"},{"created":"20230920150221449","creator":"Fred","text":"\n# [SLIDE SHOW](https://pad.p2p.legal/p/Ynov#)\n\n## Scripting\n\n---\n\n* Noyau, ENV : BASH, PYTHON, LUA, ...\n* Framework & Librairies\n\n---\n\n* Blabla Data: bin, txt, csv, xml, json, ...\n* HTML5, SVG: W3C et normalisation\n\n---\n\n* Navigateur Web et Socket\n\n---\n\n* Automatisation: surveillance, actions et réactions \n\n---\n\n* Data Scraping: Hacking et éthique\n\n---\n\n**Transparence** : Libre vs Non Libre\n\n**TP** : Metasploit, Prometheus, ...\nhttps://www.kali.org/\n\n---\n\n# Infra\n\n---\n\n* Architecture \"PC\" : CPU / RAM / HDD (GPU)\n* Réseau : TCP / IP, DNS, DHT\n\n---\n\n* Client Serveur vs P2P (Th. de CAP)\n* Web1, Web2.0 : Login et \"mot de passe\" & SQL\n\n---\n\n* Full Stack ?! Nodejs, Stockage objet, ...\n\n---\n\n* Web3: chiffrement et adressage par le contenu\n\n---\n\n* IPFS: système de fichier interplanétaire\n\n---\n\n\n**Robustesse** : Centralisé vs Décentralisé\n\n**TP**: Docker, Elastic, IPFS ... \nhttps://ipfs.tech/\n\n---\n\n# Blockchain\n\n---\n\n* Consensus vs Compromis (règles et lois)\n* Papier crayon digital : POW, POS, Fork et chaîne, WOT\n\n---\n\n* Crypto Math : PGP, RSA, ED25519 (symétrique / asymétrique)\n* Crypto Coin : Bitcoin (Mine), ..., Duniter (Forge), ...\n\n---\n\n* \"Lightning network\" & Sidechain\n* NFT, DApp, ... Création de protocoles distribués\n\n---\n\n* Clefs dérivées, toiles et anneaux de confiance\n\n---\n\n* Identité Numérique & \"Super App\"\n\n---\n\n**Gouvernance** : Top2Bottom vs Bottom2Top\n\n**TP** : Ynov Coin, Vote Quadratique, ... \nhttps://www.ynov.com/\n\n---\n\n# NEWS \n\n* [Build and Run a Medical Chatbot using Llama 2 on CPU Machine: All Open Source](https://www.youtube.com/watch?v=kXuHxI5ZcG0)\n* [The Declaration of Independence of Cyberspace / John Perry Barlow](https://www.youtube.com/watch?v=3WS9DhSIWR0)\n* [Remi Explique](https://www.youtube.com/@RemiExpliqueVideo/videos)\n* ...\n","type":"text/x-markdown","title":"Formation Cyber Ynov 23/24","tags":"soundfables@yopmail.com shadoktube@yopmail.com","modified":"20230928141721262","modifier":"shadoktube@yopmail.com"},{"created":"20231009211937113","creator":"shadoktube@yopmail.com","text":"
Astroport ONE
Hyperviseur IPFS synchronisé par toile de confiance et automate Web3 programmable.

Utilisez un compte
pour
Astroport ONE...
Gchange.fr
Créer un TW
Créer un TW
SCUTTLEBUTT over IPFS

SCUTTLEBUTT over IPFS...
TW
TW
Tiddler1
Tiddler1
Tiddler2
Tiddler2
Tiddler3
Tiddler3
...
...
ASTROBOT
ASTROBOT
G1Tag1
G1Tag1
USER
USER
ToileDeConfiance
ToileDeConfiance
Duniter
Duniter
Identité Numérique
Identité Numérique
Gchange
Gchange
Identités Commerciales
Identités Commerciales
PLAYER
PLAYER
ASTROBOT
ASTROBOT
G1Tag2
G1Tag2
TW (B)
TW (B)
Tiddler1
Tiddler1
Tiddler2
Tiddler2
Tiddler3
Tiddler3
...
...
TW (C)
TW (C)
Tiddler1
Tiddler1
Tiddler2
Tiddler2
Tiddler3
Tiddler3
...
...
Text is not SVG - cannot display
","type":"application/vnd.drawio","modified":"20231009212007354","modifier":"shadoktube@yopmail.com","title":"G1 Web3 Diagram","tags":""},{"created":"20230501172205915","creator":"shadoktube@yopmail.com","text":"Le G1FabLab est un appartement/atelier/restaurant chez l'habitant situé à Toulouse \n\nDepuis 2018 et la découverte de la MonnaieLibre par Fred, ce lieu a été dédié aux recherche et développement qui ont mené à AstroportONE.\n\nDe nombreux développeurs et utilisateurs connaissent déjà le lieu.\nDisponible [[à la location|https://data.gchange.fr/market/record/AXkYKt0Q3rjWf40fqSUD/_share]] (selon dispo), \n\nVous pouvez y [[prendre RDV pour libérer vos appareils et vos logiciels|https://cloud.copylaradio.com/index.php/apps/appointments/pub/qPrkBHv9Ros%3D/form]]\n\n\nRaccordé à la fibre, Il héberge l'infrastructure technique de CopyLaRadio\n\n","title":"G1Fablab","modified":"20230501190744733","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20220504005648767","creator":"shadoktube@yopmail.com","text":"","title":"G1Visa","type":"image/jpeg","modified":"20230719092046600","tags":"$:/isAttachment $:/isIpfs shadoktube@yopmail.com","_canonical_uri":"/ipfs/QmNgQ1QtvSdwv9LSEtK3pAJMDZffLZhg6gGC2oxuucRGvB","modifier":"shadoktube@yopmail.com","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","tw":"/ipns/","player":"shadoktube@yopmail.com"},{"created":"20220418235829684","creator":"shadoktube@yopmail.com","text":"<$leafmap\ntileControl\ntile='sat'\nzoom='14'\nplaces='{\"point\":\"44.2301, 1.6518\"}'\n/>\n\nGrace à ce Tiddler, indiquez où se trouve l'endroit où se situe la .\nSi vous bénéficiez d'un Journal Astronaute, géolocalisé, les coordonnées qui se trouvent dans un rayon de 50km vous seront révélées.\n\nhttps://www.openstreetmap.org/","tags":"G1Carte","title":"GPS","modified":"20230116200928426","gps":"44.2301, 1.6518","modifier":"shadoktube@yopmail.com"},{"created":"20230501174952611","creator":"shadoktube@yopmail.com","text":"Participez au forum et (faites le chat), en vous inscrivant sur le site de CopyLaRadio\n\n* Email : support@qo-op.com\n* Matrix : https://matrix.to/#/#astroportN1:yuno.librezo.fr\n* Telegram : https://t.me/AstroportN1/1\n* Cocoding : https://vdo.copylaradio.com/?room=cocoding\n\nAu [[G1Fablab]] et sur RDV\nhttps://cloud.copylaradio.com/index.php/apps/appointments/pub/qPrkBHv9Ros%3D/form\n\n\n\n\n","title":"HotLine","modified":"20230501190939059","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20230120160358768","creator":"shadoktube@yopmail.com","text":"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","title":"imagedefond.png","type":"image/png","modified":"20230120160400627","modifier":"shadoktube@yopmail.com","tags":"$:/isAttachment $:/isEmbedded shadoktube@yopmail.com"},{"created":"20231009211853908","creator":"shadoktube@yopmail.com","text":"
private messaging
private messaging
DUNITER P2P
(bma, ws2p, gva)
DUNITER P2P...
CESIUM+
profils
annonces...
CESIUM+...
CoFédération
CoFédération
ASTROPORT.ONE 
IPFS
ASTROPORT.ONE...
PLAYER
PLAYER
NEXTCLOUD
NEXTCLOUD
TW
TW
ASTROBOT
ASTROBOT
WEB OF TRUST ...
WEB OF TRUST ...
Text is not SVG - cannot display
","type":"application/vnd.drawio","modified":"20231009211924275","modifier":"shadoktube@yopmail.com","title":"Infra G1 Diagram","tags":""},{"created":"20230719090307800","creator":"shadoktube@yopmail.com","text":"C'est un protocole hypermédia pair-à-pair conçu pour préserver et développer les connaissances de l'humanité en rendant le web évolutif, résistant et plus ouvert.\n\nVoici ce qui se passe lorsque vous ajoutez un fichier à IPFS\n\n# Votre fichier est divisé en morceaux plus petits, haché cryptographiquement et doté d'une empreinte digitale unique appelée identifiant de contenu (CID). Cet identifiant constitue un enregistrement permanent de votre fichier tel qu'il existe à ce moment-là.\n# Lorsque d'autres nœuds recherchent votre fichier, ils demandent à leurs nœuds homologues qui stocke le contenu référencé par le CID du fichier. Lorsqu'ils consultent ou téléchargent votre fichier, ils en mettent une copie en mémoire cache et deviennent un autre fournisseur de votre contenu jusqu'à ce que leur mémoire cache soit vidée.\n# Un nœud peut épingler un contenu afin de le conserver (et de le fournir) pour toujours, ou se débarrasser d'un contenu qu'il n'a pas utilisé depuis un certain temps afin d'économiser de l'espace. Cela signifie que chaque nœud du réseau ne stocke que le contenu qui l'intéresse, plus quelques informations d'indexation qui permettent de savoir quel nœud stocke quoi.\n# Si vous ajoutez une nouvelle version de votre fichier à IPFS, son hachage cryptographique est différent et il reçoit donc un nouveau CID. Cela signifie que les fichiers stockés sur IPFS sont résistants à la falsification et à la censure - toute modification d'un fichier n'écrase pas l'original, et les morceaux communs aux fichiers peuvent être réutilisés afin de minimiser les coûts de stockage.\n# IPFS peut trouver la dernière version de votre fichier en utilisant le système de nommage décentralisé IPNS, et DNSLink peut être utilisé pour faire correspondre les CID à des noms DNS lisibles par l'homme. Votre TW est accessible gràce à l'adresse IPFS crée à partir de vos \"phrases secrètes\" de connexion qui façonne votre anneau.\n\nhttps://ipfs.io","title":"IPFS","modified":"20230719091041819","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20230813191218326","resolution":"720p","duree":"0:03:13","duration":"193","giftime":"119","gifanime":"/ipfs/QmNz4c87PLH99b2VHSog4ibXt1Z3yBEw5fThyhCVopJ4WW","modified":"20230813191218326","title":"L_ordinateur_ou_la_machine_a_vider_la_memoire_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,21","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

L_ordinateur_ou_la_machine_a_vider_la_memoire_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"28054473","filesize":"26.75 MB","sec":"193","dur":"29","ipfs":"/ipfs/QmUEgfL3E7XDHeLEFcSC45a1wDsHj4zKv72HnGpNPeziDU","youtubeid":"tusmvj7mTqY","zurl":"https://www.youtube.com/watch?v=tusmvj7mTqY","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 L ordinateur ou la machine a vider memoire des Shadoks Archive INA mp4"},{"created":"20230813191218326","resolution":"480p","duree":"0:01:55","duration":"115","giftime":"71","gifanime":"/ipfs/QmS1ew7aiNfBe8Jtj2eiUCAg61wn61Tbh9i9kEqYmWDfKn","modified":"20230813191218326","title":"La_1ere_tele_des_Shadoks_1er_episode_29_04_1968_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,26","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_1ere_tele_des_Shadoks_1er_episode_29_04_1968_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"9837091","filesize":"9.38 MB","sec":"116","dur":"17","ipfs":"/ipfs/QmRn9sDkGR8YikqgAJg3i2aWWTX9CoKqFyo16zrJoXG5xS","youtubeid":"hIsmvjD83VI","zurl":"https://www.youtube.com/watch?v=hIsmvjD83VI","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La 1ere tele des Shadoks 1er episode 29 04 1968 Archive INA mp4"},{"created":"20230817191217735","resolution":"480p","duree":"0:01:51","duration":"111","giftime":"68","gifanime":"/ipfs/QmSjffngo9DVVGcrxKghbjKiR3me72a8d2s2jER919twwC","modified":"20230817191217735","title":"La_fusee_des_Shadoks_doit-elle_aller_vers_le_haut_ou_vers_le_bas_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,86","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_fusee_des_Shadoks_doit-elle_aller_vers_le_haut_ou_vers_le_bas_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"9811194","filesize":"9.36 MB","sec":"112","dur":"22","ipfs":"/ipfs/QmSANvFVsG2UWJ176E3xnh6vitj9iS85pZnZK9wXGPMdho","youtubeid":"ubHMGIjgYWk","zurl":"https://www.youtube.com/watch?v=ubHMGIjgYWk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La fusee des Shadoks doit-elle aller vers le haut ou bas Archive INA mp4"},{"created":"20230813191218326","resolution":"720p","duree":"0:02:49","duration":"169","giftime":"104","gifanime":"/ipfs/QmRobTVDZv9vFCmgDdHsNFGdZ4mXKF9zs9EcoeUEDMMCZx","modified":"20230813191218326","title":"La_geometrie_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,34","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_geometrie_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24152392","filesize":"23.03 MB","sec":"170","dur":"23","ipfs":"/ipfs/QmW95V5DeUc5XhZS4wJZJ9bbxReMjMoAdpx4xZkdV2ikh4","youtubeid":"JFljeYNZ2A0","zurl":"https://www.youtube.com/watch?v=JFljeYNZ2A0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La geometrie des Shadoks Archive INA mp4"},{"created":"20230815191216593","resolution":"720p","duree":"0:02:50","duration":"170","giftime":"105","gifanime":"/ipfs/QmUVdAhHqyU2hX7N5T3Uzr9wxJaRXeaa1wdxkfDue8JeBA","modified":"20230815191216593","title":"La_machine_a_fabriquer_des_Shadoks_et_des_ministres_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,40","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_machine_a_fabriquer_des_Shadoks_et_des_ministres_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"33001407","filesize":"31.47 MB","sec":"171","dur":"29","ipfs":"/ipfs/QmW6GoC5s9YbrKwuCeDbkWiGPCHMXUqRLMG4Jg5ooQHR1u","youtubeid":"ZypEFc6Jc24","zurl":"https://www.youtube.com/watch?v=ZypEFc6Jc24","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La machine a fabriquer des Shadoks et ministres Archive INA mp4"},{"created":"20230817191217735","resolution":"480p","duree":"0:02:03","duration":"123","giftime":"76","gifanime":"/ipfs/QmeUqi1Ja9H1DqvzCrRE8cFYtkqAwyCg5TjhkNLMsckiDJ","modified":"20230817191217735","title":"La_machine_Shadok_a_pomper_les_inondations_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,01","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_machine_Shadok_a_pomper_les_inondations_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"10735298","filesize":"10.24 MB","sec":"123","dur":"22","ipfs":"/ipfs/QmPvgeHagdPBDre7bnUtXbD7xXLGdaU3F9qwKo8mXGYexh","youtubeid":"6NJP-ClYld4","zurl":"https://www.youtube.com/watch?v=6NJP-ClYld4","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La machine Shadok a pomper les inondations Archive INA mp4"},{"created":"20230805191219906","resolution":"720p","duree":"0:02:40","duration":"160","giftime":"98","gifanime":"/ipfs/QmZSjXk9PoBDauqRkz2feY8dwR3QbkRC9NLbwwMEPDQsUF","modified":"20230805191219906","title":"La_passoire_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,82","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_passoire_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19031684","filesize":"18.15 MB","sec":"161","dur":"25","ipfs":"/ipfs/QmNfRMxEKRQT9voSidHBr214n8w7bJjUJPyzzb1wrNVtNZ","youtubeid":"1Duiup2tWKA","zurl":"https://www.youtube.com/watch?v=1Duiup2tWKA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La passoire des Shadoks Archive INA mp4"},{"created":"20230806191223340","resolution":"720p","duree":"0:04:25","duration":"265","giftime":"163","gifanime":"/ipfs/QmdBu2ZH41bvTavFeiaQWPBtbk3zAduiJ6gPLUA92yXgPP","modified":"20230806191223340","title":"La_preuve_irrefutable_que_les_Shadoks_ont_marche_en_premier_sur_la_lune_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,44","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_preuve_irrefutable_que_les_Shadoks_ont_marche_en_premier_sur_la_lune_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"29423152","filesize":"28.06 MB","sec":"265","dur":"28","ipfs":"/ipfs/QmPZB2GHAV9cFaqLpHmNEBLM7Ngrao3ZHkdGXxhwaBT1cL","youtubeid":"YDOgxH8UfsM","zurl":"https://www.youtube.com/watch?v=YDOgxH8UfsM","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La preuve irrefutable que les Shadoks ont marche en premier sur la lune Archive INA mp4"},{"created":"20230817191217735","resolution":"480p","duree":"0:04:20","duration":"260","giftime":"160","gifanime":"/ipfs/QmRDL8TBPEXg9DEFPB5Aq7zdXzJ146ojj7DhSUUVGNKDXx","modified":"20230817191217735","title":"La_Shadoroscope_predit-il_l_avenir_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,75","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

La_Shadoroscope_predit-il_l_avenir_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"18487509","filesize":"17.63 MB","sec":"260","dur":"25","ipfs":"/ipfs/QmTL58xiXNWJtNiLYcwyAdTYMZYKy1G2KC9BhRU8vecF2p","youtubeid":"qgUrjqWobys","zurl":"https://www.youtube.com/watch?v=qgUrjqWobys","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 La Shadoroscope predit-il l avenir des Shadoks Archive INA mp4"},{"created":"20231021102301569","creator":"shadoktube@yopmail.com","text":"Un contrat intelligent est utile pour automatiser les flux de travail. Dans un contrat intelligent basé sur la blockchain, une entrée dans un \"oracle\" déclenche une action. L'oracle relie la blockchain à des événements du monde réel qui fournissent les entrées et les sorties du contrat intelligent.\n\nLes scanners et les capteurs fonctionnent comme des oracles matériels. Par exemple, un capteur RFID placé sur une cargaison de produits alimentaires peut envoyer des données à un contrat intelligent qui libère alors le paiement au fournisseur. Autre exemple, un oracle dans un appareil IoT peut capturer un large éventail de données utiles qu'un système d'IA gère. L'IA utilise ensuite les données pour activer automatiquement les processus des contrats intelligents.\n\nVoici quelques exemples concrets de contrats intelligents et les inconvénients de leur utilisation dans le cadre d'un projet blockchain d'entreprise.\n\n!! 1. Améliorer une campagne de publicité numérique\n\nLes contrats intelligents peuvent potentiellement aider les annonceurs et les éditeurs à établir des relations solides. Un contrat intelligent pourrait inclure des conditions exigeant d'un éditeur qu'il atteigne des objectifs prédéterminés. Lorsqu'un oracle confirme que l'éditeur a fait ce qu'il était censé faire, le contrat intelligent déclenche un paiement. Par exemple, une clause pourrait stipuler qu'un compte de média social ayant un grand nombre d'abonnés doit promouvoir un code de réduction. Lorsqu'il y a 100 achats légitimes utilisant le code, le propriétaire du compte de média social reçoit un paiement. En outre, les contrats intelligents pourraient empêcher les tactiques trompeuses telles que le bourrage de pixels ou la surestimation par les éditeurs des impressions générées par une publicité.\n\n!! 2. Construire la meilleure expérience client\n\nLes contrats intelligents peuvent renforcer les relations B2C. Par exemple, une marque de chaussures qui s'associe à un service de musique en streaming offre un temps d'abonnement gratuit si le consommateur crée une liste de lecture à écouter pendant son jogging. Un contrat intelligent envoie au client une offre de réduction sur de nouvelles chaussures ou lui suggère des chansons au tempo similaire à ajouter à la liste de lecture.\n\n!! 3. Combler le vide dans la consommation de divertissement\n\nLes contrats intelligents sur la blockchain pourraient améliorer la façon dont les consommateurs interagissent avec leurs choix de divertissement préférés. Par exemple, les jetons non fongibles (NFT) sont un type de contrat intelligent qui authentifie la propriété et rationalise l'achat, la vente et l'échange d'actifs de divertissement numériques. L'utilisation de contrats intelligents pour rémunérer les créateurs indépendants tels que les auteurs, les musiciens et les cinéastes suscite également de l'intérêt. L'automatisation des contrats intelligents supprimerait la nécessité de recourir à des intermédiaires pour traiter les paiements de redevances.\nTableau des cas d'utilisation courants de la blockchain.\nLes contrats intelligents sont de plus en plus populaires, servant de technologie de soutien à de nombreuses applications de la blockchain, y compris les crypto-monnaies et les NFT.\n\n!! 4. Éliminer l'intermédiaire dans les transactions financières\n\nLa technologie des contrats intelligents permet également la finance décentralisée (DeFi), qui est le plus souvent associée à des transactions de pair à pair utilisant des crypto-monnaies comme le bitcoin et l'Ether d'Ethereum. Les contrats intelligents DeFi pourraient réduire le temps et le coût du règlement de ces transactions. Ils sont également prometteurs pour l'automatisation des processus bancaires manuels traditionnellement effectués par les institutions financières, tels que l'évaluation de l'éligibilité à un prêt et le traitement des demandes d'assurance.\n\n!! 5. Améliorer le pipeline de communication des soins de santé\n\nUne communication claire est essentielle pour les assureurs et les patients. Le stockage du dossier d'un patient sur une blockchain pourrait potentiellement réduire le traitement de la paperasserie, améliorer la conformité réglementaire et simplifier le partage d'informations entre les prestataires. Par exemple, si un patient a besoin d'une procédure médicale, une demande d'autorisation préalable pourrait déclencher un contrat intelligent qui examine la couverture d'assurance et libère le paiement au fournisseur.\n\n!! 6. Maximiser la productivité des ressources humaines\n\nLa technologie du grand livre distribué pourrait également automatiser les flux de travail des ressources humaines. Le personnel des ressources humaines doit souvent confirmer les antécédents professionnels et vérifier les références. Les contrats intelligents pourraient faciliter l'intégration des nouveaux employés en simplifiant ces tâches de vérification. En outre, les contrats intelligents sur la blockchain pourraient aider à faire respecter les termes des contrats de travail et à traiter les salaires.\n\n!! 7. Renforcer la sécurité pour la gestion des identités et des accès\n\nLes responsables informatiques doivent protéger les identités numériques des utilisateurs sur les systèmes de l'entreprise. Le traitement des demandes d'identité manuelles n'est pas assez rapide pour un monde dépendant du numérique. Les menaces persistantes telles que les violations de données montrent la nécessité de nouvelles options de sécurité. L'authentification des utilisateurs par le biais de contrats intelligents pourrait compléter ou remplacer les procédures conventionnelles de gestion des identités.\n\n!! 8. Élever les relations dans le secteur de l'assurance\n\nLes assureurs et les assurés s'engagent dans des interactions à multiples facettes, et le verbiage complexe des polices d'assurance ainsi que les demandes d'indemnisation frauduleuses de la part des assurés peuvent nuire à la relation. Les contrats intelligents pourraient améliorer l'efficacité du traitement des demandes d'indemnisation, permettre aux assurés de changer plus facilement d'assureur et favoriser la coopération entre les assureurs. Les contrats intelligents pourraient également permettre une détection précoce des actions malveillantes.\n\n!! 9. Optimiser la gestion de la chaîne d'approvisionnement\n\nCertaines parties de la gestion de la chaîne d'approvisionnement pourraient particulièrement bénéficier des contrats intelligents et de la blockchain. Les contrats intelligents pourraient accroître la traçabilité des produits et des matériaux et répondre en même temps à des objectifs environnementaux, sociaux et de gouvernance. Par exemple, les applications blockchain pourraient suivre les origines d'un article lorsqu'il se déplace entre les chaînes d'approvisionnement mondiales et calculer les droits de douane en temps quasi réel. Certaines organisations explorent les contrats intelligents sur la blockchain comme moyen d'améliorer l'efficacité et de minimiser les erreurs.\n\n!! 10. Rendre la distribution d'énergie plus efficace\n\nLes possibilités d'utilisation de la blockchain dans le secteur de l'énergie sont de plus en plus nombreuses. Par exemple, le logiciel blockchain pourrait automatiser la livraison d'électricité des compagnies d'énergie aux clients. Les contrats intelligents pourraient rationaliser le commerce de l'énergie en connectant les petits producteurs d'énergie. Ils pourraient également certifier les sources d'énergie renouvelables. La capacité de la blockchain à traiter et à enregistrer les transactions de manière permanente rend son avenir dans le secteur de l'énergie prometteur.\n\n! 8 inconvénients des contrats intelligents\n\nComme pour tout changement substantiel dans la manière dont une organisation traite les transactions, l'intégration des contrats intelligents sur la blockchain dans l'écosystème d'une entreprise soulève des inquiétudes.\n\nLes contrats intelligents héritent des atouts de la blockchain, comme l'immutabilité. Cependant, ils relèvent également les défis de la blockchain, tels que la sécurité et la confidentialité. Les responsables informatiques doivent comprendre les risques avant de mettre en œuvre une blockchain d'entreprise et des contrats intelligents.\n\n!! 1. Conformité\n\nLa réglementation gouvernementale en matière de confidentialité et de sécurité des contrats intelligents et de la technologie blockchain sous-jacente est jusqu'à présent minime. Cependant, de plus en plus d'entreprises adoptent des projets de blockchain, ce qui signifie une plus grande surveillance. La création de politiques de conformité d'entreprise peut aider à atténuer les pertes dues aux menaces internes et externes. Parmi les risques, citons les attaques du réseau blockchain, le cryptojacking et l'incompétence humaine.\n\n!! 2. Intégrité des données\n\nL'utilisation de contrats intelligents pour automatiser le traitement des données pourrait être bénéfique pour les entreprises qui ont un très grand nombre de transactions. Cependant, le processus est toujours sujet à la saisie de données erronées. Un mauvais acteur ou un utilisateur mal formé qui manque une étape peut fournir des données malhonnêtes, invalides ou inexactes et déclencher malgré tout le contrat intelligent. Il est donc essentiel de préserver l'intégrité des données entrantes pour éviter les erreurs.\n\n!! 3. Piratages logiques\n\nL'une des forces de la technologie blockchain est son utilisation de la logique informatique pour déplacer les données entre les nœuds. Toutefois, les pirates informatiques trouvent des moyens de cibler cette logique et d'exploiter l'interopérabilité du logiciel. Ces attaques sont principalement observées dans le domaine des crypto-monnaies, mais cela ne signifie pas que les contrats intelligents soient à l'abri. Un contrat intelligent non sécurisé et mal codé pourrait potentiellement exposer toute une blockchain d'entreprise à des menaces.\n\n!! 4. Évolutivité\n\nIl est difficile pour la technologie blockchain publique de bien évoluer, en partie parce que la blockchain doit être capable de soutenir de nombreuses transactions simultanément. Ces exigences augmentent la charge de travail entre les nœuds, ce qui nécessite des quantités importantes de puissance de calcul, d'électricité et de bande passante. Le sharding, un type de partitionnement des données, et les algorithmes de consensus de la blockchain par preuve d'enjeu sont prometteurs pour atténuer cet inconvénient.\n\n!! 5. Sécurité\n\nLa technologie blockchain qui sous-tend les contrats intelligents s'améliore au fur et à mesure que les entreprises les intègrent à leurs écosystèmes. Cependant, il existe des risques de sécurité si les contrats intelligents sont mal codés ou mal entretenus. L'étape essentielle consistant à établir un modèle de gouvernance pourrait aider les organisations à garder une longueur d'avance sur ces défis.\n\n!! 6. Normes\n\nL'un des avantages d'une blockchain d'entreprise (privée) par rapport à une blockchain publique est que seuls les utilisateurs approuvés peuvent interagir avec les données. Ils peuvent provenir d'entreprises extérieures dont les normes de collecte et de traitement des données peuvent ne pas bien se traduire - voire pas du tout - dans la relation B2B. Un contrat intelligent bien codé peut éliminer ces disparités de données pour garantir des transactions fluides tout en renforçant la communication commerciale.\n\n!! 7. Durabilité\n\nLes blockchains publiques ont des empreintes carbone massives, mais les entreprises explorent des moyens de réduire leur impact sur l'environnement, et les leaders technologiques préoccupés par la durabilité devraient être conscients de ces options. Une blockchain d'entreprise a tendance à utiliser moins de ressources informatiques qu'une blockchain publique, et une maintenance attentive peut contribuer à maintenir cette situation.\n\n!! 8. Talent\n\nLa nature d'un grand livre partagé signifie que de multiples parties ont accès aux données, ce qui peut exposer une organisation à des acteurs malveillants et à d'autres vulnérabilités. L'ampleur de la menace dépend généralement des niveaux de permission de la blockchain qui stocke le contrat intelligent. Embaucher des développeurs de blockchain pourrait aider à éviter les problèmes potentiels. Les développeurs internes peuvent mener des audits, faire appel à des tiers de confiance pour effectuer des tests de pénétration et évaluer la sécurité de manière cohérente.\n\n","tags":"shadoktube@yopmail.com","title":"Le Contrat Intelligent - Smart Contract -","modified":"20231021102910935","modifier":"shadoktube@yopmail.com"},{"created":"20230806191223340","resolution":"720p","duree":"0:02:49","duration":"169","giftime":"104","gifanime":"/ipfs/QmRumxyQYDaXXcraNupwD5JJrSsM921XQ1NU5WdqdUM3oh","modified":"20230806191223340","title":"Le_cerveau_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,42","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Le_cerveau_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"27606798","filesize":"26.33 MB","sec":"170","dur":"24","ipfs":"/ipfs/QmfXLs8SDGR8owXqpwkVu5CK5t8fKLGmbHN7fB7XVRbzdx","youtubeid":"eSQ5qNQuEGA","zurl":"https://www.youtube.com/watch?v=eSQ5qNQuEGA","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Le cerveau des Shadoks Archive INA mp4"},{"created":"20230501161352549","creator":"shadoktube@yopmail.com","text":"!!! C'est le nom du réseau de stockage et de partage d'information enregistré sur IPFS sur lequel se trouve ce TW (TiddlyWiki)\n\nEn connectant nos ordinateurs ensemble par le biais du logiciel AstroportONE, nous fabriquons un nouvel Internet. https://astroport.com","title":"LeClaude","modified":"20230501185513320","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20230806191223340","resolution":"720p","duree":"0:03:12","duration":"192","giftime":"118","gifanime":"/ipfs/QmSYTsmcXggA1NqYGkWyop78Zw1geDGffrWYxHUt27Y5ZV","modified":"20230806191223340","title":"Les_Shadoks_Bu_Bu,_l_eau_de_la_mer_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,22","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_Bu_Bu,_l_eau_de_la_mer_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"32370698","filesize":"30.87 MB","sec":"193","dur":"30","ipfs":"/ipfs/QmfKmpW2bfL9BWfDPdWAxH3SkiF1rkvRFdydmPoVA1fw2N","youtubeid":"UL_0wlf_1ZI","zurl":"https://www.youtube.com/watch?v=UL_0wlf_1ZI","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks Bu Bu, l eau de la mer Archive INA mp4"},{"created":"20230816191217674","resolution":"480p","duree":"0:01:51","duration":"111","giftime":"68","gifanime":"/ipfs/Qmd1ZiQb9sXTy5FB5TUpvcv7hXUTL1u2UzPYRBfLyfX9df","modified":"20230816191217674","title":"Les_Shadoks_Comment_differencier_une_casserole_et_un_autobus_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"23,61","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_Comment_differencier_une_casserole_et_un_autobus_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"4930486","filesize":"4.70 MB","sec":"112","dur":"17","ipfs":"/ipfs/QmSCNtQL1VqzhPSrxpG4pcAT2VWCkr5DbWMz91vdATWGdE","youtubeid":"kBQWVMyhX4w","zurl":"https://www.youtube.com/watch?v=kBQWVMyhX4w","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks Comment differencier une casserole et un autobus Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:03:13","duration":"193","giftime":"119","gifanime":"/ipfs/QmZKa9e1CcoUR7cf7pjhtmLCrGh4SPeX9SPsDKjSLhm5Ng","modified":"20230809191217544","title":"Les_Shadoks_La_Gegenite_aigue_et_la_grammaire_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,39","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_La_Gegenite_aigue_et_la_grammaire_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"31686214","filesize":"30.22 MB","sec":"193","dur":"31","ipfs":"/ipfs/QmbcbC49oboQ4bxT77jWepmUMrvAVHbLSaZwNDX362fUbB","youtubeid":"j0WePS9sDH8","zurl":"https://www.youtube.com/watch?v=j0WePS9sDH8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks La Gegenite aigue et la grammaire Shadok Archive INA mp4"},{"created":"20230815191216593","resolution":"480p","duree":"0:02:28","duration":"148","giftime":"91","gifanime":"/ipfs/QmaL9XcafvAqkdttGaR3vz5NqBBqVzcr2VD3hfzuQRKMNK","modified":"20230815191216593","title":"Les_Shadoks_le_mystere_de_l_oeuf_Gibi_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"14,80","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_le_mystere_de_l_oeuf_Gibi_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"10488743","filesize":"10.00 MB","sec":"149","dur":"19","ipfs":"/ipfs/Qma7nUiXXdRYwWQd6hZmMgRV2vJHiqYKh3B8Dt77bfQ8V2","youtubeid":"z4adFuDNIrk","zurl":"https://www.youtube.com/watch?v=z4adFuDNIrk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks le mystere de l oeuf Gibi Archive INA mp4"},{"created":"20230814191217379","resolution":"480p","duree":"0:01:52","duration":"112","giftime":"69","gifanime":"/ipfs/QmVSk3ZGhyBNCzQ6CkL3yCTPfMXGqrFsbm5G5bL2GwWLGg","modified":"20230814191217379","title":"Les_Shadoks_ont-ils_le_pied_marin_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,80","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_ont-ils_le_pied_marin_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8509499","filesize":"8.12 MB","sec":"113","dur":"20","ipfs":"/ipfs/QmW6s3ikwxMxEXkddWrUqpWirRSX6z4CCiJ2NCkZwhFc5J","youtubeid":"pwc1tGBnp9g","zurl":"https://www.youtube.com/watch?v=pwc1tGBnp9g","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks ont-ils le pied marin Archive INA mp4"},{"created":"20230809191217544","resolution":"480p","duree":"0:01:35","duration":"95","giftime":"58","gifanime":"/ipfs/QmQV6NuGRU1VSseb6A2cZaJLceJABawt5m6c4HWT27e71s","modified":"20230809191217544","title":"Les_Shadoks_peuvent-ils_tomber_malades_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"11,88","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_peuvent-ils_tomber_malades_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8384419","filesize":"8.00 MB","sec":"95","dur":"28","ipfs":"/ipfs/QmTFxEep4DK8a8xwSTHLvJjrgw4LmQByCdwLG1Lf4yufVv","youtubeid":"VADO8ZzBkac","zurl":"https://www.youtube.com/watch?v=VADO8ZzBkac","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks peuvent-ils tomber malades Archive INA mp4"},{"created":"20230817191217735","resolution":"480p","duree":"0:02:38","duration":"158","giftime":"97","gifanime":"/ipfs/QmPd4UjSiWQtbm9SC5PxrdmJqY1TRZoupnKv3mpEsxUwb4","modified":"20230817191217735","title":"Les_Shadoks_plaisent-ils_aux_animaux_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"15,44","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_plaisent-ils_aux_animaux_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"10733422","filesize":"10.24 MB","sec":"158","dur":"18","ipfs":"/ipfs/QmPCxLQkqkujSEA32MSk8yb1Qz9JyqPhB6CWA6XikVtSyN","youtubeid":"P-klfGhdP2k","zurl":"https://www.youtube.com/watch?v=P-klfGhdP2k","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks plaisent-ils aux animaux Archive INA mp4"},{"created":"20230816191217674","resolution":"480p","duree":"0:01:58","duration":"118","giftime":"72","gifanime":"/ipfs/QmQcVaf6JJtFMoHUP4gDGMTCZSw2G3irdaLETdrLxSBpyz","modified":"20230816191217674","title":"Les_Shadoks_prennent-ils_des_risques_en_devenant_des_migrants_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,85","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_prennent-ils_des_risques_en_devenant_des_migrants_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7342576","filesize":"7.00 MB","sec":"118","dur":"28","ipfs":"/ipfs/QmQMbLZmLaz5tRG2yUGwTuFYCFrMfmEwQxYsgvvBiixVxo","youtubeid":"07delyS24T0","zurl":"https://www.youtube.com/watch?v=07delyS24T0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks prennent-ils des risques en devenant migrants Archive INA mp4"},{"created":"20230808191218180","resolution":"480p","duree":"0:01:26","duration":"86","giftime":"53","gifanime":"/ipfs/QmTYzGKRn98ApXMntivJtjnNcdHfujCPjB1i6e8ZdHNU5U","modified":"20230808191218180","title":"Les_Shadoks_respirent-ils_sur_la_lune_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,13","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_respirent-ils_sur_la_lune_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"5592098","filesize":"5.33 MB","sec":"87","dur":"22","ipfs":"/ipfs/Qmb4h6ZsjX7kdXAdsiCefbiEteZjwyB3iigK2qPvrUn5D7","youtubeid":"izy_LC800zQ","zurl":"https://www.youtube.com/watch?v=izy_LC800zQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks respirent-ils sur la lune Archive INA mp4"},{"created":"20230814191217379","resolution":"720p","duree":"0:00:33","duration":"33","giftime":"20","gifanime":"/ipfs/QmazC3nEVacKy1gg9QBXdidqLmK7u2Y9iD6tL15QTW13TL","modified":"20230814191217379","title":"Les_Shadoks_s_exposent_au_MIAM_de_Sete_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"9,73","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_s_exposent_au_MIAM_de_Sete_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"3557920","filesize":"3.39 MB","sec":"33","dur":"19","ipfs":"/ipfs/QmXTFGZqcJ7FneWTy6ue1dQhG6Ro8FTb3SHiJgN4TCxNKG","youtubeid":"AWXlCiDJ610","zurl":"https://www.youtube.com/watch?v=AWXlCiDJ610","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks s exposent au MIAM de Sete Archive INA mp4"},{"created":"20230811191217249","resolution":"480p","duree":"0:03:37","duration":"217","giftime":"134","gifanime":"/ipfs/QmSH1xWrzZMkUK76g2kG8xWt67kN25jzXPpEezeNrnwSUq","modified":"20230811191217249","title":"Les_Shadoks_sont-ils_francais_ou_britanniques_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"18,92","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_sont-ils_francais_ou_britanniques_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"12024516","filesize":"11.47 MB","sec":"217","dur":"19","ipfs":"/ipfs/QmfZQ5rnbwLti8Sa2rAhNk4cSeCbcFWAdjevE2TPS5JxdM","youtubeid":"EGZoYyUFKLs","zurl":"https://www.youtube.com/watch?v=EGZoYyUFKLs","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks sont-ils francais ou britanniques Archive INA mp4"},{"created":"20230808191218180","resolution":"480p","duree":"0:01:52","duration":"112","giftime":"69","gifanime":"/ipfs/QmY7iUXp4m5f3aFo5JUSD5wnWkiFco5hxSbPpcMjV3ot8q","modified":"20230808191218180","title":"Les_Shadoks_sont-ils_idiots_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,03","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_sont-ils_idiots_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7326903","filesize":"6.99 MB","sec":"113","dur":"18","ipfs":"/ipfs/QmVwrhuqq1iUSTNySnsKNphHVvDSD7PDzxNypXjKEgsXPG","youtubeid":"fDtpgt2bPnU","zurl":"https://www.youtube.com/watch?v=fDtpgt2bPnU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks sont-ils idiots Archive INA mp4"},{"created":"20230813191218326","resolution":"480p","duree":"0:04:07","duration":"247","giftime":"152","gifanime":"/ipfs/QmR2jhTZCnaBEpNgAWPh1YzrZBor7orgrhLpiqEuTPEk5x","modified":"20230813191218326","title":"Les_Shadoks_sont-ils_plus_jolis_que_nos_regions_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"17,89","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_sont-ils_plus_jolis_que_nos_regions_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"14479622","filesize":"13.81 MB","sec":"247","dur":"26","ipfs":"/ipfs/QmZxydt2equQHK1JxnRMZZPH56YpxWsgDKfRxSJXmH6aSy","youtubeid":"G3Sprcl34_o","zurl":"https://www.youtube.com/watch?v=G3Sprcl34_o","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks sont-ils plus jolis que nos regions Archive INA mp4"},{"created":"20230816191217674","resolution":"480p","duree":"0:03:27","duration":"207","giftime":"127","gifanime":"/ipfs/Qma6bKWYG9CZhFazsQRmhxasBbsdBC7VvT11VGpH1Pvx6a","modified":"20230816191217674","title":"Les_Shadoks_sont-ils_un_danger_pour_la_discipline_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,91","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks_sont-ils_un_danger_pour_la_discipline_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"16813078","filesize":"16.03 MB","sec":"207","dur":"19","ipfs":"/ipfs/QmWwTo1mLejd8cAa7R3tSiwwUygbf3Tr32L6PT2v29PRpS","youtubeid":"c5hzqKiR_Ao","zurl":"https://www.youtube.com/watch?v=c5hzqKiR_Ao","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks sont-ils un danger pour la discipline Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:03:19","duration":"199","giftime":"122","gifanime":"/ipfs/QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH","modified":"20230808191218180","title":"Les_Shadoks,_les_telespectateurs_sont-ils_pour_ou_contre_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"7,75","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Les_Shadoks,_les_telespectateurs_sont-ils_pour_ou_contre_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"26915431","filesize":"25.67 MB","sec":"200","dur":"42","ipfs":"/ipfs/QmTRRPoCHR3qLp5KQTmEX14zFhAHwL5zkLFYunmBucic9F","youtubeid":"LvDVqNpxom4","zurl":"https://www.youtube.com/watch?v=LvDVqNpxom4","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Les Shadoks, les telespectateurs sont-ils pour ou contre Archive INA mp4"},{"created":"20220626175330872","creator":"shadoktube@yopmail.com","text":"! ''{{MadeInZion!!player}}''\n\nCe ''label ultra exigeant'' a été mis en place par la fondation [[MadeInZion|https://madeinzion.org]] afin de préserver l'espace naturel et sauvage de l’île de la Dominique des pressions économiques imposées par certains acteurs du développement économique (\"monnaie dette\") dont la prédation de valeur est nuisible aux habitants et leur mode de vie ancestraux bien plus harmonieux.\n\nEn rejoignant les premiers Astronautes vous vous engagez à participer au processus d'[[aggradation|https://fr.wikipedia.org/wiki/Aggradation]] de votre environnement de façon à faire renaître la forêt jardin de notre vaisseau spatial, la Terre.\n\n! [[Foret Enchantée - PROJET ASTROPORT|TerraformationForetJardin]]\n\n[img[MadeInZion_G1_ASTROPORT.png]]\n\n---\n> NE SUPPRIMEZ PAS CE \"TIDDLER\" {{{ [{$:/info/url/protocol}match[http:]then[ipfs]else[online]] }}}\n","title":"MadeInZion","modified":"20230421151927887","tags":"","player":"shadoktube@yopmail.com","astroport":"/ipns/12D3KooWL2FcDJ41U9SyLuvDmA5qGzyoaj2RoEHiJPpCvY8jvx9u","number":"_NUMBER_","secret":"810acb4993ae1bed6c5af998e497c289db040eb0205e9d27fd3084a172202c6972bad1c2bf653dda7ffd9b7f0c50b510b7ba06acb7a8ce6ecb3132d6f9d513a9700f2f76e13b2c642b65a98fce41fde5e122863fc3cbcb521d4c874564b3129105762beb003668d466bbea7b00d1f18de54f4aa65b77c1fa514dae0c10025fd6c530dd42f24200f4e15a2b7c61871f9441eff976af03f03abdffec732e66dc05ca910004902edc01fc29ee335ff4e3246794dbcc5af86daca689b98d8415cf864d41cc25fe34223c732ee7272780354f9cc4341e834892","wishkey":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","modifier":"shadoktube@yopmail.com","sector":"_SECTOR_","root":"_ROOT_","dao":"_DAO_"},{"created":"20220817210348470","text":"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","title":"MadeInZion_G1_ASTROPORT.png","type":"image/png","modified":"20220817210348472","tags":"$:/isAttachment $:/isEmbedded"},{"created":"20230501171704636","creator":"shadoktube@yopmail.com","text":"[[La Monnaie Libre*|https://monnaie-libre.fr/]]\nRepenser la création monétaire...\net l'expérimenter ! Un modèle économique plus juste et durable est possible.\n\nLa Ğ1 (la \"June\") est la première monnaie libre.\n\nConçue sur une blockchain écologique, c'est une expérience citoyenne, solidaire... et peut-être subversive !\n\n''Le [[G1Fablab]] et la [[SociétéTechnologieInternet]] en explorent les frontières et en __améliorent la facilité d'usage et l'expérience utilisateur__''","title":"MonnaieLibre","modified":"20230501190805070","modifier":"shadoktube@yopmail.com","tags":""},{"title":"NoGafamNetwork.png","text":"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","type":"image/png","modified":"20220505172852060","tags":"$:/isAttachment $:/isEmbedded"},{"created":"20230501170719605","creator":"shadoktube@yopmail.com","text":"[[Open Collective*|https://opencollective.com/]] est une boîte à outils juridiques et financiers pour les groupes de base. Il s'agit d'une plateforme de collecte de fonds, de statut juridique et de gestion financière pour votre communauté.\n\n!! 100% transparence\nCet organisme permet à nos collaborateurs de pouvoir facturer leurs services en Ğ1 sans risquer de manque d'€.\nLa transparence des comptes est TOTALE.\n\n\nLa communauté OpenCollective MonnaieLibre y conserve une cagnotte qui assure et garantie le bon développement de [[l'Internet des Gens*|https://astroport.com]] au travers du (des) [[G1Fablab]]","title":"OpenCollective","modified":"20230501190817389","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20210224201642486","creator":"shadoktube@yopmail.com","text":"\nVous êtes sur le TW (TiddlyWiki) de ''{{Astroport!!pseudo}}''\n\nIl est hébergé au travers des Stations ♥BOX du réseau in-censurable IPFS que nous appelons - LeClaude -\n\nChaque jour à 20H12 l'ensemble des Stations Astroport appliquent le protocole ScuttleButt aux données des TW de chacun.\n\nBienvenue dans le [[Web3|Web3]]","title":"Où suis-je?","type":"","modified":"20230719085143892","tags":"shadoktube@yopmail.com","modifier":"shadoktube@yopmail.com"},{"created":"20230303001827164","creator":"shadoktube@yopmail.com","text":"! PROGRAMME G1PalPay\n\n* gestion d'ordres de virement entre portefeuilles Ğ1 par Email \n* virement automatique de Ğ1 lors de la copie de Tiddler\n\nAstroID est votre G1PASS\n\nVOUS DEVEZ AVOIR REÇU SON CODE (\"PASS\") PAR COURRIEL","tags":"shadoktube@yopmail.com G1Voeu","title":"PalPay","modified":"20230501160135666","modifier":"shadoktube@yopmail.com"},{"created":"20230816191217674","resolution":"480p","duree":"0:02:55","duration":"175","giftime":"108","gifanime":"/ipfs/QmSzEpsAhHQFLjaULmVrbu467d9C7ViwQWV8U4NBTtd5L6","modified":"20230816191217674","title":"Peut-on_remplacer_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"20,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Peut-on_remplacer_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"9092144","filesize":"8.67 MB","sec":"176","dur":"21","ipfs":"/ipfs/QmQEsAYmjaBRhoJgSx38WQZ5M2du5jUTNUHedx6yKpH3gT","youtubeid":"DCJLW3OO1aw","zurl":"https://www.youtube.com/watch?v=DCJLW3OO1aw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Peut-on remplacer les Shadoks Archive INA mp4"},{"created":"20230812191217353","resolution":"480p","duree":"0:03:28","duration":"208","giftime":"128","gifanime":"/ipfs/QmbaX9BAJRucTRfKAQZfAKznrvNER9uMCmcgzHG5acHgE9","modified":"20230812191217353","title":"Peut-on_remplacer_les_Shadoks_par_une_emission_de_jeu_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"19,36","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Peut-on_remplacer_les_Shadoks_par_une_emission_de_jeu_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"11266233","filesize":"10.74 MB","sec":"208","dur":"24","ipfs":"/ipfs/QmeDaYPxJzxqikK4PeF4Ya2rpa6n7M8PTTJ418RhCa3shi","youtubeid":"HU5hT0_z95A","zurl":"https://www.youtube.com/watch?v=HU5hT0_z95A","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Peut-on remplacer les Shadoks par une emission de jeu Archive INA mp4"},{"created":"20230806191223340","resolution":"480p","duree":"0:02:09","duration":"129","giftime":"79","gifanime":"/ipfs/Qmb4KMFBP3QMa1fKW4x3YAxfLipCJk5ZPkVE6DRV3mDHQR","modified":"20230806191223340","title":"Pourquoi_Les_Shadoks_disent-ils_Ga,_Zo,_Bu_et_Meu_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"16,81","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Pourquoi_Les_Shadoks_disent-ils_Ga,_Zo,_Bu_et_Meu_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"8046947","filesize":"7.67 MB","sec":"130","dur":"26","ipfs":"/ipfs/QmVxwFMLzvrggKTbpv4TEzHvMi4wc8SvNMohh9cCR2CUJy","youtubeid":"Sla57Zw-FN4","zurl":"https://www.youtube.com/watch?v=Sla57Zw-FN4","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Pourquoi Les Shadoks disent-ils Ga, Zo, Bu et Meu Archive INA mp4"},{"created":"20230808191218180","resolution":"720p","duree":"0:03:03","duration":"183","giftime":"113","gifanime":"/ipfs/QmUsoiNxyhCKW5hNB6QooQawKAspJYH8LAfdNxPovLQ9Gk","modified":"20230808191218180","title":"Pourquoi_les_Shadoks_et_les_Gibis_quittent-ils_la_terre_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"5,52","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Pourquoi_les_Shadoks_et_les_Gibis_quittent-ils_la_terre_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"34755527","filesize":"33.15 MB","sec":"183","dur":"31","ipfs":"/ipfs/Qmaqs2x132574EqosW4Yqzi4jFY37fLUoe44gpgu5Nr6c3","youtubeid":"Llxg14sTQik","zurl":"https://www.youtube.com/watch?v=Llxg14sTQik","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Pourquoi les Shadoks et Gibis quittent-ils la terre Archive INA mp4"},{"created":"20230805191219906","resolution":"480p","duree":"0:00:51","duration":"51","giftime":"31","gifanime":"/ipfs/Qmc3M4uXQycar6F3GaZsTQD8kg4BmQKDqbe9viqz9Sby3y","modified":"20230805191219906","title":"Pourquoi_les_Shadoks_ont-ils_quitte_leur_planete_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"8,69","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Pourquoi_les_Shadoks_ont-ils_quitte_leur_planete_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"6152009","filesize":"5.87 MB","sec":"52","dur":"18","ipfs":"/ipfs/QmZLL9zjbTGR444t8dhD2W7UDGYmyd9o3hphANBwW15xJp","youtubeid":"5Zs4IxluUTU","zurl":"https://www.youtube.com/watch?v=5Zs4IxluUTU","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Pourquoi les Shadoks ont-ils quitte leur planete Archive INA mp4"},{"created":"20230814191217379","resolution":"480p","duree":"0:01:36","duration":"96","giftime":"59","gifanime":"/ipfs/QmWtHcp6Zy3QoBPZbQE38qJBVFcZpPwisjbdHyxNoXPu4m","modified":"20230814191217379","title":"Pourquoi_les_Shadoks_pompent-ils_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,97","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Pourquoi_les_Shadoks_pompent-ils_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7203238","filesize":"6.87 MB","sec":"97","dur":"19","ipfs":"/ipfs/QmeSYmsLBDpMxGFoBDahT4sB3ETUtJvEimTz4hUc3KZ94A","youtubeid":"3BfcBSEqDIk","zurl":"https://www.youtube.com/watch?v=3BfcBSEqDIk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Pourquoi les Shadoks pompent-ils Archive INA mp4"},{"created":"20230808191218180","resolution":"360p","duree":"0:09:29","duration":"569","giftime":"351","gifanime":"/ipfs/QmcDoDGjD38b349C6vZrKonm3vPy4PLRMvj39hoewGQnLS","modified":"20230808191218180","title":"Pouvez-vous_etre_amoureuse_d_un_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"24,28","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Pouvez-vous_etre_amoureuse_d_un_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"24574631","filesize":"23.44 MB","sec":"569","dur":"34","ipfs":"/ipfs/Qmd8eFz9CfsHmYTMeGW5xVNvehKRYiFTA2Qn79DAhfruXR","youtubeid":"23qO-6EAo4E","zurl":"https://www.youtube.com/watch?v=23qO-6EAo4E","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Pouvez-vous etre amoureuse d un Shadok Archive INA mp4"},{"created":"20230202185900618","creator":"shadoktube@yopmail.com","text":"","tags":"ipfs shadoktube@yopmail.com G1App dig@p2p.legal","title":"QRCODE des Membres Forgerons de la Ğ1","modified":"20230407120539940","ipfs":"/ipfs/QmZE9sMgQeAC2JkTgtEarZPkjqQoPPhYqMPiRZozXTnbet","type":"text/vnd.tiddlywiki","modifier":"shadoktube@yopmail.com"},{"created":"20230808191218180","resolution":"480p","duree":"0:01:33","duration":"93","giftime":"57","gifanime":"/ipfs/QmazoyDUhzn2rUmLSh26jQ1oEcxFrxp3QgpFLMpQLMuiaU","modified":"20230808191218180","title":"Qu_est-ce_que_le_Goulp_des_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"12,67","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Qu_est-ce_que_le_Goulp_des_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"7699210","filesize":"7.34 MB","sec":"94","dur":"25","ipfs":"/ipfs/QmNr3sKCmKdBmEzGks7AwBMHmWWmYcbCNeh6opv64YG2Pf","youtubeid":"yb7GoC3ghuw","zurl":"https://www.youtube.com/watch?v=yb7GoC3ghuw","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Qu est-ce que le Goulp des Shadoks Archive INA mp4"},{"created":"20230809191217544","resolution":"720p","duree":"0:26:03","duration":"1563","giftime":"965","gifanime":"/ipfs/QmVRbLTHozZyF4ja9G9DqDQZNhVvjo5XaeiBKuq2cXNiGJ","modified":"20230809191217544","title":"Quand_les_Shadoks_luttaient_contre_un_virus_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"10,79","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Quand_les_Shadoks_luttaient_contre_un_virus_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"151851985","filesize":"144.82 MB","sec":"1563","dur":"79","ipfs":"/ipfs/QmbgJhXgKnAdLWt5Z4nGGN8PDvJCVTwVcPiBS2iTNc2MrH","youtubeid":"1bfRGzXkN0A","zurl":"https://www.youtube.com/watch?v=1bfRGzXkN0A","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Quand les Shadoks luttaient contre un virus Archive INA mp4"},{"created":"20230808191218180","resolution":"480p","duree":"0:01:01","duration":"61","giftime":"37","gifanime":"/ipfs/QmdFYJK3eAK9gCjZtrSaYCm7pmzky2HmdRy7HbjE8kcwid","modified":"20230808191218180","title":"Quel_est_le_plan_des_Shadoks_pour_venir_sur_terre_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"13,18","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Quel_est_le_plan_des_Shadoks_pour_venir_sur_terre_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"4854104","filesize":"4.63 MB","sec":"61","dur":"25","ipfs":"/ipfs/QmTshrcooZLRmqvU3hEhSXHU14L4FtjXxv26acdMkRhEMJ","youtubeid":"HSAQb63cDEg","zurl":"https://www.youtube.com/watch?v=HSAQb63cDEg","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Quel est le plan des Shadoks pour venir sur terre Archive INA mp4"},{"created":"20230815191216593","resolution":"480p","duree":"0:01:09","duration":"69","giftime":"42","gifanime":"/ipfs/QmTmA53XnvAdtDfzKRpwoUeJjcmCRPDjNsayhxAmKB6Pgo","modified":"20230815191216593","title":"Quel_est_le_theoreme_shadok_de_la_passoire_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"17,72","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Quel_est_le_theoreme_shadok_de_la_passoire_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"4083142","filesize":"3.89 MB","sec":"69","dur":"16","ipfs":"/ipfs/QmRkmrSSsZBwXSnzzScLyPyXumioD5XCt3A9rwmz6B7dp1","youtubeid":"1Etcf9L_AC0","zurl":"https://www.youtube.com/watch?v=1Etcf9L_AC0","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Quel est le theoreme shadok de la passoire Archive INA mp4"},{"created":"20230811191217249","resolution":"480p","duree":"0:01:27","duration":"87","giftime":"53","gifanime":"/ipfs/QmUC2UnRp168349rDVbQ7QVFggW5ux4EoX9FbJMGuko8Xw","modified":"20230811191217249","title":"Qui_est_le_sorcier_Shadok_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"15,61","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Qui_est_le_sorcier_Shadok_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"5844847","filesize":"5.57 MB","sec":"88","dur":"18","ipfs":"/ipfs/QmNSkSs912CZUQrPq6mv7rwa8CauSiQvSoFHhx3pp49MeG","youtubeid":"efmXqCOsIL8","zurl":"https://www.youtube.com/watch?v=efmXqCOsIL8","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Qui est le sorcier Shadok Archive INA mp4"},{"created":"20230808191218180","resolution":"480p","duree":"0:03:22","duration":"202","giftime":"124","gifanime":"/ipfs/QmQZpPmdpHg2rUdgRjSZZtqAcQjSmsyd92XevwiZED6q91","modified":"20230808191218180","title":"Qui_se_cache_derriere_Les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"15,13","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Qui_se_cache_derriere_Les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"14001441","filesize":"13.35 MB","sec":"202","dur":"24","ipfs":"/ipfs/Qma85bLZY4yQetcRxRgwgdr9HoH3wVJH5zX5rCVikzrjQQ","youtubeid":"aEWzjqdQhKQ","zurl":"https://www.youtube.com/watch?v=aEWzjqdQhKQ","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Qui se cache derriere Les Shadoks Archive INA mp4"},{"created":"20230816191217674","resolution":"720p","duree":"0:01:55","duration":"115","giftime":"71","gifanime":"/ipfs/QmeQRRxzXm2wS4gxKe5iw4TZ8DLVBcTT6NAJuHCm4rBkuN","modified":"20230816191217674","title":"Qui_sont_les_Shadoks_Archive_INA.mp4","type":"text/vnd.tiddlywiki","vtratio":"6,12","text":"
{{!!filesize}} - {{!!duration}} sec. - vtratio(dur) = {{!!vtratio}} ({{!!dur}})

Qui_sont_les_Shadoks_Archive_INA

","g1pub":"8ysb3afneavRS4nQDBtGnu96pc84nhPessepiTA3tkah","mime":"video/mp4","size":"19698371","filesize":"18.79 MB","sec":"116","dur":"25","ipfs":"/ipfs/QmZ5us2YBA3nVoE8n8Fq3Dg5feFACcmgCUNBFJr2XNZQ6u","youtubeid":"oBBUHUkW9lk","zurl":"https://www.youtube.com/watch?v=oBBUHUkW9lk","issuer":"shadoktube@yopmail.com","tags":"ipfs G1CopierYoutube shadoktube@yopmail.com INALesShadoks:LeShadokTube NA video/mp4 Qui sont les Shadoks Archive INA mp4"},{"title":"reliable-store-of-value.svg","text":"reliable-store-of-value","type":"image/svg+xml","modified":"20231206214159687","modifier":"shadoktube@yopmail.com","tags":"$:/isAttachment $:/isEmbedded shadoktube@yopmail.com"},{"created":"20230203213813833","creator":"shadoktube@yopmail.com","text":"# À quoi ressemblerait pour vous une journée parfaite ?\nRéalitéDésirée\n\n# À quelle difficulté avez-vous été surpris de savoir particulièrement bien faire face ?\nFaireFace\n\n# À quand remonte la dernière fois que vous avez lutté de toutes vos forces contre quelque chose avant de le regretter ?\nLutteVaine","tags":"shadoktube@yopmail.com G1Citation","title":"Répondez à ces Questions ?","modified":"20230302234425495","modifier":"shadoktube@yopmail.com"},{"created":"20230501163210882","creator":"shadoktube@yopmail.com","text":"ScuttleButt est protocole et un logiciel de messagerie chiffrée asynchrone.\n\n¯[[\\_༼༽_/¯ La June s’échange sur ScuttleButt !|https://forum.monnaie-libre.fr/t/o-o-la-june-s-echange-sur-scuttlebutt/10300 ]]\n\nSes défauts majeurs:\n\n* Des synchronisations interminables entre utilisateurs\n* Le danger de voir son disque dur totalement rempli en devenant ami avec un utilisateur de longue date\n\nDésormais remplacé par TW,\n\n* AstroportONE assure un système est 100% pair à pair.\n* TW est à la fois base de données, application, et serveur applicatif\n* Chaque Tiddler est un NFT et rapporte lorsqu'il est recopié de TW en TW\n\nCopyLaRadio et MadeInZion sont les organisations qui assurent le maintien et les évolution de ce réseau ","title":"ScuttleButt","modified":"20230501165038631","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20230501170136931","creator":"shadoktube@yopmail.com","text":"La [[STI*|https://opencollective.com/monnaie-libre/projects/stiits]] \"Société de Technologie de l'Internet\" assure la fabrication d'un Internet Libre à niveau de confiance 5★ \n\nC'est un projet mis en place par notre OpenCollective [[Monnaie et Internet Libre|https://opencollective.com/monnaie-libre]]\n\nHotLine","title":"SociétéTechnologieInternet","modified":"20230501190559224","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20221126184717924","creator":"shadoktube@yopmail.com","text":"","tags":"G1Bookmark support@qo-op.com ipfs shadoktube@yopmail.com $:/isAttachment $:/isEmbedded","title":"TerraformationForetJardin","modified":"20221128200944216","ipfs":"/ipfs/QmcajfmQUvWAmJrtJs8CKM7ptxcNEbXsuytmgJ4DW5z1Qu","type":"text/vnd.tiddlywiki","modifier":"shadoktube@yopmail.com"},{"created":"20230501160754113","creator":"shadoktube@yopmail.com","text":"!! Carnet de notes non linéaire unique pour capturer, organiser et partager des informations complexes\n\n!!! Visitez [[TiddlyWiki.com|https://tiddlywiki.com]]\n","title":"TiddlyWiki","modified":"20230501161034910","modifier":"shadoktube@yopmail.com","tags":"","type":"text/vnd.tiddlywiki"},{"title":"Voeu1.png","text":"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","type":"image/png","modified":"20221211173533585","modifier":"shadoktube@yopmail.com","tags":"$:/isAttachment $:/isEmbedded shadoktube@yopmail.com"},{"created":"20231009211638123","creator":"shadoktube@yopmail.com","text":"
USER
USER
CLOUD
CLOUD
USER
USER
DATACENTER (A)
DATACENTER (A)
DATACENTER (Z)
DATACENTER (...
USER
USER
USER
USER
Cloud USER
Cloud USER
USER
USER
DATACENTER (G)
DATACENTER (...
CUSTOMER
CUSTOMER
WEB 2.0
WEB 2.0
FIBRE
FIBRE
NEXTCLOUD
NEXTCLOUD
SOCIAL CREDIT
SOCIAL CREDIT
WEB 3
WEB 3
WEB OF TRUST ...
WEB OF TRUST ...
Text is not SVG - cannot display
","type":"application/vnd.drawio","modified":"20231009211830471","modifier":"shadoktube@yopmail.com","title":"Web2.0 Diagram","tags":""},{"created":"20230719085156876","creator":"shadoktube@yopmail.com","text":"Il s'agit d'une mutation majeure du \"World Wide Web\".\n\nSi vous aviez l'habitude de stocker vos données dans des dossiers et y accéder après avoir saisi un mot de passe, désormais vous voilà capable de forger un anneau où se raccrochent toutes vos données. Désormais adressé par le contenu, celui-ci ne peut plus être modifié. Chacun au commande de son propre \"archive.org\", ce sont les relations entre ces anneaux (clefs à courbe elliptique) qui façonnent le système d'information.\n\nAstroportONE vous offre cet anneau qui enregistre votre TW sur [[IPFS|IPFS]] puis lui applique une réplication / fusion ala ScuttleButt\n","title":"Web3","modified":"20230719090258216","modifier":"shadoktube@yopmail.com","tags":""},{"created":"20230407115952185","creator":"shadoktube@yopmail.com","text":"","tags":"shadoktube@yopmail.com","title":"WorldWotMap - mars 2023","modified":"20230407120419694","modifier":"shadoktube@yopmail.com","type":"text/vnd.tiddlywiki","ipfs":"/ipfs/QmSFeZXmn9pEKoMExuTQr42JiKPT4WtUvQqV3c6mbLnLo4"}] \ No newline at end of file diff --git a/adventure/games/anais.dupin@ynov.com/readme b/adventure/games/anais.dupin@ynov.com/readme new file mode 100644 index 000000000..9e4d969d9 --- /dev/null +++ b/adventure/games/anais.dupin@ynov.com/readme @@ -0,0 +1,48 @@ +# SCRIPT01.CYBSEC + + +``` +Loading... hRXUD1VyXh/rooms/start.sh + +Résolvez 16 + 17 : 33 +Correct ! +Bravo ! +Résolvez 17 - 2 : 15 +Correct ! +Bravo ! +``` + ++ 9 : game engine ++ 2 : multigame compatibility ++1 : shellcheck ++1 : arithmetic + +> final 13 + +## "GameShell" LEVEL ? + + + + +``` +Seulement dans ../_votre jeu/: adventure.sh +Seulement dans ../_votre jeu/: art +Seulement dans ../_votre jeu/: logic +Seulement dans ../_votre jeu/rooms: bigroom.sh +Seulement dans ../_votre jeu/rooms: brown.sh +Seulement dans ../_votre jeu/rooms: end.sh +Seulement dans ../_votre jeu/rooms: gameroom.sh +Seulement dans ../_votre jeu/rooms: green.sh +Seulement dans ../_votre jeu/rooms: grue.sh +Seulement dans ../_votre jeu/rooms: kroo2.sh +Seulement dans ../_votre jeu/rooms: kroo.sh +Seulement dans ../_votre jeu/rooms: magic8.sh +Seulement dans ../_votre jeu/rooms: mainroom.sh +Seulement dans ../_votre jeu/rooms: meteofrance.sh +Seulement dans ../_votre jeu/rooms: red.sh +Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents +Seulement dans ../_votre jeu/rooms: white.sh +Seulement dans ../_votre jeu/: script + +``` + diff --git a/adventure/games/anais.dupin@ynov.com/rooms/start.sh b/adventure/games/anais.dupin@ynov.com/rooms/start.sh old mode 100644 new mode 100755 diff --git a/adventure/games/antonio.gernacaleixo@ynov.com/readme b/adventure/games/antonio.gernacaleixo@ynov.com/readme new file mode 100644 index 000000000..65b2dbab0 --- /dev/null +++ b/adventure/games/antonio.gernacaleixo@ynov.com/readme @@ -0,0 +1,36 @@ +# SCRIPT01.CYBSEC + +valhalla + ++ 11 : game engine ++ 2 : multigame compatibility + +> final 13 + +## "GameShell" LEVEL ? + + + +``` +diff --recursive --brief ./ ../_votre\ jeu/ +Les fichiers ./logic/leverlogic.ben et ../_votre jeu/logic/leverlogic.ben sont différents +Seulement dans ./: note +Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents +Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents +Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents +Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents +Seulement dans ./rooms: valhalla.sh +Les fichiers ./rooms/white.sh et ../_votre jeu/rooms/white.sh sont différents + + +``` + +``` +------------------------------------------------------------------------------ + Searching for valhalla.sh recursively. Please Wait... +------------------------------------------------------------------------------ +./rooms/white.sh: ./valhalla.sh;; +------------------------------------------------------------------------------ + +``` + diff --git a/adventure/games/kevin.leber@ynov.com/readme b/adventure/games/kevin.leber@ynov.com/readme index 439f2a1e8..e84322c49 100644 --- a/adventure/games/kevin.leber@ynov.com/readme +++ b/adventure/games/kevin.leber@ynov.com/readme @@ -2,10 +2,10 @@ secret level -+ 12 : game engine ++ 11 : game engine + 2 : multigame compatibility -> final 14 +> final 13 ## "GameShell" LEVEL ? diff --git a/adventure/games/kristofer.rumeau@ynov.com/adventure.sh b/adventure/games/kristofer.rumeau@ynov.com/adventure.sh new file mode 100644 index 000000000..878b236f7 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/adventure.sh @@ -0,0 +1,67 @@ +#!/bin/bash +################################################################### +# This Launch script is based on BashVenture. +# +# Remember, kids - sharing is caring! Keep it open. Spread the love. +# - @BenNunney +# Thanks and gratitude to all living creatures and the whole creation. +# - @Fred +# $AGE×365,25×24×60×60×9,807÷299792458 = RELATIVE LIGHT GRAVITY SPEED +################################################################### +# Guide avancé d'écriture des scripts Bash : https://abs.traduc.org/abs-fr/ +# GAMESHELL : https://github.com/phyver/GameShell/ +################################################################### +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" +################################################################### +### CREER VOTRE PROPRE VERSION DU JEU +### CHOISIR SCENARIO +################################################################### +if hash uuidgen 2>/dev/null; then + homefolder=$(pwd) + newplayer=$(uuidgen) + ## Copy Player Game Files + mkdir -p "$HOME/.zen/adventure/$newplayer" + if [ -d "$MY_PATH/rooms" ]; then + cp -r "$MY_PATH/rooms" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/rooms does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/art" ]; then + cp -r "$MY_PATH/art" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/art does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/script" ]; then + cp -r "$MY_PATH/script" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/script does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/logic" ]; then + cp -r "$MY_PATH/logic" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/logic does not exist or is not a directory." + fi +fi + +################################################################### +echo "Loading..." +echo +################################################################### +if hash uuidgen 2>/dev/null; then + cd $HOME/.zen/adventure/$newplayer/rooms +else + cd rooms +fi +./start.sh +################################################################### +if hash uuidgen 2>/dev/null; then + cd "$homefolder" + rm -r $HOME/.zen/adventure/$newplayer +fi +echo "To continue..." +exit \ No newline at end of file diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/Gune.ben b/adventure/games/kristofer.rumeau@ynov.com/art/Gune.ben new file mode 100644 index 000000000..dedb13040 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/Gune.ben @@ -0,0 +1,21 @@ + + + .';:llllc;'. + .:xXWX;.,ll;.:XWXx;. + ;0MMMMMMKl;'',l0MMMMMWO, + ,0MMMMMMW0dc;,,;cd0WMMMMMMO. + dWMMMMM0; ;OMMMMMN: + dMMMMMN: .,'. cWMMMMMc + ,WMMMMX. .xNMMMMNx,'lONMMMMMMN. + oMMMMM: :WMMMMMMMMMMMMMMMMMMMMc + xMMMMM' xMMMMMMOlllllllloNMMMMo + oMMMMMc ,NMMMMMWd. KMMMM: + .WMMMMN, .l0NWWWKc KMMMX. + cMMMMMWo .. KMMW; + cWMMMMMXo' .lKd. KMK' + .xWMMMMMMN0dlllldONMMMMWOXd + .xNMMMMMMMd''lWMMMMMMXo. + 'lONWMW, .XMWXOl. + ..,,..,,.. + + diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/astrologo.ben b/adventure/games/kristofer.rumeau@ynov.com/art/astrologo.ben new file mode 100644 index 000000000..64180c37a --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/astrologo.ben @@ -0,0 +1,21 @@ + + .':cdxxxxxoc;. + .:x00dc;'..:..,:lk00o' + ;0Xd, oMo :OXx. + :KK; cMMMl .oNk. + .kN: ;MMMMMc xNl + .0K. ,WMMMMMW; ;Wo + OX. ,WMMMMMMMW; ;Wc + cM; .WMMMMMMMMMW, kX. + OX .NMMMMMMMMMMMW' ,Mc + O0 .NMMMMMMMMMMMMMW' .Mc + ON .XMMMMM0kkkkKMMMMN. ,M: + :M; KMMMMM: .,,;dMMMMMN. kX. + ON. 0MMMMMl ,WMMMMMMMMMMX. ;Wc + .0K. 0MMMMMd 'WMMMMMMMMMMMMX. :Wo + .xN: kMMMMMO .XWWWWNNNNNXXKKKd xNc + ;0Xl. .oXx. + ,OXx, .cOKd. + ;d00xl:,....';coO0Ol' + .;:odddddl:,. + diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/astroportland.ben b/adventure/games/kristofer.rumeau@ynov.com/art/astroportland.ben new file mode 100644 index 000000000..f27e1fd1d --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/astroportland.ben @@ -0,0 +1,21 @@ +MMMMMMMMMMMMMMMMMMMl xxlxxxd . KNNMNl. 'd0xdddkXKxc. ,dNMMMMMMMMMMMMMMM +MMMMMMMMMMMWKOl:cc' .NNOMXNX .ld; ,lxXMMMMMMMMMMM +MMMMMMMMNo. ,,' .KKWMOXX .. .dWMMMMMMMM +MMMMMMWc cdddc .NNNMXNX .do '' ' .:,:k; l, .KMMMMMMM +MMMMMW, ;ll: .,:ddddd .KKOM0XX .do '0MMXMo . dMMMMMMXOMX0: XMMMMMM +MMMMMo xc:d 'ddddddd .XXWMK00' .do .oo. .dMMMMMMO;lWNMMMMMMWXMMMX: :MMMMMM +MMMMW. .cXKKXWooK0kk0d0Oxxkkx .XXNM0Ok; .:ol:'do,0MMK ... 'XMMMMMMMMMMMMMMMMMWWMMMMx .dkONMM +MKNK. NMWooOWllKKoMNll0MM0x0 xNXXOMKOkKOoM0kkkOkWMMMM0NWWXXMMMMMMMMMMW:WkWk0OKMWdOMNxd0O. .KM +l dkkMMWloOWcc0KoMNccOMMxl0cMMXXWM0KOMMMM0OkkOKMMMMMMMMMMMMMMMMMMMMM0 : o.. 'll.lMMMMMMx .O + ;kMMMMMWlckWooKXdMNccOMMxlXk0MMMNMMMMMMMM0OkkOWMMMMMMMMMMMMMMMMMMMMMMo0OWW,xNWKcooMM0NN0Oc + .NMMMMMMNllkWllKKoMNll0MMxlNxOMMMOMMMMMMMM0OkOOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNMMNdxMMMk + ;WMMMMMMMMMMMNNWWNMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWx. + :MMkxxxWMMMWkxxxxxxxWXxxxxxxxxKWxxxxxxxxxWMMKxxxxxxKMMKxxxxxxxxKMMXxxxxxx0MMkxxxxxxxxNMXxdlloodO: + :N, OMM0. 'N. 0: :Mc XK Nx kl ,N. ;' +x..M0xddddKMMOddddddddKKddddddddxNxdddddddddOWoooooooooN0ddddddddddNdoooooooo0xdddddddddkKdddddddox. +MWKK ,MN. .,XMMMMl ;MMMM' xc 'MMd .Mx ;x .NMO N; dMMMl ,W +MMMK NM:. 'MMMW. xMMMO dW. oMM. lM' .:N, ;MM; ;K oMMMW. dO +MMMMMMMo xXXXXXk .MMMO NMMM; .WWN. 00 XM0 KK 0WWWWMMW OMX kc .WWW. OMMMO Nc +MMMMMMMX dMMM; ;MMMN dMMk N0 .. oMl .MMMMMMMN ... :W. lMM0 XMMM; ;M' .c +MMMMMMMM, .xMMMW. kMMMx .NMM: cMMd. .;0MM. oMMMMMMMMk. .,kMO XMMl :MMMW. kMOKMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/astrored.ben b/adventure/games/kristofer.rumeau@ynov.com/art/astrored.ben new file mode 100644 index 000000000..7ed4a2b8b --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/astrored.ben @@ -0,0 +1,21 @@ + .,'. + .,,;,'',;,'',,.'. + .;;,,.. .........' + .l:. ............cc. + .c, .................:c. + .lc ................... .l; + l' ... .............. c: + :: .. ........... l' + d . .''...... 'o + .o .. ''''''. l + .d . ......''''''' l + o . .,,,,,,'''''' 'l + ;: . ',,,,''''', l. + l, .. .,,,''''', oc + .lc .',,,''',. .c, + 'l, .,,''',..:c. + ';;. .,,',,:;. + ':;;'. .;:,,,. + .,,'''''','..;,,. + ,:. + ., diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/bigfinish.ben b/adventure/games/kristofer.rumeau@ynov.com/art/bigfinish.ben new file mode 100644 index 000000000..8ca22cfc0 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/bigfinish.ben @@ -0,0 +1,9 @@ + _______ _ ______ _ + |__ __| | | ____| | | + | | | |__ ___ | |__ _ __ __| | + | | | '_ \ / _ \ | __| | '_ \ / _` | + | | | | | | __/ | |____| | | | (_| |_ + |_| |_| |_|\___| |______|_| |_|\__,_(_) + + + \ No newline at end of file diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/logoastro.ben b/adventure/games/kristofer.rumeau@ynov.com/art/logoastro.ben new file mode 100644 index 000000000..859e4af1e --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/logoastro.ben @@ -0,0 +1,21 @@ + + + .:dO0NNkNX0ko,. + .:OWMMMMMMc cWMMMMMXd, + 'kWMMMMMMMMc cWMMMMMMMNo. + .kMMMMMMMMMMo lMMMMMMMMMWl + .KMMMMMMMMMMd oMMMMMMMMMMx + .XMMMMMMMMMMk dMMMMMMMMMMx + xMMMMMMMMMM0 OMMMMMMMMMM, + .NMMMMMMMMMK. OMMMMMMMMMk + 'MMMMMMMMMK. OMMMMMMMMK + .NMMMMMMMK. ,;;;;' OMMMMMMMx + dMMMMMMX. kMKkxxc 0MMMMMM, + .KMMMMN. dMx .KMMMMd + .0MMN. cMx .KMMd + xW' 'W0. ......:Xc + .lXNNWNWMMMMMMMMMMMMMMMMXl + ;xXMMMMMMMMMMMMMMWKo' + .,lxkKKKK0kdc' + + diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/supper.ben b/adventure/games/kristofer.rumeau@ynov.com/art/supper.ben new file mode 100644 index 000000000..e1806a8a0 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/supper.ben @@ -0,0 +1,10 @@ + _____ _ _ + / ____| (_) | | + | (___ _ _ _ __ _ __ _ __ _ ___ ___| | + \___ \| | | | '__| '_ \| '__| / __|/ _ \ | + ____) | |_| | | | |_) | | | \__ \ __/_| + |_____/ \__,_|_| | .__/|_| |_|___/\___(_) + | | + |_| + + \ No newline at end of file diff --git a/adventure/games/kristofer.rumeau@ynov.com/art/titleart.ben b/adventure/games/kristofer.rumeau@ynov.com/art/titleart.ben new file mode 100644 index 000000000..6da1d7df2 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/art/titleart.ben @@ -0,0 +1,9 @@ + _ _ _ ____ ___ _ ____ + / \ ___| |_ _ __ ___ _ __ ___ _ __| |_ |___ \ / _ \ _ / |___ \ + / _ \ / __| __| '__/ _ \| '_ \ / _ \| '__| __| __) | | | | (_) | | __) | + / ___ \\__ \ |_| | | (_) | |_) | (_) | | | |_ / __/| |_| | _ | |/ __/ +/_/ \_\___/\__|_| \___/| .__/ \___/|_| \__| |_____|\___/ (_) |_|_____| + |_| + + --- Un JEu de Forêt Jardin en Monnaie Libre sur IPFS --- + diff --git a/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.docx b/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.docx new file mode 100644 index 000000000..c8efd6de2 Binary files /dev/null and b/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.docx differ diff --git a/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.md b/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.md new file mode 100644 index 000000000..7b1505e7d --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/debug_wsl.md @@ -0,0 +1,75 @@ +# ATTENTION POUR VOIR LES IMAGES OUVRIR LE DOCX ! + + +Adventure.sh avec WSL + +Dans un premier temps, trouver le projet cloné qui pour moi ce situe sur le bureau. +Passer par /mnt une fois l’environnement wsl lancé pour accéder au répertoire de mon windows + +Résolution des bugs : + +Supprimer le saut de ligne (ligne 20) pour la première erreur +Puis installer dos2unix pour la 2eme : +sudo apt install dos2unix + +Si l’installation ne fonctionne pas, n’oubliez pas de faire : +sudo apt update +Et +sudo apt upgrade + +Une fois dos2unix installé, faites dos2unix adventure.sh pour convertir le fichier. +Maintenant nous avons ces erreurs : + +Pour régler ça j’ai dû modifier un peu la partie des PATH dans adventure.sh : + +''' +if hash uuidgen 2>/dev/null; then + homefolder=$(pwd) + newplayer=$(uuidgen) + ## Copy Player Game Files + mkdir -p "$HOME/.zen/adventure/$newplayer" + if [ -d "$MY_PATH/rooms" ]; then + cp -r "$MY_PATH/rooms" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/rooms does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/art" ]; then + cp -r "$MY_PATH/art" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/art does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/script" ]; then + cp -r "$MY_PATH/script" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/script does not exist or is not a directory." + fi + + if [ -d "$MY_PATH/logic" ]; then + cp -r "$MY_PATH/logic" "$HOME/.zen/adventure/$newplayer/" + else + echo "Source directory $MY_PATH/logic does not exist or is not a directory." + fi +fi +''' + +Autre erreur me dit que : + +Ça traduit une erreur d’interprétation dans le fichier « start.sh » que j’ai réglé en utilisant la commande ''' dos2unix *.sh ''' dans le dossier « rooms » pour convertir tous les fichiers : + +BRAVO : + +Dans le jeu on se rend compte que cette erreur apparaît : + + +Il faut installer ''' sudo apt install xdg-utils ''' ainsi que ''' sudo apt install firefox ''' pour résoudre ça + +Le levier ne fonctionne pas, « ACTIVATION STATION » mais rien ne se passe. + +c'est parce que le script ne se souvient que du premiere appel du levier donc il faut le lui rappeller juste après l'action avec : + + leverstate=$(cat $MY_PATH/../logic/leverlogic.ben) + + + diff --git a/adventure/games/kristofer.rumeau@ynov.com/logic/leverlogic.ben b/adventure/games/kristofer.rumeau@ynov.com/logic/leverlogic.ben new file mode 100644 index 000000000..cfb931e47 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/logic/leverlogic.ben @@ -0,0 +1 @@ +off diff --git a/adventure/games/kristofer.rumeau@ynov.com/logic/stationlogic.ben b/adventure/games/kristofer.rumeau@ynov.com/logic/stationlogic.ben new file mode 100644 index 000000000..cfb931e47 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/logic/stationlogic.ben @@ -0,0 +1 @@ +off diff --git a/adventure/games/kristofer.rumeau@ynov.com/readme b/adventure/games/kristofer.rumeau@ynov.com/readme new file mode 100644 index 000000000..a4b371d33 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/readme @@ -0,0 +1,36 @@ +# SCRIPT01.CYBSEC + +SNAKe + ++ 12 : game engine ++ 2 : multigame compatibility + +> final 14 + +## "GameShell" LEVEL ? + + + +``` +Les fichiers ./adventure.sh et ../_votre jeu/adventure.sh sont différents +Seulement dans ./: debug_wsl.docx +Seulement dans ./: debug_wsl.md +Les fichiers ./rooms/brown.sh et ../_votre jeu/rooms/brown.sh sont différents +Les fichiers ./rooms/end.sh et ../_votre jeu/rooms/end.sh sont différents +Les fichiers ./rooms/gameroom.sh et ../_votre jeu/rooms/gameroom.sh sont différents +Les fichiers ./rooms/kroo2.sh et ../_votre jeu/rooms/kroo2.sh sont différents +Les fichiers ./rooms/kroo.sh et ../_votre jeu/rooms/kroo.sh sont différents +Les fichiers ./rooms/mainroom.sh et ../_votre jeu/rooms/mainroom.sh sont différents +Les fichiers ./rooms/meteofrance.sh et ../_votre jeu/rooms/meteofrance.sh sont différents +Les fichiers ./rooms/start.sh et ../_votre jeu/rooms/start.sh sont différents + + +``` + +``` +geany ./rooms/meteofrance.sh + + +``` + + diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/bigroom.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/bigroom.sh new file mode 100644 index 000000000..a3463cf39 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/bigroom.sh @@ -0,0 +1,58 @@ +#!/bin/bash +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" + +# This is close to the endgame, but affords the player a last set of things to try and do. +# Obviously if you use this framework to create a game of your own, you can extend this massively. + +echo +sleep 1 +echo "Vous décidez de sortir de la Sation Astroport." +echo + echoleverstate=`cat ../logic/stationlogic.ben` + if [ "$leverstate" = "on" ]; then + + sleep 2 + echo "Il ne dépend que de vous d'explorer ce nouveau futur." + echo "Le Visa MadeInZion inaugure un monde sans territoire, sans frontière, transnationnal, interplanétaire, à vous de voir?" + sleep 2 + echo "Avant de nous rejoindre. Visitez notre 'bon coin' https://gchange.fr " + echo + sleep 3 + echo "Ouvrez une ambassade? Installez IPFS, devenons hébergeur, fournisseur d'accès de nos Internets." + echo + sleep 4 + echo "Ouvrez votre propriété au futur en commun, activez Astroport." + echo "Nous organisons des formations habitats posés, vissés et cousus. Eau potable. Biogaz, Marmite Norvégienne..." + echo "Comment nourrir le sol, reconnaitre les plantes... Redevenir ceuilleur, créateur." + echo + else + echo "" + echo "Aucune entrée n'est visible." + fi +echo +sleep 5 +echo +echo "Que voulez vous faire?" + +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Pas moyen de se déplacer." ;; + s ) echo ".Pas le choix." ;; + e ) echo "Pas par là." ;; + w ) echo "Plus à l'ouest que ça? Y'a pas!" ;; + u ) ./end.sh + exit ;; + h ) echo "Comment refuser une telle proposition..." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/brown.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/brown.sh new file mode 100644 index 000000000..710386d13 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/brown.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +clear +# Initialise the Title Art +file1="$MY_PATH/../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# Here's this room's script. + +echo "Sur la direction du sud, vous traversez une zone plus sombre et humide." +echo "Le sol est glissant à cause de l'argile qui colle sous vos bottes" +echo "Vous finissez par croiser un chemin qui traverse la forêt d'Est en Ouest" +echo +echo "Un terminal informatique est installé là." +echo +echo "Il ressemble à une grosse calculatrice" + + +# Here we tell the player whether the lever is on or off. +leverstate=$(cat $MY_PATH/../logic/leverlogic.ben) + if [ "$leverstate" = "on" ]; then + echo "'VISA SVP' clignote sur l'écran..." + else + echo "La machine affiche l'heure : 20:12" + fi +echo +echo "Il est tard pour explorer le chemin à pied, vous devriez retourner d'où vous venez." +echo +echo "Que faites vous?" + +# In this set of actons lies the logic switch used later in the game. +# You have to set this switch to reach the endgame. +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) ./mainroom.sh + exit ;; + s ) echo "Si vous continuez à marcher dans la forêt. Vous allez vous perdre. Demi tour." ;; + e ) echo "Le chemin qui part à l'Est est plein de boue... Impossble d'aller par là." ;; + w ) echo "Une rivière vous empêche de passer." ;; + u ) if [ "$leverstate" = "on" ]; then + echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'." + else + sed -i -e '${/^$/d;}' -e 's/off/on/' $MY_PATH/../logic/leverlogic.ben + echo "Vous pianotez sur l'appareil..." + echo "A moment où vous touchez la touche '#' L'écran se met à clignoter..." + echo "Puis le message 'ACTIVATION STATION' défile sur les caractères lumineux." + fi + leverstate=$(cat $MY_PATH/../logic/leverlogic.ben) + ;; + h ) echo "Le terminal comporte un clavier numérique. Un petit écran.. Il est réalisé avec un mini ordinateur Raspberry Pi. Il porte l'adresse G1TAG [https://g1sms.fr]" ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/end.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/end.sh new file mode 100644 index 000000000..5a84c0bd3 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/end.sh @@ -0,0 +1,71 @@ +#!/bin/bash +clear + +# This is the endgame. This file does nothing but give you the final bit of storyline. +# Use (over-use) of 'sleep' is for dramatic effect - play around with it, see how it reads. + +# Let's reset the lever, now that we're done with it. +sed -i='' 's/on/off/' ../logic/leverlogic.ben + +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo +sleep 1 +echo "Voici la fin de cette petite aventure." +echo +sleep 4 +echo "Vous venez de visiter la forêt où s'est posé Astroport ONE." +sleep 3 +echo +echo "Une oeuvre habitable. Un jardin sur sol vivant. Un progamme pair à pair interplanétaire" +sleep 4 +echo +echo "Les terraformeurs" +echo "En quête de la meilleure façon de vivre sur le vaisseau spatial Terre..." +echo +sleep 5 +echo "Vous aussi ouvrez votre Ambassade." +echo "Activez le JEu. Invitez vos visiteurs à rêver d'un monde meilleur" +echo "Reproduisez, améliorez, partagez les plans pour y parvenir." +echo +sleep 7 +echo "Il est l'heure de laisser derrière vous la civilisation thermo industrielle." +echo "Gagnez en autonomie, en convivialité, en optimisme, en conscience." +echo +sleep 5 +echo +echo "EMBARQUEZ VERS LE FUTUR" +echo +sleep 9 +echo +file1="../art/bigfinish.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo +echo +read -p "Appuyez sur [ENTER] pour terminer..." +echo +clear +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo +echo "Merci d'avoir joué le jeu" +echo "Je suis heureux de vous avoir fait partager le rêve des astronautes terraformeurs." +echo +echo "Le futur ne se prédit pas, il se construit. Il se vit." +echo +echo " - @Fred" +echo + +# That's all, folks! + +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/gameroom.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/gameroom.sh new file mode 100644 index 000000000..dbdb370d6 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/gameroom.sh @@ -0,0 +1,88 @@ +#!/bin/bash +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# This room gives the player a typical poisoned apple style scenaro. +# Just because something looks shiny and fun, doesn't make it any +# less deadly. +sleep 1 +echo "Dans une cabine, un écran est disposé en coin. Un tout petit ordinateur" +echo "y est raccordé... D'autres fils sortent de l'appareil. Une webcam. Une imprimante." +echo +echo "Que voulez vous faire?" +myIP=$(hostname -I | awk '{print $1}' | head -n 1) +isLAN=$(echo $myIP | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") +[[ ! $myIP || $isLAN ]] && myIP="127.0.1.1" + +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Vous êtes dans une cabine. Des QRCode sont collés à la parois nord" ;; + s ) echo "Cette paroie comporte un miroir. Pour se faire une beauté avant d'enregistrer une capsule vidéo." ;; + w ) ./kroo.sh + exit ;; + e ) echo "Vous êtes face à l'écran. Au dessus des hauts parleurs, une webcam" ;; + u ) leverstate=`cat ../logic/stationlogic.ben` + if [ "$leverstate" = "on" ]; then + echo "A chaque frappe d'une touche. l'écran fait défiler le texte 'SCANNEZ VISA SVP'." + else + sed -i='' 's/off/on/' ../logic/stationlogic.ben + echo "Vous appuyez sur l'interupteur de l'écran. Y apparaît alors :" + sleep 3 + echo "AMBASSADE MadeInZion - TerraPi4 - 2 To -" + echo "" + echo + sleep 2 + echo "INTERNET est dangereux. il vend vos information personnelles pour que vous deveniez un produit. " + sleep 2 + echo + echo "Rebootez INTERNET. Activez votre TW sur le Système de Fichiers Interplanétaire (IPFS)." + sleep 2 + echo + echo "On y échange en pair à pair. La monnaie y est Libre." + sleep 4 + file1="../art/astrored.ben" + while IFS= read -r line + do + echo "$line" + done <"$file1" + echo + echo + echo "____ Astroport déclenche à 20:12 la synchronisation de ses ambassades..." + echo "Rapport 2022 : https://ipfs.asycn.io/ipfs/QmUtGpGeMZvwp47ftqebVmoFWCmvroy5wEtWsKvWvDWJpR" + sleep 3 + echo + echo "ASTROPORT ONE" + echo "VISA pour le vaisseau spatial TERRE." + if [[ -d ~/.zen/Astroport.ONE ]]; then + read -p "Appuyez sur [ENTER] pour activer votre Station Astroport.ONE" + espeak "Astroport Command" > /dev/null 2>&1 + + ~/.zen/Astroport.ONE/command.sh + else + espeak "Please Install Astroport" > /dev/null 2>&1 + echo "Install Astroport.ONE ..." + echo "bash <(wget -qO- https://raw.githubusercontent.com/papiche/Astroport.ONE/master/install.sh)" + ./end.sh + fi + fi + exit + ;; + + h ) echo "'DEMARRER API http://$myIP:1234 ... Une Station Astroport.ONE.?." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/green.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/green.sh new file mode 100644 index 000000000..d3e56110e --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/green.sh @@ -0,0 +1,38 @@ +#!/bin/bash +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# Everybody clap your hands. I mean, here is the script. +sleep 1 +echo "Vous atteignez une zone remplie de jeunes épineux" +echo "Vous reconnaissez des prunus, des aubépines." +echo "Quelques génévriers dont vous remarquez les baies noires." +echo "Un peu plus loin ce sont les ronces." +echo +echo "Plus vous progressez plus vous souffrez des épines. Existe-t-il un passage? Qui sait." +echo +echo "Que voulez vous faire?" + +# And here's what you could have won... +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Un énorme roncier vous barre la route. Ca ne passe pas." ;; + s ) echo "Vers le sud, aucun passage en vue." ;; + e ) ./mainroom.sh + exit ;; + w ) echo "Vous voyez le même paysage à perte de vue" ;; + u ) echo "Vous cueillez une baie de genèvrier. Vous la portez à la bouche. Croquez. La saveur est délicieuse. La force de la plante vous envahi." ;; + h ) echo "Ce type de terrain est caractéritique des zones déboisées. La nature sort ses épines pour protéger les arbres qui poussent en dessous." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/grue.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/grue.sh new file mode 100644 index 000000000..a6016e521 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/grue.sh @@ -0,0 +1,35 @@ +#!/bin/bash +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# I like this room. There is no way to get out of it alive. +sleep 1 +echo "Un évier derrière une fenère, une ancienne porte d'armoire comme table." +echo "Un meuble fait de planches de bois cousues rempli de bocaux" +echo "Une glacière recouverte d'une couche d'isolant Un bruleur à gaz." +echo "C'est un espace pour cuisiner." +sleep 3 +echo +echo "Vous avez soif. Un filtre à eau gravitationnel vous fait face" +echo "vous attraper un gobelet et le remplissez à raz bord du liquide de la bombone" +echo "Vous portez le verre à vos lèvres..." +echo +sleep 5 +echo "A la première gorgée vous vous sentez ramolir. Comment savoir combien vous avez bu" +echo "quand votre corps devenu impossible à garder droit s'est éffondré sur le sol." +echo "Simplement le temps de vous demander pourquoi?" +echo +echo "Vous sombrez dans l'inconscience." +sleep 4 +echo "VOUS VOUS SENTEZ DECOLLER." +echo +read -p "Appuyez sur [ENTER] pour revenir..." +./mainroom.sh + +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo.sh new file mode 100644 index 000000000..d0afee2e3 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo.sh @@ -0,0 +1,57 @@ +#!/bin/bash +clear + +# This room gets a little artsy with sleep commands, to help with the +# narrative of the story. This is why there are two versions - foyer and foyer2. + +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# It's script time again... +echo "Vous pénétrez à l'intérieur de l'Astroport." +echo +echo "Une voix synthétique vous accueille." +espeak "Welcome. Please Identify." > /dev/null 2>&1 +echo +echo "Vous parcourez l'espace du regard" +echo "Au nord, face à vous se trouve un foyer où brule un feu." +echo +echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?" +echo "A l'est il y a un genre de 'photomaton' " +echo +echo "Derrière vous, la porte par où vous êtes entré est encore ouverte." +echo +echo "Que voulez vous faire?" +echo +echo "Il y a également un ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'" + +# And once again the room logic. + +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant." + ./magic8.sh + ;; + s ) ./bigroom.sh + exit ;; + e ) ./gameroom.sh + exit ;; + w ) ./grue.sh + exit ;; + u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?" + ./meteofrance.sh + exit + ;; + h ) echo "La pièce est spacieuse. La chaleur du feu agréable, à gauche on dirait une cuisine explosée, à droite une chaise moletonnée fait face à un écran." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo2.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo2.sh new file mode 100644 index 000000000..bc9b1396d --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/kroo2.sh @@ -0,0 +1,52 @@ +#!/bin/bash +clear + +# This room gets a little artsy with sleep commands, to help with the +# narrative of the story. This is why there are two versions - foyer and foyer2. + +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# It's script time again... +echo "Vous parcourez l'espace du regard" +echo "Au nord, face à vous se trouve un foyer où brule un feu." +echo +echo "A l'ouest sont suspendus tuyaux, ustensiles et bocaux. Une cuisine?" +echo "A l'est il y a un genre de 'photomaton' " +echo +echo "Derrière vous, la porte par où vous êtes entré est encore ouverte." +echo +echo "Que voulez vous faire?" +echo +echo "Il y a toujours l'ordinateur au millieu de la pièce avec l'inscription : 'Appuyez sur U pour lancer le jeu'" + +# And once again the room logic. + +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Vous vous asseyez sur le grand tapis devant le feu. Vous vous relaxez un instant." + ./magic8.sh + ;; + s ) ./bigroom.sh + exit ;; + e ) ./gameroom.sh + exit ;; + w ) ./grue.sh + exit ;; + u ) echo "Vous tapotez sur le barmoètre. Une photo satellite?" + ./meteofrance.sh + exit + ;; + h ) echo "La pièce est spacieuse. La chaleur du feu agréable, à gauche on dirait une cuisine explosée, à droite une chaise moletonnée fait face à un écran." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/magic8.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/magic8.sh new file mode 100644 index 000000000..fa8b8fd70 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/magic8.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# magic 8 ball. Yup. Pick a random number, output message +# source: https://www.linuxjournal.com/content/bash-shell-games-lets-play-go-fish + +answers=("Oui c'est certain." "C'est carrément ça." + "Sans aucun doute." "Oui - assurément." + "Comptez la dessus." "Comme je le vois, oui." "Très probablement." + "Bonne perspective." "Oui." "Les signes indiquent que oui." + "Réponse floue, essayez à nouveau." "Redemandez plus tard." + "Il vaut mieux ne pas vous le dire maintenant.." "Impossible de prédire maintenant." + "Concentrez-vous et demandez à nouveau." "N'y comptez pas." + "Ma réponse est non." "Mes sources disent que non." + "Rien de bon." "Très douteux.") + +echo "Oh ! Boule magique, dis-moi la vérité, s'il te plaît...." ; echo "" +/bin/echo -n "Quelle est votre question ? " +read question + +answer=$(( $RANDOM % 20 )) + +echo "" +echo "J'ai regardé dans le futur et je dis: " +echo " ${answers[$answer]}" ; echo "" + +sleep 3 +./mainroom.sh + +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/mainroom.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/mainroom.sh new file mode 100644 index 000000000..ccd9bb276 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/mainroom.sh @@ -0,0 +1,44 @@ +#!/bin/bash +clear + +# This is a repeat of the opening room in the start.sh file - if the player +# wants to go back to the main room, this saves going through the whole +# start script over again. + +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# Shakesphere wrote this, honest. +echo "Vous êtes de retour à votre point de départ." +echo "La forêt qui vous entoure est immense." +echo "Vous ne pouvez pas vraiment en imaginer la taille," +echo +echo "Vous pouvez vous diriger au nord, à l'est, au sud et à l'ouest." +echo +echo "Que voulez-vous faire ?" + +# And the room logic once again. +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) ./white.sh + exit ;; + s ) ./brown.sh + exit ;; + e ) ./red.sh + exit ;; + w ) ./green.sh + exit ;; + u ) echo "Il n'y a rien que vous puissiez utiliser ici." ;; + h ) echo "Vous observez votre montre, il est 20:12" ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/meteofrance.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/meteofrance.sh new file mode 100755 index 000000000..a9f0ca804 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/meteofrance.sh @@ -0,0 +1,216 @@ +#!/bin/bash + +# Fonction pour afficher l'interface du jeu +draw_game() { + clear + for ((i = 0; i < height; i++)); do + for ((j = 0; j < width; j++)); do + if [[ $i -eq 0 || $i -eq $((height - 1)) || $j -eq 0 || $j -eq $((width - 1)) ]]; then + echo -e "\033[1;34m#\033[0m\c" + elif [[ $i -eq $fruit_row && $j -eq $fruit_col ]]; then + echo -e "\033[1;31m@\033[0m\c" + else + local is_snake_segment=false + for ((k = 0; k < ${#snake_body_rows[@]}; k++)); do + if [[ $i -eq ${snake_body_rows[$k]} && $j -eq ${snake_body_cols[$k]} ]]; then + echo -e "\033[1;32m#\033[0m\c" + is_snake_segment=true + break + fi + done + if [[ $is_snake_segment == false ]]; then + echo -e " \c" + fi + fi + done + echo + done +} + +# Initialisation des variables +height=20 +width=40 +snake_body_rows=() +snake_body_cols=() +snake_length=1 +direction="RIGHT" +fruit_row=$((RANDOM % (height - 2) + 1)) +fruit_col=$((RANDOM % (width - 2) + 1)) + +# Position initiale du serpent +snake_body_rows[0]=$((height / 2)) +snake_body_cols[0]=$((width / 2)) + +# Fonction pour déplacer le serpent +move_snake() { + local i + for ((i = ${#snake_body_rows[@]} - 1; i > 0; i--)); do + snake_body_rows[$i]=${snake_body_rows[$((i - 1))]} + snake_body_cols[$i]=${snake_body_cols[$((i - 1))]} + done + + case $direction in + "UP") + snake_body_rows[0]=$((snake_body_rows[0] - 1)) + ;; + "DOWN") + snake_body_rows[0]=$((snake_body_rows[0] + 1)) + ;; + "LEFT") + snake_body_cols[0]=$((snake_body_cols[0] - 1)) + ;; + "RIGHT") + snake_body_cols[0]=$((snake_body_cols[0] + 1)) + ;; + esac +} + +# Fonction pour vérifier les collisions +check_collision() { + if [[ ${snake_body_rows[0]} -le 0 || ${snake_body_rows[0]} -ge $((height - 1)) || ${snake_body_cols[0]} -le 0 || ${snake_body_cols[0]} -ge $((width - 1)) ]]; then + return 1 + fi + + for ((i = 1; i < ${#snake_body_rows[@]}; i++)); do + if [[ ${snake_body_rows[0]} -eq ${snake_body_rows[$i]} && ${snake_body_cols[0]} -eq ${snake_body_cols[$i]} ]]; then + return 1 + fi + done + + if [[ ${snake_body_rows[0]} -eq $fruit_row && ${snake_body_cols[0]} -eq $fruit_col ]]; then + generate_fruit + grow_snake + fi + + return 0 +} + +# Fonction pour faire grandir le serpent +grow_snake() { + local last_index=$(( ${#snake_body_rows[@]} - 1 )) + local last_row=${snake_body_rows[$last_index]} + local last_col=${snake_body_cols[$last_index]} + snake_body_rows+=($last_row) + snake_body_cols+=($last_col) +} + +# Fonction pour générer un nouveau fruit +generate_fruit() { + fruit_row=$((RANDOM % (height - 2) + 1)) + fruit_col=$((RANDOM % (width - 2) + 1)) +} + +# Boucle principale du jeu +while true; do + draw_game + echo "Score: ${#snake_body_rows[@]}" + + # Appel à la fonction move_snake pour que le serpent avance automatiquement + move_snake + + read -s -t 0.2 -n 1 action + + case $action in + "z") + if [[ $direction != "DOWN" ]]; then + direction="UP" + fi + ;; + "s") + if [[ $direction != "UP" ]]; then + direction="DOWN" + fi + ;; + "q") + if [[ $direction != "RIGHT" ]]; then + direction="LEFT" + fi + ;; + "d") + if [[ $direction != "LEFT" ]]; then + direction="RIGHT" + fi + ;; + esac + + # Vérifier les collisions après le déplacement + check_collision + if [[ $? -eq 1 ]]; then + echo "Bravo ! Vous avez eu le score de ${#snake_body_rows[@]} ! Appuyez sur \"q\" pour quitter le jeu ou sur \"r\" pour rejouer" + read -n 1 -s choice + case $choice in + q) + ./kroo2.sh + ;; + r) + ./meteofrance.sh + ;; + *) + echo "Choix non reconnu." + ;; + esac + fi +done + + + + + +# #!/bin/bash +# ################################################################################ +# # Author: Fred (support@qo-op.com) +# # Version: 0.1 +# # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +# ################################################################################ +# MOATS=$(date -u +"%Y%m%d%H%M%S%4N") +# mkdir -p ~/.zen/tmp/${MOATS} +# ################################################################################ +# # Choisir la source de capture +# # https://fr.sat24.com/image?type=visual5HDComplete®ion=fr + +# MY_PATH="`dirname \"$0\"`" # relative +# MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +# ME="${0##*/}" + +# ## TEST IPFS +# [[ ! $(which ipfs) ]] && echo "Missing IPFS. Please install... https://ipfs.tech" && exit 1 + +# ## PREPARE FILE SYSTEM CACHE +# mkdir -p ~/.zen/adventure/meteo.anim.eu +# rm -f ~/.zen/adventure/meteo.anim.eu/meteo.png + +# ## SCRAPING meteo.png +# curl -m 20 --output ~/.zen/adventure/meteo.anim.eu/meteo.png https://s.w-x.co/staticmaps/wu/wu/satir1200_cur/europ/animate.png + +# if [[ ! -f ~/.zen/adventure/meteo.anim.eu/meteo.png ]]; then + +# echo "Impossible de se connecter au service meteo" +# exit 1 + +# else + +# echo "Mise à jour archive meteo : ${MOATS}" +# echo ${MOATS} > ~/.zen/adventure/meteo.anim.eu/.moats + +# OLDID=$(cat ~/.zen/adventure/.meteo.index 2>/dev/null) +# # TODO : COMPARE SIMILAR OR NOT +# # ipfs get "/ipfs/$OLDID/meteo.anim.eu/meteo.png" + +# ## PREPARE NEW index.html +# sed "s/_OLDID_/$OLDID/g" ${MY_PATH}/../templates/meteo_chain.html > /tmp/index.html +# sed -i "s/_IPFSID_/$IPFSID/g" /tmp/index.html +# sed -i "s/_DATE_/$(date -u "+%Y-%m-%d#%H:%M:%S")/g" /tmp/index.html +# sed "s/_PSEUDO_/${USER}/g" /tmp/index.html > ~/.zen/adventure/index.html + +# # Copy style css +# cp -r ${MY_PATH}/../templates/styles ~/.zen/adventure/ + +# INDEXID=$(ipfs add -rHq ~/.zen/adventure/* | tail -n 1) +# echo $INDEXID > ~/.zen/adventure/.meteo.index +# echo "METEO INDEX : http://127.0.0.1:8080/ipfs/$INDEXID" + +# IPFS=$(ipfs add -q ~/.zen/adventure/meteo.anim.eu/meteo.png | tail -n 1) +# echo $IPFS > ~/.zen/adventure/meteo.anim.eu/.chain + +# fi + diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/red.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/red.sh new file mode 100644 index 000000000..d7d842456 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/red.sh @@ -0,0 +1,41 @@ +#!/bin/bash +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# Set up the script for this room. It's a simple one! +sleep 1 +echo "Vous entrez dans l'ancienne bergerie." +echo "Un canapé mauve est installé au milieu de l'espace" +echo "Une bache transparente vous sépare du ciel." +echo +echo "Vous êtes dans une serre." +echo "Une seule sortie. A l'Ouest, d'où vous venez." +echo +echo "Que voulez-vous faire?" + +# And the choices go here. +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Une fente dans le mur vous laisse observer une carcasse de voiture. Une vieille 2cv. Un grillage vous empêche de passer." ;; + s ) echo "L'emplacement d'un grand feu se trouve la. Il ne reste que de la cendre." ;; + e ) echo "Une autre pièce remplie de gravats et d'éboulis se trouve devant vous. Impossible d'y accéder." ;; + w ) ./mainroom.sh + exit ;; + u ) echo "Vous vous asseyez dans le canapé. Vous vous sentez immédiatement happé par un nuage." + sleep 2 + xdg-open "https://www.copylaradio.com/blog/blog-1/post/le-pas-a-pas-qui-libere-du-grand-mechant-cloud-36#scrollTop=0" + ;; + h ) echo "Aucun détail particulier si ce n'est une tache sur le sofa." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/start.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/start.sh new file mode 100644 index 000000000..fa15b89ea --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/start.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +clear + +# Logic in the game is stored in .ben files. This sample has just one 'logic' file. +# You can add more logic files by simply adding a 'sed' command and appropriate .ben file. +# First off, let us reset the game logic. Use this as an example. + +sed -i '' 's/on/off/' ../logic/leverlogic.ben + +# Who doen't love ASCII text, right? +# Next up, let's initialise the Title Art +file1="$MY_PATH/../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +# Next up, let's load in the initial introduction. Script is also stored in .ben files. +file2="$MY_PATH/../script/opening.ben" +while IFS= read -r line +do + echo "$line" +done <"$file2" +read -p "Pressez sur [ENTER] pour démarrer..." + +#Okay, now that the introduction is out of the way, we can start the first room! +clear +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +sleep 1 + +# Here's where you introduce the room to the player. Be sure to tell them if there +# Are exits - but don't give too much away. Make it fun for them to explore! +echo +echo "La téléportation vous a placé debout au centre d'une clairière." +echo "Vous vous trouvez près d'une ancienne bergerie aux gros murs de pierres." +echo "Le toit et une bonne partie des murs sont effondrés." +echo +echo "Tout autour la forêt. Des feuillus. Quelques arbustres épineux." +echo "Sous vos pieds. Le sol est rouge parsemé de cailloux blancs." +echo +echo "Vous pouvez vous diriger selon les points cardinaux." +echo "Au nord un chemin remonte, au sud un passage descend, à l'est, la bergerie, à l'ouest, des traces d'animaux" +echo +echo "Que voulez-vous faire? Les commandes sont : n, e, s, w, u et h." + +# Now we wait for their response - and send them somewhere accordingly. +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) ./white.sh + exit ;; # These lines will take the player to a new room - a new script file. + s ) ./brown.sh + exit ;; # Be sure to include 'exit' otherwise the game won't quit properly! + e ) ./red.sh + exit ;; + w ) ./green.sh + exit ;; + u ) echo "Vous ouvrez votre sac il contient une tente, des vêtements, un thermos, une scie pliante et un couteau" ;; # Something to say? You can also just echo. + h ) echo "Comment avez-vous pu arriver ici.? Des souvenirs vous reviennent... https://ipfs.copylaradio.com/ipfs/QmWyCFvvvrE1xWudCnc14oDvaztLaRZ4guvQFVkkDLwa23#JOUR%201.%20PLANETE%201." ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/rooms/white.sh b/adventure/games/kristofer.rumeau@ynov.com/rooms/white.sh new file mode 100644 index 000000000..5c048d083 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/rooms/white.sh @@ -0,0 +1,62 @@ +#!/bin/bash +clear +# Initialise the Title Art +file1="../art/titleart.ben" +while IFS= read -r line +do + echo "$line" +done <"$file1" +echo + +#Setting up the room... +sleep 1 +echo "Vous parcourez un chemin qui monte en direction du nord.." +echo "Au sommet de cette petite colline vous découvrez un magestueux chêne" +echo "trônant au centre d'une clairière lumineuse. La forêt à cet endroit" +echo "forme un cercle tout autour..." +echo +echo "Un Astroport fait de vitres, de planches, de tôles et de chevrons" +echo "est posé là. Eclairé par les rayons du soleil." +echo +# Here we're going to check to see if the lever - the only logic we are using in this game - is on or off. +leverstate=`cat ../logic/leverlogic.ben` + if [ "$leverstate" = "on" ]; then + echo "Une poignée est apparue sur la porte de la façade..." + else + echo "Vous en faites le tour..." + echo "Aucune entrée n'est visible." + fi + +echo +echo "Pas d'autre chemin praticable que celui d'où vous venez." +echo +echo "Que voulez-vous faire ?" + +# Now lets capture this room's actions. Note that here, the actions change depending on whether or not +# the lever is on or off. If it's on, you go elsewhere. If it's off, you don't. +while true; do + read -p "> " nsewuh + case $nsewuh in + n ) echo "Vous vous aventurez dans la forêt plus au nord. Sans boussole, vous allez vous perdre rapidement... " ;; + s ) ./mainroom.sh + exit ;; + e ) echo "Une corniche surplombe un ruisseau qui coule dans le fond de la ravine. Impossible de passer sans équipement" ;; + w ) echo "Vous voilà face à un Jardin luxuriant. Une cloture électrique le délimite et en empêche l'accès." ;; + h ) echo "Vous voyez à l'interieur de la Station une video en cours de projection..." + sleep 2 + xdg-open "https://www.youtube.com/embed/Yk-WRXKysXM" + ;; + u ) leverstate=`cat ../logic/leverlogic.ben` + if [ "$leverstate" = "on" ]; then + ./kroo.sh + exit + else + echo "Vous cherchez une ouverture... Pas la moindre. Impossible d'entrer sans commettre une effraction..." + fi + ;; + * ) echo "Je suis désolé, je ne vous comprends pas. Les commandes sont : n, e, s, w, u et h..";; + esac +done + +esac +exit diff --git a/adventure/games/kristofer.rumeau@ynov.com/script/opening.ben b/adventure/games/kristofer.rumeau@ynov.com/script/opening.ben new file mode 100644 index 000000000..398233a32 --- /dev/null +++ b/adventure/games/kristofer.rumeau@ynov.com/script/opening.ben @@ -0,0 +1,23 @@ +Message de la Confédération Interplanétaire + +La planète où vous vous trouvez est en danger. Les menaces sont nombreuses. +Vos gouvernements se disputent les dernières ressources. Le cycle du vivant est perturbé ! +Le "contrat social" des 'pays civilisés' vascille. Les technocrates réclament plus de contrôle. + +La commission extraterrestre est formelle. Vous êtes en danger. + +Heureusement la monnaie libre a été découverte sur votre planète! +Elle s'utilise dans un jeu 'grandeur nature'. Astroport 20:12 +Bienvenue dans l'aventure du changement de civilisation. + +Les commandes pour vous déplacer et interagir sont +'n' aller au nord, +'s' aller au sud, +'e' aller à l'est, +'w' aller à l'ouest, +'u' utiliser, +'h' observer plus en détail. + +Ctrl-C pour quitter. + + - - - diff --git a/adventure/infra/Readme.md b/adventure/infra/Readme.md deleted file mode 100644 index 6eef328b4..000000000 --- a/adventure/infra/Readme.md +++ /dev/null @@ -1 +0,0 @@ -ici diff --git a/adventure/infra/readme b/adventure/infra/readme deleted file mode 100644 index e69de29bb..000000000 diff --git a/ajouter_media.sh b/ajouter_media.sh index e54ee0700..5ef2279a0 100755 --- a/ajouter_media.sh +++ b/ajouter_media.sh @@ -32,7 +32,7 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized # REMOVE GtkDialog errors for zenity shopt -s expand_aliases alias zenity='zenity 2> >(grep -v GtkDialog >&2)' -alias espeak='espeak 1>&2>/dev/null' +alias espeak='espeak >/dev/null 2>&1' ## CHECK IF IPFS DAEMON IS STARTS WELL floop=0 @@ -71,7 +71,7 @@ if [[ ${PLAYER} == "" ]]; then players=($(ls ~/.zen/game/players | grep "@" 2>/dev/null)) if [[ ${#players[@]} -ge 1 ]]; then - espeak "SELECT YOUR PLAYER" 2>/dev/null + espeak "SELECT YOUR PLAYER" OUTPUT=$(zenity --list --width 480 --height 200 --title="Choix du PLAYER" --column="Astronaute" "${players[@]}") [[ ${OUTPUT} == "" ]] && espeak "No player selected. EXIT" && exit 1 else diff --git a/command.sh b/command.sh index 6dbd7bbfa..3eb413ec9 100755 --- a/command.sh +++ b/command.sh @@ -12,6 +12,13 @@ TS=$(date -u +%s%N | cut -b1-13) MOATS=$(date -u +"%Y%m%d%H%M%S%4N") #~ mkdir -p ~/.zen/tmp/${MOATS} +### CHECK and CORRECT .current +CURRENT=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) +[[ ${CURRENT} == "" ]] \ + && lastplayer=$(ls -t ~/.zen/game/players 2>/dev/null | grep "@" | head -n 1) \ + && [[ ${lastplayer} ]] \ + && ln -s ~/.zen/game/players/${lastplayer} ~/.zen/game/players/.current && CURRENT=${lastplayer} + echo ' _ ____ _____ ____ ___ ____ ___ ____ _____ ___ _ _ _____ / \ / ___|_ _| _ \ / _ \| _ \ / _ \| _ \_ _| / _ \| \ | | ____| @@ -19,14 +26,11 @@ echo ' / ___ \ ___) || | | _ <| |_| | __/| |_| | _ < | | | |_| | |\ | |___ /_/ \_\____/ |_| |_| \_\\___/|_| \___/|_| \_\|_| \___/|_| \_|_____| -Ambassade numérique pair à pair sur IPFS. +Astroport is a Web3 engine running UPlanet hosting TW5s on IPFS, and more... @@@@@@@@@@@@@@@@@@ -ASTROPORT -VISA : MadeInZion +ADMIN = '${CURRENT}' @@@@@@@@@@@@@@@@@@' -CURRENT=$(cat ~/.zen/game/players/.current/.player) -echo "CURRENT = ${CURRENT}" echo ## VERIFY SOFTWARE DEPENDENCIES @@ -37,66 +41,75 @@ YOU=$(myIpfsApi); echo 'PRESS ENTER... '; read ## CREATE AND OR CONNECT USER - PS3='Astronaute connectez votre PLAYER ___ ' - players=( "PRINT ZENCARD" "CREATE PLAYER" "IMPORT PLAYER" $(ls ~/.zen/game/players | grep "@" 2>/dev/null)) - ## MULTIPLAYER +PS3=' ____ Select ___ ? ' +players=( "CREATE PLAYER" "PRINT QRCARD" $(ls ~/.zen/game/players | grep "@" 2>/dev/null)) +## MULTIPLAYER +select fav in "${players[@]}"; do + case $fav in + "PRINT QRCARD") + ## DIRECT VISA.print.sh + echo "'Email ?'" + read EMAIL + [[ ${EMAIL} == "" ]] && EMAIL=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) + echo "'Secret 1 ?'" + read SALT + [[ ${SALT} == "" ]] && SALT=$(${MY_PATH}/tools/diceware.sh 4 | xargs) + echo "'Secret 2?'" + read PEPPER + [[ ${PEPPER} == "" ]] && PEPPER=$(${MY_PATH}/tools/diceware.sh 4 | xargs) + echo "'PIN ?'" + read PASS + echo "${MY_PATH}/tools/VISA.print.sh" "${EMAIL}" "'"$SALT"'" "'"$PEPPER"'" "'"$PASS"'" + ${MY_PATH}/tools/VISA.print.sh "${EMAIL}" "$SALT" "$PEPPER" "$PASS" ## - select fav in "${players[@]}"; do - case $fav in - "PRINT ZENCARD") - ## DIRECT VISA.print.sh - echo "'Email ?'" - read EMAIL - [[ ${EMAIL} == "" ]] && EMAIL=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) - echo "'Secret 1 ?'" - read SALT - [[ ${SALT} == "" ]] && SALT=$(${MY_PATH}/tools/diceware.sh 4 | xargs) - echo "'Secret 2?'" - read PEPPER - [[ ${PEPPER} == "" ]] && PEPPER=$(${MY_PATH}/tools/diceware.sh 4 | xargs) - echo "'PIN ?'" - read PASS - echo "${MY_PATH}/tools/VISA.print.sh" "${EMAIL}" "'"$SALT"'" "'"$PEPPER"'" "'"$PASS"'" - ${MY_PATH}/tools/VISA.print.sh "${EMAIL}" "$SALT" "$PEPPER" "$PASS" ## + [[ ${EMAIL} != "" && ${EMAIL} != $(cat ~/.zen/game/players/.current/.player 2>/dev/null) ]] && rm -Rf ~/.zen/game/players/${EMAIL}/ - [[ ${EMAIL} != "" && ${EMAIL} != $(cat ~/.zen/game/players/.current/.player 2>/dev/null) ]] && rm -Rf ~/.zen/game/players/${EMAIL}/ - - exit - ;; - "CREATE PLAYER") - ${MY_PATH}/RUNTIME/VISA.new.sh - fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO - echo "Astronaute $fav bienvenue sur UPlanet. Set TW GPS position..." - exit - ;; - "IMPORT PLAYER") - echo "'Secret 1'" - read SALT - echo "'Secret 2'" - read PEPPER - echo "'Adresse Email'" - read EMAIL - ${MY_PATH}/RUNTIME/VISA.new.sh "$SALT" "$PEPPER" "$EMAIL" - fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO - echo "Astronaute $fav WELCOME" - exit - ;; - "") - echo "Choix obligatoire. exit" - exit - ;; - *) echo "Salut $fav" - break - ;; - esac - done - PLAYER=$fav + exit + ;; + "CREATE PLAYER") + echo "'Email ?'" + read EMAIL + [[ ${EMAIL} == "" ]] && break + echo "'Secret 1'" + read PPASS + [[ ${PPASS} == "" ]] \ + && PPASS=$(${MY_PATH}/tools/diceware.sh $(${MY_PATH}/tools/getcoins_from_gratitude_box.sh) | xargs) + echo "'Secret 2'" + read NPASS + [[ ${NPASS} == "" ]] \ + && NPASS=$(${MY_PATH}/tools/diceware.sh $(${MY_PATH}/tools/getcoins_from_gratitude_box.sh) | xargs) + echo "'Latitude ?'" + read LAT + [[ ${LAT} == "" ]] && LAT="0.00" + echo "'Longitude ?'" + read LON + [[ ${LON} == "" ]] && LON="0.00" + echo "${MY_PATH}/RUNTIME/VISA.new.sh" "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "_URL_" "${LAT}" "${LON}" + ${MY_PATH}/RUNTIME/VISA.new.sh "${PPASS}" "${NPASS}" "${EMAIL}" "UPlanet" "_URL_" "${LAT}" "${LON}" + fav=$(cat ~/.zen/tmp/PSEUDO 2>/dev/null) && rm ~/.zen/tmp/PSEUDO + echo "Astronaute $fav bienvenue sur UPlanet..." + exit + ;; + "") + echo "Choix obligatoire. exit" + exit + ;; + *) echo "Salut $fav" + break + ;; + esac +done +PLAYER=$fav +####### NO CURRENT ? PLAYER = .current +[[ ! -e ~/.zen/game/players/.current ]] \ + && rm ~/.zen/game/players/.current 2>/dev/null \ + && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current pass=$(cat ~/.zen/game/players/$PLAYER/.pass 2>/dev/null) ########################################## DEVEL -echo "Saisissez votre PASS -- UPGRADE CRYPTO FREELY -- $pass" && read PASS +echo "Saisissez votre PASS -- FREE MODE -- $pass" && read PASS ## DECODE CURRENT PLAYER CRYPTO # echo "********* DECODAGE SecuredSocketLayer *********" @@ -105,11 +118,11 @@ echo "Saisissez votre PASS -- UPGRADE CRYPTO FREELY -- $pass" && read PASS [[ $PASS != $pass ]] && echo "ERROR. MAUVAIS PASS. EXIT" && exit 1 ## CURRENT CHANGE ? -[[ ${CURRENT} != ${PLAYER} ]] \ -&& echo "BECOME ADMIN ? hit ENTER for NO, write something for YES" && read ADM \ -&& [[ ${ADM} != "" ]] \ -&& rm -f ~/.zen/game/players/.current \ -&& ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current +#~ [[ ${CURRENT} != ${PLAYER} ]] \ +#~ && echo "BECOME ADMIN ? hit ENTER for NO, write something for YES" && read ADM \ +#~ && [[ ${ADM} != "" ]] \ +#~ && rm -f ~/.zen/game/players/.current \ +#~ && ln -s ~/.zen/game/players/${PLAYER} ~/.zen/game/players/.current echo "________LOGIN OK____________"; echo diff --git a/images/mayakins.jpg b/images/mayakins.jpg new file mode 100644 index 000000000..4055b21d2 Binary files /dev/null and b/images/mayakins.jpg differ diff --git a/install.sh b/install.sh index b1bb1292a..a33715b8b 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ echo "#############################################" echo "######### INSTALL BASE & PYTHON3 PACKAGE ####" echo "#############################################" -for i in git make cmake docker-compose fail2ban npm shellcheck socat netcat-traditional ncdu chromium miller inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli python3-aiohttp mpack; do +for i in git make cmake docker-compose fail2ban npm shellcheck multitail netcat-traditional ncdu chromium miller inotify-tools curl net-tools libsodium* libcurl4-openssl-dev python3-pip python3-setuptools python3-wheel python3-dotenv python3-gpg python3-jwcrypto python3-brotli python3-aiohttp mpack; do if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then echo ">>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" sudo apt install -y $i @@ -116,7 +116,7 @@ fi echo "#####################################" echo "## CRYPTO LIB & PYTHON TOOLS" export PATH=$HOME/.local/bin:$PATH -for i in pip setuptools wheel cryptography Ed25519 base58 google duniterpy silkaj pynacl pgpy pynentry SecureBytes amzqr pdf2docx pyppeteer; do +for i in pip setuptools wheel amzqr pdf2docx pyppeteer cryptography Ed25519 base58 google duniterpy pynacl pgpy pynentry SecureBytes; do echo ">>> Installation $i <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" python -m pip install --break-system-packages -U $i [[ $? != 0 ]] && echo "INSTALL $i FAILED." && echo "python -m pip install -U $i FAILED." >> /tmp/install.errors.log && continue diff --git a/microledger.me.sh b/microledger.me.sh new file mode 100644 index 000000000..15334d5f0 --- /dev/null +++ b/microledger.me.sh @@ -0,0 +1,51 @@ +#!/bin/bash +################################################################################ +# Author: Fred (support@qo-op.com) +# Version: 0.1 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +################################################################################ +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized + +echo ' +############################################################### ipfs +## __ __ ___ ____ ____ ___ _ _____ ____ ____ _____ ____ +## | \/ |_ _/ ___| _ \ / _ \ | | | ____| _ \ / ___| ____| _ \ +## | |\/| || | | | |_) | | | | | | | _| | | | | | _| _| | |_) | +## | | | || | |___| _ <| |_| | | |___| |___| |_| | |_| | |___| _ < +## |_| |_|___\____|_| \_\\___/ |_____|_____|____/ \____|_____|_| \_\ me +' + +MOATS=$(date -u +"%Y%m%d%H%M%S%4N") + +OLD=$(cat ${MY_PATH}/.chain) +[[ -z ${OLD} ]] \ + && GENESYS=$(ipfs add -rwq ${MY_PATH}/* | tail -n 1) \ + && echo ${GENESYS} > ${MY_PATH}/.chain \ + && echo "### - (^‿‿^) - " >> ${MY_PATH}/README.md \ + && echo /ipfs/${GENESYS} >> ${MY_PATH}/README.md \ + && echo "CHAIN BLOC ZERO : ${GENESYS}" \ + +## TIMESTAMP CHAIN SHIFTING +cp ${MY_PATH}/.chain \ + ${MY_PATH}/.chain.$(cat ${MY_PATH}/.moats) + +IPFSME=$(ipfs add -rwHq ${MY_PATH}/* | tail -n 1) + +[[ ${IPFSME} == ${OLD} ]] && echo "No change." && exit 0 + +## CHAIN UPGRADE +echo ${IPFSME} > ${MY_PATH}/.chain +echo ${MOATS} > ${MY_PATH}/.moats + +## README UPGRADE +sed -i "s~${OLD}~${IPFSME}~g" ${MY_PATH}/README.md + +## AUTO GIT +echo '# ENTER COMMENT FOR YOUR COMMIT :' +git add . +read COMMENT \ +&& git commit -m "$COMMENT : https://ipfs.copylaradio.com/ipfs/${IPFSME}" \ +&& git push + +exit 0 diff --git a/show1234.log.sh b/show1234.log.sh new file mode 100755 index 000000000..4597f1f53 --- /dev/null +++ b/show1234.log.sh @@ -0,0 +1,7 @@ +#!/bin/bash +############################################################# +## DISPLAY SERVER LOG FILES +############################################################# +## 1234 API ~/.zen/tmp/12345.log +############################################################ +tail -f ~/.zen/tmp/12345.log -n 200 diff --git a/show_12345.log.sh b/show_12345.log.sh new file mode 100755 index 000000000..3147bb681 --- /dev/null +++ b/show_12345.log.sh @@ -0,0 +1,7 @@ +#!/bin/bash +############################################################# +## DISPLAY SERVER LOG FILES +############################################################# +## 12345 API ~/.zen/tmp/_12345.log +############################################################# +tail -f ~/.zen/tmp/_12345.log -n 200 diff --git a/show_server.log.sh b/show_server.log.sh new file mode 100755 index 000000000..19402a718 --- /dev/null +++ b/show_server.log.sh @@ -0,0 +1,11 @@ +#!/bin/bash +############################################################# +## DISPLAY SERVER LOG FILES +############################################################# +## 1234 API ~/.zen/tmp/12345.log +## 12345 API ~/.zen/tmp/_12345.log +############################################################# + +[[ ! $(which multitail) ]] && sudo apt install multitail + +multitail -s 2 -I ~/.zen/tmp/12345.log ~/.zen/tmp/_12345.log diff --git a/start.sh b/start.sh index 01cd4fdb1..8178c51e3 100755 --- a/start.sh +++ b/start.sh @@ -11,10 +11,12 @@ echo "ASTROPORT.ONE START @@@@@@@@@@@@@@@@@@ $USER@$HOSTNAME @@@@@@@@@@@@@@@@@@" +RUNLEVEL=$1 +[[ ! $RUNLEVEL ]] && RUNLEVEL="ON" -echo "cron_VRFY.sh ON" +echo "cron_VRFY.sh $RUNLEVEL" ################################################### -${MY_PATH}/tools/cron_VRFY.sh ON +${MY_PATH}/tools/cron_VRFY.sh $RUNLEVEL echo "ipfs start" sudo systemctl start ipfs sleep 5 @@ -23,6 +25,8 @@ sudo systemctl start astroport echo "g1billet start" sudo systemctl start g1billet +########################################## NO systemctl mode ######## +### OLD METHOD USING SELF PID #~ echo "(RE)STARTING 12345.sh" #~ ################################################### #~ [[ -s ~/.zen/.pid ]] && kill -9 $(cat ~/.zen/.pid) \ diff --git a/templates/UPlanetSector/index.html b/templates/UPlanetSector/index.html index 72ab69904..bb45c45b9 100644 --- a/templates/UPlanetSector/index.html +++ b/templates/UPlanetSector/index.html @@ -160,6 +160,7 @@ iframe { | _ | | | + | _ | \",\n \"title\": \"$:/plugins/astroport/lightbeams/HomeFeed\",\n \"modified\": \"20221204165539922\",\n \"modifier\": \"Boris\",\n \"tags\": \"\"\n },\n \"$:/plugins/astroport/lightbeams/homefeed.js\": {\n \"created\": \"20221130144350767\",\n \"creator\": \"Boris\",\n \"text\": \"/*\\\\\\ntitle: $:/plugins/astroport/lightbeams/homefeed.js\\ntype: application/javascript\\nmodule-type: macro\\nMacro to return the user's homefeed\\n\\\\*/\\n\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\n/*\\nInformation about this macro\\n*/\\n\\nexports.name = \\\"homefeed\\\";\\n\\nexports.params = [\\n];\\n\\n\\nexports.run = async function() {\\n\\n\\t// const IpfsController = require('$:/plugins/ipfs/ipfs-controller.js').IpfsController\\n\\t// let gateway = IpfsController.getIpfsDefaultGateway()\\n\\n\\tlet gateway = $tw.wiki.getTiddler($tw.wiki.getTiddler('$:/ipfs/saver/gateway').fields.text).fields.text\\n\\n\\tlet subscriptions = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/state/subscriptions')\\n\\n\\tlet subs = subscriptions.fields.text.split(\\\"\\\\n\\\")\\n\\n\\tlet posts = []\\n\\n\\tfor (const sub of subs) {\\n\\n\\t\\tlet url = gateway + '/ipns/' + sub\\n\\n\\t\\tlet reponse = await fetch(url)\\n\\n\\t\\tlet jsonFeed = await reponse.json()\\n\\n\\t\\t// console.log(jsonFeed)\\n\\t\\t// let feed = JSON.parse(jsonFeed)\\n\\n\\t\\tfor (const entry of jsonFeed) {\\n\\n\\t\\t\\tposts.push(entry)\\n\\t\\t}\\n\\t}\\n\\n\\n\\tlet sortPosts = function (a, b) {\\n\\n\\t\\treturn a.created > b.created ? -1 : 1;\\n\\t}\\n\\n\\tposts.sort(sortPosts)\\n\\n\\tconsole.log(posts)\\n\\t\\n\\n\\tlet html = '';\\n\\n\\tfor (const entry of posts) {\\n\\n\\t\\thtml += `\\n\\t\\t
\\n\\t\\t\\t

` + entry.title + `

\\n\\n\\t\\t\\t
`;\\n\\n\\t\\t\\tswitch (entry.type) {\\n\\n\\t\\t\\t\\tcase 'video/mp4':\\n\\n\\t\\t\\t\\t\\tif (entry._canonical_uri) {\\n\\n\\t\\t\\t\\t\\t\\thtml += `\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t`\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\tcase 'image/png':\\n\\n\\t\\t\\t\\t\\tif (entry._canonical_uri) {\\n\\n\\t\\t\\t\\t\\t\\thtml += `\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t`\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\tcase 'image/jpeg':\\n\\n\\t\\t\\t\\t\\tif (entry._canonical_uri) {\\n\\n\\t\\t\\t\\t\\t\\thtml += `\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t`\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\tcase 'image/gif':\\n\\n\\t\\t\\t\\t\\tif (entry._canonical_uri) {\\n\\n\\t\\t\\t\\t\\t\\thtml += `\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t`\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\tcase 'text/plain':\\n\\n\\t\\t\\t\\t\\thtml += entry.text\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t}\\n\\n\\t\\t\\thtml += `\\n\\t\\t\\t
\\n\\t\\t\\t`\\n\\n\\t\\t\\tlet params = ''\\n\\t\\t\\tparams += !(entry._canonical_uri) ? '' : ' _canonical_uri=\\\"' + entry._canonical_uri +'\\\"'\\n\\n\\t\\t\\thtml +=`\\n\\t\\t\\t
\\n\\t\\t\\t\\t<$button>\\n\\t\\t\\t\\t\\t<$action-createtiddler \\n\\t\\t\\t\\t\\t\\t$basetitle=\\\"`+ entry.title +`\\\" \\n\\t\\t\\t\\t\\t\\ttype=\\\"`+ entry.type +`\\\" \\n\\t\\t\\t\\t\\t\\ttags=\\\"`+ entry.tags +`\\\" \\n\\t\\t\\t\\t\\t\\ttext=\\\"`+ entry.text +`\\\" \\n\\t\\t\\t\\t\\t\\t`+ params + `>\\n\\t\\t\\t\\t\\t\\t<$action-navigate $to=<>/>\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tAjouter à mon Tiddly\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t\\t`\\n\\t}\\n\\n\\t// console.log('html:', html)\\n\\tlet feedTiddlerTitle = '$:/plugins/astroport/lightbeams/myFeed'\\n\\tlet feedtiddlerFields = {title: feedTiddlerTitle, text: html}\\n\\n\\tlet feedTiddler = $tw.wiki.getTiddler(feedTiddlerTitle)\\n\\n\\tif (feedTiddler !== undefined) {\\n\\n\\t\\tfeedTiddler = $tw.utils.updateTiddler({\\n\\t\\t\\ttiddler: feedTiddler,\\n\\t\\t\\tfields: feedtiddlerFields\\n\\t\\t})\\n\\n\\t\\t$tw.wiki.addTiddler(feedTiddler)\\n\\n\\t} else {\\n\\n\\t\\t$tw.wiki.addTiddler(new $tw.Tiddler(feedtiddlerFields))\\n\\t}\\n\\t\\n\\treturn true\\n\\n};\\n\\n})();\",\n \"tags\": \"$:/isIpfs $:/isExported\",\n \"title\": \"$:/plugins/astroport/lightbeams/homefeed.js\",\n \"modified\": \"20221205171128263\",\n \"modifier\": \"Boris\",\n \"type\": \"application/javascript\",\n \"module-type\": \"macro\",\n \"_export_uri\": \"/ipfs/bafybeih4w3nhjie4kk4nftf5c3qoogcx5k4uy33vjcko2mdwsnw4cbmxpa\"\n },\n \"$:/plugins/astroport/lightbeams/lightbeams-action.js\": {\n \"created\": \"20221205102310210\",\n \"creator\": \"Boris\",\n \"text\": \"/*\\\\\\ntitle: $:/plugins/astroport/lightbeams/lightbeams-action.js\\ntype: application/javascript\\ntags: $:/ipfs/core\\nmodule-type: library\\n\\nLightbeams Action\\n\\n\\\\*/\\n\\n;(function () {\\n\\t/*jslint node: true, browser: true */\\n\\t/*global $tw: false */\\n\\t'use strict'\\n\\n\\tconst fileProtocol = 'file:'\\n\\tconst ipfsKeyword = 'ipfs'\\n\\tconst ipnsKeyword = 'ipns'\\n\\n\\tconst name = 'lightbeams-action'\\n\\n\\tvar LightbeamsAction = function () {\\n\\t\\tthis.once = false\\n\\t\\tthis.console = false\\n\\t\\tthis.ipnsName = $tw.utils.getIpfsIpnsName()\\n\\t\\tthis.ipnsKey = $tw.utils.getIpfsIpnsKey()\\n\\t\\tthis.ipnsName_Lightbeam = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tthis.ipnsKey_Lightbeam = $tw.utils.getIpfsIpnsKey_Lightbeam()\\n\\t}\\n\\n\\tLightbeamsAction.prototype.getLogger = function () {\\n\\t\\treturn window.log.getLogger(name)\\n\\t}\\n\\n\\tLightbeamsAction.prototype.init = function () {\\n\\t\\t// Init once\\n\\t\\tif (this.once) {\\n\\t\\t\\treturn\\n\\t\\t}\\n\\t\\tconst self = this\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-publish', async function (event) {\\n\\t\\t\\treturn await self.handlePublishToIpns_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t// Buttons in control panel\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-rename', async function (event) {\\n\\t\\t\\treturn await self.handleRenameIpnsName_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-generate', async function (event) {\\n\\t\\t\\treturn await self.handleGenerateIpnsKey_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-remove', async function (event) {\\n\\t\\t\\treturn await self.handleRemoveIpnsKey_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-fetch', async function (event) {\\n\\t\\t\\treturn await self.handleFetchIpnsKey_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t$tw.rootWidget.addEventListener('tm-lightbeam-ipns-resolve-and-open', async function (\\n\\t\\t\\tevent\\n\\t\\t) {\\n\\t\\t\\treturn await self.handleResolveIpnsKeyAndOpen_Lightbeam(event)\\n\\t\\t})\\n\\n\\t\\t// Init once\\n\\t\\tthis.once = true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handlePublishToIpns_Lightbeam = async function (event) {\\n\\t\\tvar cid = null\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar wikiCid = null\\n\\t\\tvar wikiIpnsKey = null\\n\\t\\tconst self = this\\n\\t\\tconst wiki = $tw.ipfs.getDocumentUrl()\\n\\t\\tif (wiki.protocol === fileProtocol) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPFS identifier...')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tif (wiki.pathname === '/') {\\n\\t\\t\\t$tw.utils.alert(name, 'Unknown IPFS identifier...')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar { cid, ipnsKey } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\tfalse,\\n\\t\\t\\t\\t`/ipns/${ipnsName}`\\n\\t\\t\\t)\\n\\t\\t\\tvar { cid: wikiCid, ipnsKey: wikiIpnsKey } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\twiki\\n\\t\\t\\t)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tif (wikiIpnsKey !== null && wikiIpnsKey === ipnsKey) {\\n\\t\\t\\t$tw.utils.alert(name, 'Default IPNS key matches current IPNS key....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\t$tw.utils.alert(name, 'Publishing IPNS name: ' + ipnsName)\\n\\t\\t$tw.ipfs\\n\\t\\t\\t.publishIpnsName(wikiCid, ipnsKey, ipnsName)\\n\\t\\t\\t.then(data => {\\n\\t\\t\\t\\t$tw.ipfs.requestToUnpin(cid)\\n\\t\\t\\t\\t$tw.utils.alert(name, 'Successfully Published IPNS name: ' + ipnsName)\\n\\t\\t\\t})\\n\\t\\t\\t.catch(error => {\\n\\t\\t\\t\\tself.getLogger().error(error)\\n\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t})\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handleRenameIpnsName_Lightbeam = async function (event) {\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tif (this.ipnsName == null || this.ipnsName === ipnsName) {\\n\\t\\t\\t$tw.utils.alert(name, 'Nothing to rename....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar { ipnsKey } = await $tw.ipfs.renameIpnsName(this.ipnsName_Lightbeam, ipnsName)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\t\\tif (tiddler !== undefined && this.ipnsKey !== ipnsKey) {\\n\\t\\t\\ttiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: ipnsKey }]\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\t\\t}\\n\\t\\tthis.ipnsKey_Lightbeam = ipnsKey\\n\\t\\tthis.ipnsName_Lightbeam = ipnsName\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handleGenerateIpnsKey_Lightbeam = async function (event) {\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar ipnsKey = await $tw.ipfs.generateIpnsKey(ipnsName)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\n\\t\\tif (tiddler === undefined) {\\n\\n\\t\\t\\ttiddler = new $tw.Tiddler({\\n\\t\\t\\t\\ttitle: '$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key',\\n\\t\\t\\t\\ttext: ipnsKey\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\n\\t\\t} else if (this.ipnsKey_Lightbeam !== ipnsKey) {\\n\\t\\t\\ttiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: ipnsKey }]\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\t\\t}\\n\\t\\tthis.ipnsKey_Lightbeam = ipnsKey\\n\\t\\tthis.ipnsName_Lightbeam = ipnsName\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handleRemoveIpnsKey_Lightbeam = async function (event) {\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar normalizedUrl = null\\n\\t\\tconst self = this\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar { ipnsKey, normalizedUrl } = await $tw.ipfs.getIpnsIdentifiers(\\n\\t\\t\\t\\tipnsName\\n\\t\\t\\t)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\t// Async\\n\\t\\t$tw.ipfs\\n\\t\\t\\t.requestToUnpin(null, ipnsKey, normalizedUrl)\\n\\t\\t\\t.then(data => {\\n\\t\\t\\t\\t$tw.ipfs\\n\\t\\t\\t\\t\\t.removeIpnsKey(ipnsName)\\n\\t\\t\\t\\t\\t.then(data => {\\n\\t\\t\\t\\t\\t\\t$tw.utils.alert(name, 'Succesfully removed Ipns key....')\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t\\t\\t.catch(error => {\\n\\t\\t\\t\\t\\t\\tself.getLogger().error(error)\\n\\t\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t})\\n\\t\\t\\t})\\n\\t\\t\\t.catch(error => {\\n\\t\\t\\t\\tself.getLogger().error(error)\\n\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t})\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name')\\n\\t\\tif (tiddler !== undefined) {\\n\\t\\t\\tconst updatedTiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: '' }]\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(updatedTiddler)\\n\\t\\t}\\n\\t\\ttiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\t\\tif (tiddler !== undefined) {\\n\\t\\t\\tconst updatedTiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: '' }]\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(updatedTiddler)\\n\\t\\t}\\n\\t\\tthis.ipnsName_Lightbeam = null\\n\\t\\tthis.ipnsKey_Lightbeam = null\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handleFetchIpnsKey_Lightbeam = async function (event) {\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name for JSON....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar { ipnsKey } = await $tw.ipfs.getIpnsIdentifiers(ipnsName)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\n\\t\\tif (tiddler === undefined) {\\n\\n\\t\\t\\ttiddler = new $tw.Tiddler({\\n\\t\\t\\t\\ttitle: '$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key',\\n\\t\\t\\t\\ttext: ipnsKey\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\n\\t\\t} else if (this.ipnsKey !== ipnsKey) {\\n\\n\\t\\t\\ttiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: ipnsKey }]\\n\\t\\t\\t})\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\t\\t\\tthis.ipnsKey_Lightbeam = ipnsKey\\n\\t\\t}\\n\\n\\t\\tthis.ipnsName_Lightbeam = ipnsName\\n\\t\\t\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.handleResolveIpnsKeyAndOpen_Lightbeam = async function (event) {\\n\\t\\tvar ipnsKey = null\\n\\t\\tvar resolvedUrl = null\\n\\t\\tvar ipnsName = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\t\\tipnsName =\\n\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t? null\\n\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\tif (ipnsName == null) {\\n\\t\\t\\t$tw.utils.alert(name, 'Undefined IPNS name....')\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\tvar { ipnsKey, resolvedUrl } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\tfalse,\\n\\t\\t\\t\\t`/${ipnsKeyword}/${ipnsName}`\\n\\t\\t\\t)\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\t\\tif (tiddler !== undefined && this.ipnsKey_Lightbeam !== ipnsKey) {\\n\\t\\t\\ttiddler = $tw.utils.updateTiddler({\\n\\t\\t\\t\\ttiddler: tiddler,\\n\\t\\t\\t\\tfields: [{ key: 'text', value: ipnsKey }]\\n\\t\\t\\t})\\n\\t\\t\\tthis.ipnsKey_Lightbeam = ipnsKey\\n\\t\\t\\t$tw.wiki.addTiddler(tiddler)\\n\\t\\t}\\n\\t\\tthis.ipnsName_Lightbeam = ipnsName\\n\\t\\twindow.open(resolvedUrl.toString(), '_blank', 'noopener,noreferrer')\\n\\t\\treturn true\\n\\t}\\n\\n\\tLightbeamsAction.prototype.exportTiddlersAsJson = async function (\\n\\t\\texportFilter,\\n\\t\\texportUri,\\n\\t\\tspaces\\n\\t) {\\n\\t\\tvar tiddlers = $tw.wiki.filterTiddlers(exportFilter)\\n\\t\\tvar spaces =\\n\\t\\t\\tspaces === undefined ? $tw.config.preferences.jsonSpaces : spaces\\n\\t\\tvar data = []\\n\\t\\t// Process Tiddlers\\n\\t\\tfor (var t = 0; t < tiddlers.length; t++) {\\n\\t\\t\\t// Load Tiddler\\n\\t\\t\\tvar tiddler = $tw.wiki.getTiddler(tiddlers[t])\\n\\t\\t\\t// Process\\n\\t\\t\\tvar fields = {}\\n\\t\\t\\t// Process fields\\n\\t\\t\\tfor (var field in tiddler.fields) {\\n\\t\\t\\t\\t// Discard\\n\\t\\t\\t\\tif (field === 'tags' || field === '_export_uri') {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tvar ipnsKey = null\\n\\t\\t\\t\\tvar fieldValue = tiddler.getFieldString(field)\\n\\t\\t\\t\\tif (field === '_canonical_uri' && fieldValue === exportUri) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (field === '_import_uri' && fieldValue === exportUri) {\\n\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\tvar { ipnsKey } = await $tw.ipfs.resolveUrl(false, false, fieldValue)\\n\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\treturn null\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// IPNS\\n\\t\\t\\t\\tif (ipnsKey !== null) {\\n\\t\\t\\t\\t\\tfieldValue = `/${ipnsKeyword}/${ipnsKey}`\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Store field\\n\\t\\t\\t\\tfields[field] = fieldValue\\n\\t\\t\\t}\\n\\t\\t\\t// Process tags\\n\\t\\t\\tvar tags = tiddler.fields.tags\\n\\t\\t\\tif (tags !== undefined && tags !== null) {\\n\\t\\t\\t\\tvar tagValues = ''\\n\\t\\t\\t\\tfor (var i = 0; i < tags.length; i++) {\\n\\t\\t\\t\\t\\tconst tag = tags[i]\\n\\t\\t\\t\\t\\t// Discard\\n\\t\\t\\t\\t\\tif (tag === '$:/isExported' || tag === '$:/isImported') {\\n\\t\\t\\t\\t\\t\\tcontinue\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\ttagValues =\\n\\t\\t\\t\\t\\t\\t(tagValues.length === 0 ? '[[' : `${tagValues} [[`) + `${tag}]]`\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Store tags\\n\\t\\t\\t\\tfields.tags = tagValues\\n\\t\\t\\t}\\n\\t\\t\\t// Store\\n\\t\\t\\tdata.push(fields)\\n\\t\\t}\\n\\t\\treturn JSON.stringify(data, null, spaces)\\n\\t}\\n\\n\\texports.LightbeamsAction = LightbeamsAction\\n})()\\n\",\n \"title\": \"$:/plugins/astroport/lightbeams/lightbeams-action.js\",\n \"type\": \"application/javascript\",\n \"tags\": \"$:/ipfs/core\",\n \"module-type\": \"library\",\n \"modified\": \"20221206122158841\",\n \"modifier\": \"Boris\"\n },\n \"$:/plugins/astroport/lightbeams/lightbeams-default.js\": {\n \"created\": \"20221205103617913\",\n \"creator\": \"Boris\",\n \"text\": \"/*\\\\\\ntitle: $:/plugins/astroport/lightbeams/saver/lightbeams-default.js\\ntype: application/javascript\\ntags: $:/ipfs/core\\nmodule-type: utils\\n\\nLightbeams Default\\n\\n\\\\*/\\n\\n;(function () {\\n\\t/*jslint node: true, browser: true */\\n\\t/*global $tw: false */\\n\\t'use strict'\\n\\n\\t/*\\n\\t * Retrieve ipfs saver ipns name with default value if applicable\\n\\t */\\n\\texports.getIpfsIpnsName_Lightbeam = function () {\\n\\t\\tvar ipnsName_Lightbeam = null\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-name')\\n\\t\\tif (tiddler !== undefined && tiddler !== null) {\\n\\t\\t\\tvar text = tiddler.getFieldString('text')\\n\\t\\t\\ttext =\\n\\t\\t\\t\\ttext === undefined || text == null || text.trim() === ''\\n\\t\\t\\t\\t\\t? null\\n\\t\\t\\t\\t\\t: text.trim()\\n\\t\\t\\tif (text !== null) {\\n\\t\\t\\t\\tipnsName_Lightbeam = text\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\treturn ipnsName_Lightbeam\\n\\t}\\n\\n\\t/*\\n\\t * Retrieve ipfs saver ipns key with default value if applicable\\n\\t */\\n\\texports.getIpfsIpnsKey_Lightbeam = function () {\\n\\t\\tvar ipnsKey_Lightbeam = null\\n\\t\\tvar tiddler = $tw.wiki.getTiddler('$:/plugins/astroport/lightbeams/saver/ipns/lightbeam-key')\\n\\t\\tif (tiddler !== undefined && tiddler !== null) {\\n\\t\\t\\tvar text = tiddler.getFieldString('text')\\n\\t\\t\\ttext =\\n\\t\\t\\t\\ttext === undefined || text == null || text.trim() === ''\\n\\t\\t\\t\\t\\t? null\\n\\t\\t\\t\\t\\t: text.trim()\\n\\t\\t\\tif (text !== null) {\\n\\t\\t\\t\\tipnsKey_Lightbeam = text\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\treturn ipnsKey_Lightbeam\\n\\t}\\n})()\\n\",\n \"title\": \"$:/plugins/astroport/lightbeams/lightbeams-default.js\",\n \"type\": \"application/javascript\",\n \"tags\": \"$:/ipfs/core\",\n \"module-type\": \"utils\",\n \"modified\": \"20221205142532415\",\n \"modifier\": \"Boris\"\n },\n \"$:/plugins/astroport/lightbeams/lightbeams-saver.js\": {\n \"created\": \"20221205142557663\",\n \"creator\": \"Boris\",\n \"text\": \"/*\\\\\\ntitle: $:/plugins/astroport/lightbeams/lightbeams-saver.js\\ntype: application/javascript\\ntags: $:/ipfs/core\\nmodule-type: saver\\n\\nLightbeam Saver\\n\\n\\\\*/\\n\\n;(function () {\\n\\t/*jslint node: true, browser: true */\\n\\t/*global $tw: false */\\n\\t'use strict'\\n\\n\\tconst log = require('$:/plugins/ipfs/loglevel/loglevel.js')\\n\\n\\tconst LightbeamsAction = require('$:/plugins/astroport/lightbeams/lightbeams-action.js').LightbeamsAction\\n\\n\\tconst ensKeyword = 'ens'\\n\\tconst ipfsKeyword = 'ipfs'\\n\\tconst ipnsKeyword = 'ipns'\\n\\n\\tconst name = 'lightbeam-saver'\\n\\n\\t/*\\n\\t * Select the appropriate saver module and set it up\\n\\t */\\n\\tvar LightbeamSaver = function (wiki) {\\n\\t\\tthis.wiki = wiki\\n\\t\\tthis.apiUrl = null\\n\\t\\tthis.ipfsProvider = null\\n\\t\\t// Loglevel\\n\\t\\tif (window.log === undefined || window.log == null) {\\n\\t\\t\\t// Init\\n\\t\\t\\twindow.log = log.noConflict()\\n\\t\\t\\tif ($tw.utils.getIpfsVerbose()) {\\n\\t\\t\\t\\tlog.setLevel('info', false)\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tlog.setLevel('warn', false)\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\tthis.lightbeamsAction = new LightbeamsAction()\\n\\t\\t// Init\\n\\t\\tthis.lightbeamsAction.init()\\n\\t}\\n\\n\\tLightbeamSaver.prototype.getLogger = function () {\\n\\t\\treturn window.log.getLogger(name)\\n\\t}\\n\\n\\tLightbeamSaver.prototype.save = async function (text, method, callback, options) {\\n\\t\\t\\n\\t\\tconsole.log('Entering Lightbeams saver…')\\n\\n\\t\\tif ($tw.saverHandler.isDirty() === false) {\\n\\t\\t\\treturn false\\n\\t\\t}\\n\\t\\ttry {\\n\\t\\t\\t\\n\\t\\t\\t$tw.wiki.deleteTiddler('$:/plugins/astroport/lightbeams/myFeed')\\n\\n\\t\\t\\tlet daysLimit = 14\\n\\t\\t\\tlet maxItemsNb = 20\\n\\n\\t\\t\\tlet now = new Date()\\n\\t\\t\\tlet dateLimit = new Date()\\n\\n\\t\\t\\tdateLimit.setDate(now.getDate() - daysLimit)\\n\\t\\t\\t\\n\\t\\t\\tlet dateLimitStr = \\n\\t\\t\\t\\t dateLimit.getFullYear().toString() \\n\\t\\t\\t\\t+ (dateLimit.getMonth() + 1).toString().padStart(2,0)\\n\\t\\t\\t\\t+ (dateLimit.getDate() + 1).toString().padStart(2,0)\\n\\t\\t\\t\\t+ dateLimit.getHours().toString().padStart(2,0)\\n\\t\\t\\t\\t+ dateLimit.getMinutes().toString().padStart(2,0)\\n\\t\\t\\t\\t+ dateLimit.getSeconds().toString().padStart(2,0)\\n\\t\\t\\t\\t+ dateLimit.getMilliseconds().toString().padStart(3,0)\\n\\n\\t\\t\\tlet jsonFeed = $tw.wiki.getTiddlersAsJson('[all[tiddlers]!is[system]!sort[created]] :filter[get[created]compare:string:gteq['+ dateLimitStr +']] +[limit['+ maxItemsNb +']]')\\n\\t\\t\\tlet ipnsKey_Lightbeam = $tw.utils.getIpfsIpnsKey_Lightbeam()\\n\\t\\t\\tlet ipnsName_Lightbeam = $tw.utils.getIpfsIpnsName_Lightbeam()\\n\\n\\t\\t\\tvar cid = null\\n\\t\\t\\tvar ipnsCid = null\\n\\t\\t\\tvar ipnsKey = null\\n\\t\\t\\tvar ipnsName = null\\n\\t\\t\\tvar ensDomain = null\\n\\t\\t\\tvar ensCid = null\\n\\t\\t\\tvar options = options || {}\\n\\t\\t\\tconst wiki = $tw.ipfs.getDocumentUrl()\\n\\t\\t\\tconst base = $tw.ipfs.getIpfsBaseUrl()\\n\\t\\t\\tconst nextWiki = $tw.ipfs.getUrl(wiki)\\n\\t\\t\\tnextWiki.protocol = base.protocol\\n\\t\\t\\tnextWiki.host = base.host\\n\\t\\t\\tnextWiki.port = base.port\\n\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tvar { cid, ipnsKey } = await $tw.ipfs.resolveUrl(false, true, wiki)\\n\\t\\t\\t\\tif (cid != null) {\\n\\t\\t\\t\\t\\tawait $tw.ipfs.requestToUnpin(cid)\\n\\t\\t\\t\\t}\\n\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t\\tcallback(error.message)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t}\\n\\t\\t\\t// IPNS\\n\\t\\t\\tif (ipnsKey !== null || $tw.utils.getIpfsProtocol() === ipnsKeyword) {\\n\\t\\t\\t\\t// Resolve current IPNS\\n\\t\\t\\t\\t/*\\n\\t\\t\\t\\tif (ipnsKey !== null) {\\n\\t\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\t\\tvar { cid: ipnsCid, ipnsName } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\t\\t\\t\\tfalse,\\n\\t\\t\\t\\t\\t\\t\\twiki\\n\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t*/\\n\\t\\t\\t\\t\\t// Default IPNS\\n\\t\\t\\t\\t\\tipnsKey = $tw.utils.getIpfsIpnsKey()\\n\\t\\t\\t\\t\\tipnsKey =\\n\\t\\t\\t\\t\\t\\tipnsKey === undefined || ipnsKey == null || ipnsKey.trim() === ''\\n\\t\\t\\t\\t\\t\\t\\t? null\\n\\t\\t\\t\\t\\t\\t\\t: ipnsKey.trim()\\n\\t\\t\\t\\t\\tipnsName = $tw.utils.getIpfsIpnsName()\\n\\t\\t\\t\\t\\tipnsName =\\n\\t\\t\\t\\t\\t\\tipnsName === undefined || ipnsName == null || ipnsName.trim() === ''\\n\\t\\t\\t\\t\\t\\t\\t? null\\n\\t\\t\\t\\t\\t\\t\\t: ipnsName.trim()\\n\\t\\t\\t\\t\\tif (ipnsKey == null && ipnsName == null) {\\n\\t\\t\\t\\t\\t\\tcallback(null, 'Unknown default IPNS identifiers...')\\n\\t\\t\\t\\t\\t\\treturn true\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tthis.getLogger().info('Processing default IPNS identifiers...')\\n\\t\\t\\t\\t\\tvar identifier = ipnsKey\\n\\t\\t\\t\\t\\tif (identifier == null) {\\n\\t\\t\\t\\t\\t\\tidentifier = ipnsName\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\t\\tvar { cid: ipnsCid, ipnsKey_osef, ipnsName_osef } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\t\\t\\t\\ttrue,\\n\\t\\t\\t\\t\\t\\t\\tfalse,\\n\\t\\t\\t\\t\\t\\t\\t`/${ipnsKeyword}/${identifier}`\\n\\t\\t\\t\\t\\t\\t)\\n\\t\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t}\\n\\n\\n\\t\\t\\t\\t\\t// var identifier_Lightbeam = ipnsKey_Lightbeam\\n\\t\\t\\t\\t\\t// if (identifier_Lightbeam == null) {\\n\\t\\t\\t\\t\\t// \\tidentifier_Lightbeam = ipnsName_Lightbeam\\n\\t\\t\\t\\t\\t// }\\n\\t\\t\\t\\t\\t// \\n\\t\\t\\t\\t\\t// try {\\n\\t\\t\\t\\t\\t// \\tvar { cid: ipnsCid_Lightbeam, ipnsKey_osef, ipnsName_osef } = await $tw.ipfs.resolveUrl(\\n\\t\\t\\t\\t\\t// \\t\\ttrue,\\n\\t\\t\\t\\t\\t// \\t\\tfalse,\\n\\t\\t\\t\\t\\t// \\t\\t`/${ipnsKeyword}/${identifier_Lightbeam}`\\n\\t\\t\\t\\t\\t// \\t)\\n\\t\\t\\t\\t\\t// } catch (error) {\\n\\t\\t\\t\\t\\t// \\tthis.getLogger().error(error)\\n\\t\\t\\t\\t\\t// \\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t// }\\n\\n\\t\\t\\t\\t//}\\n\\n\\t\\t\\t\\tif (ipnsCid != null) {\\n\\t\\t\\t\\t\\tawait $tw.ipfs.requestToUnpin(ipnsCid)\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// if (ipnsCid_Lightbeam != null) {\\n\\t\\t\\t\\t// \\tawait $tw.ipfs.requestToUnpin(ipnsCid_Lightbeam)\\n\\t\\t\\t\\t// }\\n\\t\\t\\t}\\n\\t\\t\\t// ENS\\n\\t\\t\\tif ($tw.utils.getIpfsProtocol() === ensKeyword) {\\n\\t\\t\\t\\tensDomain = $tw.utils.getIpfsEnsDomain()\\n\\t\\t\\t\\tif (ensDomain == null) {\\n\\t\\t\\t\\t\\tcallback(null, 'Undefined ENS domain...')\\n\\t\\t\\t\\t\\treturn true\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tvar { cid: ensCid } = await $tw.ipfs.resolveUrl(false, true, ensDomain)\\n\\t\\t\\t\\tif (ensCid != null) {\\n\\t\\t\\t\\t\\tawait $tw.ipfs.requestToUnpin(ensCid)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// Upload current document\\n\\t\\t\\tthis.getLogger().info(`Uploading wiki: ${text.length} bytes`)\\n\\t\\t\\t// Add\\n\\t\\t\\t// $tw.utils.alert(name, `Coucou avant ajout`)\\n\\t\\t\\tconst { added } = await $tw.ipfs.addToIpfs(text)\\n\\t\\t\\tconst { added : added_Lightbeam } = await $tw.ipfs.addToIpfs(jsonFeed)\\n\\n\\n\\t\\t\\t// $tw.utils.alert(name, `Coucou après ajout`)\\n\\t\\t\\t// Default next\\n\\t\\t\\tnextWiki.pathname = `/${ipfsKeyword}/${added}`\\n\\t\\t\\t// Pin\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tawait $tw.ipfs.pinToIpfs(added)\\n\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\tthis.getLogger().warn(error)\\n\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t}\\n\\t\\t\\t// Pin Lightbeam\\n\\t\\t\\t// try {\\n\\t\\t\\t// \\tawait $tw.ipfs.pinToIpfs(added_Lightbeam)\\n\\t\\t\\t// } catch (error) {\\n\\t\\t\\t// \\tthis.getLogger().warn(error)\\n\\t\\t\\t// \\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t// }\\n\\n\\t\\t\\t// Publish to IPNS\\n\\t\\t\\tif (ipnsKey !== null && ipnsName !== null) {\\n\\t\\t\\t\\t$tw.utils.alert(name, `Publishing IPNS names:
- ${ipnsName}
- ${ipnsName_Lightbeam}`)\\n\\t\\t\\t\\ttry {\\n\\n\\t\\t\\t\\t\\tawait $tw.ipfs.publishIpnsName(added_Lightbeam, ipnsKey_Lightbeam, ipnsName_Lightbeam)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, `Successfully Published IPNS name: ${ipnsName_Lightbeam}`)\\n\\n\\t\\t\\t\\t\\tawait $tw.ipfs.publishIpnsName(added, ipnsKey, ipnsName)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, `Successfully Published IPNS name: ${ipnsName}`)\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tnextWiki.pathname = `/${ipnsKeyword}/${ipnsKey}`\\n\\n\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\tthis.getLogger().warn(error)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t$tw.ipfs.requestToPin(ipnsCid)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// Publish to ENS\\n\\t\\t\\tif ($tw.utils.getIpfsProtocol() === ensKeyword) {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, `Publishing to ENS: ${ensDomain}`)\\n\\t\\t\\t\\t\\tawait $tw.ipfs.setEns(ensDomain, added)\\n\\t\\t\\t\\t\\t// const chainId = $tw.ipfs.getChainId()\\n\\t\\t\\t\\t\\t// if (chainId !== null && chainId === 1) {\\n\\t\\t\\t\\t\\t// nextWiki.protocol = 'https:'\\n\\t\\t\\t\\t\\t// nextWiki.host = ensDomain\\n\\t\\t\\t\\t\\t// } else {\\n\\t\\t\\t\\t\\tconst { resolvedUrl } = await $tw.ipfs.resolveEns(ensDomain)\\n\\t\\t\\t\\t\\tnextWiki.protocol = resolvedUrl.protocol\\n\\t\\t\\t\\t\\tnextWiki.host = resolvedUrl.host\\n\\t\\t\\t\\t\\tnextWiki.pathname = resolvedUrl.pathname\\n\\t\\t\\t\\t\\t// }\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, `Successfully published to ENS: ${ensDomain}`)\\n\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\tthis.getLogger().warn(error)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t$tw.ipfs.requestToPin(ensCid)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t$tw.ipfs.pin = []\\n\\t\\t\\t// Unpin\\n\\t\\t\\tif ($tw.utils.getIpfsUnpin()) {\\n\\t\\t\\t\\tfor (var i in $tw.ipfs.unpin) {\\n\\t\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\t\\tconst unpin = $tw.ipfs.unpin[i]\\n\\t\\t\\t\\t\\t\\tawait $tw.ipfs.unpinFromIpfs(unpin)\\n\\t\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\t\\tthis.getLogger().warn(error)\\n\\t\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t$tw.ipfs.unpin = []\\n\\t\\t\\t// Pin\\n\\t\\t\\tfor (var i in $tw.ipfs.pin) {\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\tconst pin = $tw.ipfs.pin[i]\\n\\t\\t\\t\\t\\tawait $tw.ipfs.pinToIpfs(pin)\\n\\t\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\t\\tthis.getLogger().warn(error)\\n\\t\\t\\t\\t\\t$tw.utils.alert(name, error.message)\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\tcallback(null)\\n\\t\\t\\tif (nextWiki.host !== wiki.host || nextWiki.pathname !== wiki.pathname) {\\n\\t\\t\\t\\twindow.location.assign(nextWiki.toString())\\n\\t\\t\\t}\\n\\t\\t} catch (error) {\\n\\t\\t\\tthis.getLogger().error(error)\\n\\t\\t\\tcallback(error.message)\\n\\t\\t\\treturn true\\n\\t\\t}\\n\\t\\tcallback(null)\\n\\t\\treturn true\\n\\t}\\n\\n\\t/*\\n\\t * Information about this saver\\n\\t */\\n\\tLightbeamSaver.prototype.info = {\\n\\t\\tname: 'Astroport :: Lightbeams',\\n\\t\\tpriority: 3100,\\n\\t\\tcapabilities: ['save']\\n\\t}\\n\\n\\t/*\\n\\t * Static method that returns true if this saver is capable of working\\n\\t */\\n\\texports.canSave = function (wiki) {\\n\\t\\treturn true\\n\\t}\\n\\n\\t/*\\n\\t * Create an instance of this saver\\n\\t */\\n\\texports.create = function (wiki) {\\n\\t\\treturn new LightbeamSaver(wiki)\\n\\t}\\n})()\\n\",\n \"title\": \"$:/plugins/astroport/lightbeams/lightbeams-saver.js\",\n \"type\": \"application/javascript\",\n \"tags\": \"$:/ipfs/core\",\n \"module-type\": \"saver\",\n \"modified\": \"20221206123150589\",\n \"modifier\": \"Boris\"\n },\n \"$:/plugins/astroport/lightbeams/Buttons/Homefeed\": {\n \"created\": \"20221130140514338\",\n \"creator\": \"Boris\",\n \"text\": \"\\\\whitespace trim\\n\\n<$button tooltip=\\\"Aller au fil d'actualité\\\" class=<> selectedClass=\\\"tc-selected\\\">\\n<$list filter=\\\"[match[yes]]\\\">\\n{{$:/core/images/storyview-classic}}\\n\\n\\n<$list filter=\\\"[match[yes]]\\\">\\n<$text text=\\\"Fil d'actualité\\\" />\\n\\n\\n<$action-sendmessage $message=\\\"tm-close-all-tiddlers\\\" />\\n\\n<$action-navigate $to=\\\"$:/plugins/astroport/lightbeams/HomeFeed\\\" $scroll=\\\"no\\\" />\\n\\n\\n\",\n \"title\": \"$:/plugins/astroport/lightbeams/Buttons/Homefeed\",\n \"caption\": \"{{$:/core/images/preview-open}} Homefeed\",\n \"description\": \"Affiche le fil d'actualités\",\n \"modified\": \"20221205163015472\",\n \"modifier\": \"Boris\",\n \"tags\": \"$:/tags/PageControls\"\n },\n \"$:/plugins/astroport/lightbeams/ControlPanel/Saving/Astroport :: Lightbeams\": {\n \"created\": \"20221205092311632\",\n \"creator\": \"Boris\",\n \"text\": \"\\\\define lingo-base() $:/language/ControlPanel/Saving/IpfsService/\\n\\\\define service-name() Lightbeams\\n\\n\\n\\n
\\n\\t\\n\\t\\tAbonnements\\n\\t\\n\\n\\n\\t

\\n\\t\\t<$edit-text tiddler=\\\"$:/plugins/astroport/lightbeams/state/subscriptions\\\" class=\\\"tc-edit-texteditor\\\" default=\\\"\\\" tag=\\\"textarea\\\"/>\\n\\t

\\n
\\n\\n\\n
\\n\\t\\n\\t\\tLightbeam :: adresse de publication du flux JSON\\n\\t\\n\\n\\t

\\n\\t\\t\\n\\t\\t\\n\\t

\\n\\n\\n\\t
\\n\\n\\t\\t<$button message=\\\"tm-lightbeam-ipns-rename\\\" tooltip={{$:/language/Buttons/Ipns/Rename/Hint}} aria-label={{$:/language/Buttons/Ipns/Rename/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/mono-line}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Rename/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-lightbeam-ipns-generate\\\" tooltip={{$:/language/Buttons/Ipns/Generate/Hint}} aria-label={{$:/language/Buttons/Ipns/Generate/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/new-here-button}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Generate/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-lightbeam-ipns-remove\\\" tooltip={{$:/language/Buttons/Ipns/Remove/Hint}} aria-label={{$:/language/Buttons/Ipns/Remove/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/delete-button}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Remove/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-lightbeam-ipns-fetch\\\" tooltip={{$:/language/Buttons/Ipns/Fetch/Hint}} aria-label={{$:/language/Buttons/Ipns/Fetch/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/refresh-button}}\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Fetch/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-lightbeam-ipns-resolve-and-open\\\" tooltip={{$:/language/Buttons/Ipns/Resolve/And/Open/Hint}} aria-label={{$:/language/Buttons/Ipns/Resolve/And/Open/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/globe}}\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Resolve/And/Open/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t
\\n
\\n\\n
\\n\\t\\n\\t\\tTiddlyWiki :: adresse de publication de l'HTML\\n\\t\\n\\n\\t

\\n\\t\\t\\n\\t\\t\\n\\t

\\n\\n\\n\\t
\\n\\n\\t\\t<$button message=\\\"tm-ipns-rename\\\" tooltip={{$:/language/Buttons/Ipns/Rename/Hint}} aria-label={{$:/language/Buttons/Ipns/Rename/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/mono-line}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Rename/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t\\t<$button message=\\\"tm-ipns-generate\\\" tooltip={{$:/language/Buttons/Ipns/Generate/Hint}} aria-label={{$:/language/Buttons/Ipns/Generate/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/new-here-button}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Generate/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-ipns-remove\\\" tooltip={{$:/language/Buttons/Ipns/Remove/Hint}} aria-label={{$:/language/Buttons/Ipns/Remove/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/delete-button}}\\n\\t\\t\\t\\n\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Remove/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-ipns-fetch\\\" tooltip={{$:/language/Buttons/Ipns/Fetch/Hint}} aria-label={{$:/language/Buttons/Ipns/Fetch/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/refresh-button}}\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Fetch/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t\\t<$button message=\\\"tm-ipns-resolve-and-open\\\" tooltip={{$:/language/Buttons/Ipns/Resolve/And/Open/Hint}} aria-label={{$:/language/Buttons/Ipns/Resolve/And/Open/Caption}} class=\\\"tc-btn-invisible tc-ipfs-action\\\">\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t{{$:/core/images/globe}}\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t<$list filter=\\\"[match[yes]]\\\">\\n\\t\\t\\t\\t<$text text={{$:/language/Buttons/Ipns/Resolve/And/Open/Caption}}/>\\n\\t\\t\\t\\n\\t\\t\\n\\n\\t
\\n
\\n\\n\\n
\\n\\t\\n\\t\\t<>\\n\\t\\n\\n\\t\\n\\n\\t\\n\\n
\\n\\n\\n
\\n\\t\\n\\t\\tAvancé\\n\\t\\n\\n\\n\\t

\\n\\t\\t<$link to=\\\"$:/ipfs/saver/protocol\\\">\\n\\t\\t\\t<>\\n\\t\\t\\n\\t

\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/protocol\\\" value=\\\"ipfs\\\">\\n\\t\\t<>\\n\\t\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/protocol\\\" value=\\\"ipns\\\">\\n\\t\\t<>\\n\\t\\n\\n\\n\\t

\\n\\t\\t<>\\n\\t

\\n\\n\\t

\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t

\\n\\n\\n\\t

\\n\\t\\t<$link to=\\\"$:/ipfs/saver/provider\\\"><>\\n\\t

\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/provider\\\" value=\\\"default\\\"><>\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/provider\\\" value=\\\"window\\\"><>\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/provider\\\" value=\\\"http\\\"><>\\n\\n\\n\\t

\\n\\t\\t<$link to=\\\"$:/ipfs/saver/policy\\\">\\n\\t\\t\\t<>\\n\\t\\t\\n\\t

\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/policy\\\" value=\\\"origin\\\"><>\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/policy\\\" value=\\\"gateway\\\"><>\\n\\n\\n\\t

\\n\\t\\t<$link to=\\\"$:/ipfs/saver/export\\\">\\n\\t\\t\\t<>\\n\\t\\t\\n\\t

\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/export\\\" value=\\\"json\\\">\\n\\t\\t<>\\n\\t\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/export\\\" value=\\\"static\\\">\\n\\t\\t<>\\n\\t\\n\\n\\t<$radio tiddler=\\\"$:/ipfs/saver/export\\\" value=\\\"tid\\\">\\n\\t\\t<>\\n\\t\\n\\n
\",\n \"title\": \"$:/plugins/astroport/lightbeams/ControlPanel/Saving/Astroport :: Lightbeams\",\n \"modified\": \"20221205151913439\",\n \"tags\": \"$:/ipfs/core $:/tags/ControlPanel/Saving\",\n \"caption\": \"Astroport :: Lightbeams\",\n \"modifier\": \"Boris\"\n },\n \"$:/plugins/astroport/lightbeams/layouts/feedable\": {\n \"created\": \"20221130141048325\",\n \"creator\": \"Boris\",\n \"text\": \"\\\\whitespace trim\\n\\\\define containerClasses()\\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\\n\\\\end\\n\\\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\\n\\n<$vars\\n\\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\\n\\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\\n\\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\\n\\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\\n\\ttv-show-missing-links={{$:/config/MissingLinks}}\\n\\tstoryviewTitle={{$:/view}}\\n\\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\\n\\n
>>\\n\\n<$transclude tiddler=\\\"$:/plugins/astroport/lightbeams/ui/HomeFeed\\\"/>\\n\\n<$navigator story=\\\"$:/StoryList\\\" history=\\\"$:/HistoryList\\\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\\n\\n<$dropzone enable=<> autoOpenOnImport=\\\"yes\\\">\\n\\n<$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\\\" variable=\\\"listItem\\\">\\n\\n<$transclude tiddler=<>/>\\n\\n\\n\\n\\n\\n\\n\\n
\\n\\n\\n\",\n \"tags\": \"$:/tags/Layout\",\n \"title\": \"$:/plugins/astroport/lightbeams/layouts/feedable\",\n \"modified\": \"20221205163129833\",\n \"modifier\": \"Boris\",\n \"name\": \"Feedable\",\n \"description\": \"En mode avec un fil d'actualité\"\n },\n \"$:/plugins/astroport/lightbeams/tests/friends\": {\n \"created\": \"20221130195042105\",\n \"creator\": \"Boris\",\n \"text\": \"<>\\n\\n!! Envoyées\\n\\n<$transclude tiddler=\\\"$:/plugins/astroport/lightbeams/state/stars_sendees\\\" field=\\\"text\\\" />\\n\\n!! Reçues\\n\\n<$transclude tiddler=\\\"$:/plugins/astroport/lightbeams/state/stars_senders\\\" field=\\\"text\\\" />\",\n \"tags\": \"\",\n \"title\": \"$:/plugins/astroport/lightbeams/tests/friends\",\n \"modified\": \"20221204165827491\",\n \"modifier\": \"Boris\"\n },\n \"$:/plugins/astroport/lightbeams/ui/HomeFeed\": {\n \"created\": \"20221130141830129\",\n \"creator\": \"Boris\",\n \"text\": \"
\\n<$list filter=\\\"[list[$:/StoryList]match[$:/plugins/astroport/lightbeams/HomeFeed]]\\\" variable=\\\"null\\\">\\n

Votre fil d'actus

\\n
\\n
macrocall:
\\n
<$macrocall $name=\\\"homefeed\\\" />
\\n
\\n<$transclude tiddler=\\\"$:/plugins/astroport/lightbeams/myFeed\\\" />\\n\\n
\",\n \"tags\": \"\",\n \"title\": \"$:/plugins/astroport/lightbeams/ui/HomeFeed\",\n \"modified\": \"20221204181056753\",\n \"modifier\": \"Boris\"\n }\n }\n}","tags":"","title":"$:/plugins/astroport/lightbeams","modified":"20221206123924028","modifier":"Boris","type":"application/json","author":"Astroport","name":"Astroport :: Lightbeams ::","description":"send signals accross the universe","plugin-type":"plugin","version":"0.0.8"}] diff --git a/templates/twdefault.html b/templates/twdefault.html index cb239b71a..8a8b810c1 100644 --- a/templates/twdefault.html +++ b/templates/twdefault.html @@ -142,10 +142,10 @@ Error message and password prompt

This TiddlyWiki contains the following tiddlers:

    -
  • ♥OP
  • -
  • $:/_demostyles
  • +
  • $:/Astroport.ONE/ASTROBOT/G1CopierYoutube.lnk
  • +
  • $:/build
  • $:/ColumnHistoryList
  • @@ -258,6 +258,8 @@ Error message and password prompt
  • $:/core/save/offline-external-js
  • +
  • $:/core/ui/ViewTemplate
  • +
  • $:/DefaultTiddlers
  • $:/Import
  • @@ -314,6 +316,10 @@ Error message and password prompt
  • $:/plugins/ipfs
  • +
  • $:/plugins/sq/ExternalContent
  • + +
  • $:/plugins/sq/ExternalContent/loadWikiActions
  • +
  • $:/plugins/sq/streams/breadcrumbs-view-template
  • $:/plugins/sq/streams/stream-view-template
  • @@ -330,12 +336,16 @@ Error message and password prompt
  • $:/plugins/TWaddle/hide
  • +
  • $:/publishFilter
  • +
  • $:/SidebarStreams/RootTiddler
  • $:/SiteSubtitle
  • $:/SiteTitle
  • +
  • $:/springer/volatile/css
  • +
  • $:/state/addplugins/tab-1342078386
  • $:/state/advancedsearch/currentTab
  • @@ -352,10 +362,14 @@ Error message and password prompt
  • $:/state/folded/Carte de la Monnaie Libre : Ğ1
  • +
  • $:/state/folded/CESIUM
  • +
  • $:/state/folded/CopierYoutube
  • $:/state/folded/La Carte de la Monnaie Libre : Ğ1
  • +
  • $:/state/folded/LOAD EXTERNAL TW
  • +
  • $:/state/folded/Où suis-je?
  • $:/state/folded/QRCODE - Membres Forgerons de la Ğ1
  • @@ -376,7 +390,7 @@ Error message and password prompt
  • $:/state/plugin-info--650436330-$:/plugins/BTC/tiddlywiki-multi-columns---1988889691
  • -
  • $:/state/plugin-info-1621415118-$:/core--1001201827
  • +
  • $:/state/plugin-info-1159042363-$:/plugins/sq/ExternalContent---1206369635
  • $:/state/tab--1498284803
  • @@ -386,6 +400,8 @@ Error message and password prompt
  • $:/state/tab--639260661
  • +
  • $:/state/tab--86143343
  • +
  • $:/state/tab-1749438307
  • $:/state/tab-2065006209
  • @@ -438,7 +454,7 @@ Error message and password prompt
  • AstroportONE
  • -
  • Carte de la Monnaie Libre : Ğ1
  • +
  • CESIUM
  • CopierYoutube
  • @@ -448,6 +464,8 @@ Error message and password prompt
  • Dessin de _PLAYER_
  • +
  • EXTERNAL_SECTORNEWS
  • +
  • G1Fablab
  • GPS
  • @@ -462,7 +480,7 @@ Error message and password prompt
  • LeClaude
  • -
  • LNK
  • +
  • LOAD EXTERNAL TW
  • MadeInZion
  • @@ -476,9 +494,9 @@ Error message and password prompt
  • OpenStreetMap
  • -
  • OSJ
  • +
  • OU JE SUIS
  • -
  • QRCODE des Membres Forgerons de la Ğ1
  • +
  • QRCODE FORGERONS
  • REQ
  • @@ -490,17 +508,17 @@ Error message and password prompt
  • TiddlyWiki
  • -
  • UPL
  • +
  • TW OPERATION
  • UPlanet
  • -
  • Voeu1.png
  • +
  • UPLANET DIAGRAM
  • -
  • WAI
  • +
  • Voeu1.png
  • Web3
  • -
  • WWM
  • +
  • WHERE AM I
  • ZenCard
  • @@ -517,11 +535,11 @@ Error message and password prompt diff --git a/templates/twuplanet.html b/templates/twuplanet.html index fcebf49fa..087985a36 100644 --- a/templates/twuplanet.html +++ b/templates/twuplanet.html @@ -47,12 +47,12 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." /> -_PLAYER_ "TW" — TiddlyWiki hosted by Astroport on UPlanet +_PLAYER_ "TW5" — Hosted by Astroport(s) on UPlanet - +