2023-01-03 05:03:53 +01:00
|
|
|
#!/bin/bash
|
|
|
|
########################################################################
|
|
|
|
# Version: 0.4
|
|
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
2023-04-04 17:05:10 +02:00
|
|
|
# ON LINE echo script! LAST LINE export VARIABLE values
|
2023-01-03 05:03:53 +01:00
|
|
|
########################################################################
|
|
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|
|
|
ME="${0##*/}"
|
|
|
|
|
2023-01-03 16:40:07 +01:00
|
|
|
. "${MY_PATH}/my.sh"
|
2023-03-16 01:44:50 +01:00
|
|
|
### USE 12345 MAP
|
2023-11-24 18:02:20 +01:00
|
|
|
## EXPLORE SWARM BOOSTRAP REPLICATED TW CACHE
|
2023-01-03 05:03:53 +01:00
|
|
|
|
|
|
|
start=`date +%s`
|
|
|
|
MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
|
|
|
|
|
|
|
|
EMAIL="$1"
|
|
|
|
|
2023-11-24 19:21:13 +01:00
|
|
|
if [[ "${EMAIL}" =~ ^[a-zA-Z0-9.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
|
2023-01-03 05:03:53 +01:00
|
|
|
|
2024-02-27 02:27:48 +01:00
|
|
|
INDEX=$(ls $HOME/.zen/game/players/${EMAIL}/ipfs/moa/index.html 2>/dev/null) && source="LOCAL"
|
|
|
|
[[ ! $INDEX ]] && INDEX=$(ls $HOME/.zen/tmp/${IPFSNODEID}/TW/${EMAIL}/index.html 2>/dev/null) && source="CACHE"
|
|
|
|
[[ ! $INDEX ]] && INDEX=$(ls $HOME/.zen/tmp/swarm/*/TW/${EMAIL}/index.html 2>/dev/null) && source="SWARM"
|
2023-01-03 05:03:53 +01:00
|
|
|
[[ ! $INDEX ]] && exit 1
|
|
|
|
## TODO ? SEARCH WITH DNSLINK
|
2024-02-27 02:27:48 +01:00
|
|
|
echo "export TW=${INDEX} source=${source}"
|
2023-01-03 05:03:53 +01:00
|
|
|
|
2023-10-06 15:20:55 +02:00
|
|
|
# SWARM CACHE index.html contains
|
2024-02-27 02:27:48 +01:00
|
|
|
# <meta http-equiv="refresh" content="0; url='/ipfs/$EXTERNAL'" />
|
|
|
|
[[ ${source} != "LOCAL" ]] \
|
|
|
|
&& EXTERNAL=$(grep -o "url='/[^']*'" ${INDEX} | sed "s/url='\(.*\)'/\1/" | awk -F"/" '{print $3}')
|
2023-10-06 15:20:55 +02:00
|
|
|
|
|
|
|
if [[ ! ${EXTERNAL} ]]; then
|
|
|
|
## EXTRACT DATA FROM TW
|
|
|
|
mkdir -p ~/.zen/tmp/${MOATS}
|
|
|
|
rm -f ~/.zen/tmp/${MOATS}/Astroport.json
|
|
|
|
|
|
|
|
tiddlywiki --load ${INDEX} --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)
|
|
|
|
ASTROG1=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].g1pub)
|
2024-02-27 02:27:48 +01:00
|
|
|
TWCHAIN=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].chain)
|
2023-10-06 15:20:55 +02:00
|
|
|
|
|
|
|
## GET ASTRONAUTENS - field was missing in TW model Astroport Tiddler -
|
|
|
|
ASTRONAUTENS=$(cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r .[].astronautens)
|
|
|
|
[[ ${ASTRONAUTENS} == "null" || ${ASTRONAUTENS} == "" ]] && ASTRONAUTENS="/ipns/"$(ipfs key list -l | grep -w ${ASTROG1} | cut -d ' ' -f1)
|
2024-02-27 03:12:15 +01:00
|
|
|
[[ ${ASTRONAUTENS} == "/ipns/" ]] && ASTRONAUTENS="/ipfs/${TWCHAIN}"
|
2023-10-06 15:20:55 +02:00
|
|
|
else
|
2024-02-27 02:27:48 +01:00
|
|
|
ASTRONAUTENS="/ipfs/${EXTERNAL}"
|
|
|
|
ASTROPORT="/ipns/$(echo $INDEX | rev | cut -d / -f 4 | rev)"
|
2023-10-06 15:20:55 +02:00
|
|
|
fi
|
2023-09-11 17:08:22 +02:00
|
|
|
|
2023-01-03 05:03:53 +01:00
|
|
|
rm -Rf ~/.zen/tmp/${MOATS}
|
2023-01-03 19:56:30 +01:00
|
|
|
# cat ~/.zen/tmp/${MOATS}/Astroport.json | jq -r
|
2023-01-03 05:03:53 +01:00
|
|
|
|
|
|
|
else
|
|
|
|
|
2023-04-08 15:11:56 +02:00
|
|
|
echo "export ASTROTW='' # ${EMAIL} NOT FOUND"
|
2023-01-03 19:56:30 +01:00
|
|
|
exit 0
|
2023-01-03 05:03:53 +01:00
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2023-09-11 17:08:22 +02:00
|
|
|
echo "export ASTROPORT=$ASTROPORT ASTROTW=$ASTRONAUTENS ASTROG1=$ASTROG1 ASTROMAIL=$EMAIL ASTROFEED=$FEEDNS"
|
2023-01-03 05:03:53 +01:00
|
|
|
exit 0
|