Astroport.ONE/ASTROBOT/G1PalPay.sh

210 lines
8.2 KiB
Bash
Executable File

#!/bin/bash
########################################################################
# Version: 0.4
# 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
ME="${0##*/}"
. "${MY_PATH}/../tools/my.sh"
CESIUM="https://g1.data.le-sou.org"
GCHANGE="https://data.gchange.fr"
echo "(✜‿‿✜) G1PalPay : Receiving & Relaying payments to emails found in comment"
echo "$ME RUNNING"
########################################################################
# PALPAY SERVICE
########################################################################
# CHECK TODAY INCOMING PAYMENT
# IF COMMENT CONTAINS EMAIL ADDRESSES
# THEN CREATE VISA+TW AND SEND PAIMENT REMOVING FIRST FROM LIST
########################################################################
# this couls lead in several account creation sharing % of incomes each time
########################################################################
INDEX="$1"
[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html"
[[ ! -s ${INDEX} ]] && echo "ERROR - Please provide path to source TW index.html" && exit 1
[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1
PLAYER="$2"
[[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)"
[[ ! ${PLAYER} ]] && echo "ERROR - Please provide IPFS publish key" && exit 1
ASTONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
[[ ! $ASTONAUTENS ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
# Extract tag=tube from TW
MOATS="$3"
[[ ! $MOATS ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
###################################################################
## CREATE APP NODE PLAYER PUBLICATION DIRECTORY
###################################################################
mkdir -p $HOME/.zen/tmp/${IPFSNODEID}/G1PalPay/${PLAYER}/
mkdir -p $HOME/.zen/game/players/${PLAYER}/G1PalPay/
mkdir -p $HOME/.zen/tmp/${MOATS}
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey history -n 10 -j > $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json
[[ ! -s $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json ]] \
&& echo "NO PAYMENT HISTORY" \
&& exit 1
## DEBUG ## cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json | jq -r
## GET @ in
for LINE in $(cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json | jq -rc .[] | grep 'Bro'); do
echo "MATCHING IN COMMENT"
JSON=$LINE
IDATE=$(echo $JSON | jq -r .date)
IPUBKEY=$(echo $JSON | jq -r .pubkey)
IAMOUNT=$(echo $JSON | jq -r .amount)
IAMOUNTUD=$(echo $JSON | jq -r .amountUD)
ICOMMENT=$(echo $JSON | jq -r .comment)
echo $IDATE $IPUBKEY $IAMOUNT [$IAMOUNTUD] $ICOMMENT
for EMAIL in "${ICOMMENT[@]}";
if [[ "${EMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
echo "VALID EMAIL : ${EMAIL}"
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${EMAIL}) ## export ASTROTW
if [[ ! ${ASTROTW} ]]; then
echo "# NEW VISA $(date)"
SALT="" && PEPPER=""
echo "VISA.new : \"$SALT\" \"$PEPPER\" \"${EMAIL}\" \"$PSEUDO\" \"${URL}\""
#~ $(${MY_PATH}/../tools/VISA.new.sh "$SALT" "$PEPPER" "${EMAIL}" "$PSEUDO" "${URL}" | tail -n 1) # export ASTROTW=/ipns/$ASTRONAUTENS ASTROG1=$G1PUB ASTROMAIL=$EMAIL ASTROFEED=$FEEDNS
## CREATE new PLAYER IN myASTROTUBE
curl -x ${myASTROTUBE}/?salt=0&pepper=0&g1pub=_URL_&email=${EMAIL} -o ~/.zen/tmp/${MOATS}/astro.port
TELETUBE=$(cat ~/.zen/tmp/${MOATS}/astro.port | grep "(◕‿‿◕)" | cut -d ':' -f 2 | cut -d '/' -f 3)
TELEPORT=$(cat ~/.zen/tmp/${MOATS}/astro.port | grep "(◕‿‿◕)" | cut -d ':' -f 3 | cut -d '"' -f 1)
sleep 12
curl -x http://$TELETUBE:$TELEPORT -o ~/.zen/tmp/${MOATS}/astro.rep
$(cat ~/.zen/tmp/${MOATS}/astro.rep | tail -n 1)
######################################################
${MY_PATH}/../tools/mailjet.sh "${EMAIL}" "BRO. $PLAYER VOUS A OFFERT UN TW : $(myIpfsGw)/$ASTROTW et " ## WELCOME NEW PLAYER
fi
## MAKE FRIENDS & SEND G1
echo "My PalPay Friend $ASTROMAIL
TW : $ASTROTW
G1 : $ASTROG1
RSS : $ASTROFEED"
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey history -n 10 -j > $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json
else
echo "BAD EMAIL : ${EMAIL}"
continue
fi
done
done
#~ ###################################################################
#~ ## tag[PalPay] EXTRACT ~/.zen/tmp/PalPay.json FROM TW
#~ ###################################################################
#~ rm -f ~/.zen/game/players/${PLAYER}/G1PalPay/PalPay.json
#~ tiddlywiki --load ${INDEX} \
#~ --output ~/.zen/game/players/${PLAYER}/G1PalPay \
#~ --render '.' 'PalPay.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[PalPay]]'
#~ echo "DEBUG : cat ~/.zen/game/players/${PLAYER}/G1PalPay/PalPay.json | jq -r"
#~ ## GOT PalPay TIDDLER
#~ echo "Creating Youtube ${YID} tiddler : G1PalPay !"
#~ echo $TEXT
#~ echo '[
#~ {
#~ "created": "'${MOATS}'",
#~ "resolution": "'${RES}'",
#~ "duree": "'${DUREE}'",
#~ "duration": "'${DURATION}'",
#~ "giftime": "'${PROBETIME}'",
#~ "gifanime": "'/ipfs/${ANIMH}'",
#~ "modified": "'${MOATS}'",
#~ "title": "'$ZFILE'",
#~ "type": "'text/vnd.tiddlywiki'",
#~ "vtratio": "'${VTRATIO}'",
#~ "text": "'$TEXT'",
#~ "g1pub": "'${G1PUB}'",
#~ "mime": "'${MIME}'",
#~ "size": "'${FILE_BSIZE}'",
#~ "filesize": "'${FILE_SIZE}'",
#~ "sec": "'${SEC}'",
#~ "dur": "'${dur}'",
#~ "ipfs": "'/ipfs/${ILINK}'",
#~ "youtubeid": "'${YID}'",
#~ "tags": "'ipfs G1PalPay ${PLAYER} ${EXTRATAG} ${MIME}'"
#~ }
#~ ]
#~ ' > "$HOME/.zen/tmp/${IPFSNODEID}/G1PalPay/${PLAYER}/$YID.TW.json"
#~ TIDDLER="$HOME/.zen/tmp/${IPFSNODEID}/G1PalPay/${PLAYER}/$YID.TW.json"
#~ else
#~ ###################################################################
#~ echo '# TIDDLER WAS IN CACHE'
#~ ###################################################################
#~ ## TODO : ADD EMAIL TAG ( TIMESTAMP & ADD SIGNATURE over existing ones)
#~ fi
#~ cp -f "${TIDDLER}" "$HOME/.zen/game/players/${PLAYER}/G1PalPay/"
#~ #################################################################
#~ ### ADDING $YID.TW.json to ASTONAUTENS INDEX.html
#~ #################################################################
#~ echo "=========================="
#~ echo "Adding $YID tiddler to TW /ipns/$ASTONAUTENS "
#~ rm -f ~/.zen/tmp/${IPFSNODEID}/newindex.html
#~ echo ">>> Importing $HOME/.zen/game/players/${PLAYER}/G1PalPay/$YID.TW.json"
#~ tiddlywiki --load ${INDEX} \
#~ --import "$HOME/.zen/game/players/${PLAYER}/G1PalPay/$YID.TW.json" "application/json" \
#~ --output ~/.zen/tmp/${IPFSNODEID} --render "$:/core/save/all" "newindex.html" "text/plain"
#~ # --deletetiddlers '[tag[PalPay]]' ### REFRESH CHANNEL COPY
#~ if [[ -s ~/.zen/tmp/${IPFSNODEID}/newindex.html ]]; then
#~ ## COPY JSON TIDDLER TO PLAYER
#~ ln -s "$HOME/.zen/game/players/${PLAYER}/G1PalPay/$YID.TW.json" "$HOME/.zen/game/players/${PLAYER}/G1PalPay/$ZFILE.json"
#~ [[ $(diff ~/.zen/tmp/${IPFSNODEID}/newindex.html ${INDEX} ) ]] && cp ~/.zen/tmp/${IPFSNODEID}/newindex.html ${INDEX} && echo "===> Mise à jour ${INDEX}"
#~ else
#~ echo "Problem with tiddlywiki command. Missing ~/.zen/tmp/${IPFSNODEID}/newindex.html"
#~ echo "XXXXXXXXXXXXXXXXXXXXXXX"
#~ fi
rm -Rf $HOME/.zen/tmp/${MOATS}
exit 0