Astroport.ONE/ASTROBOT/G1PalPay.sh

144 lines
5.5 KiB
Bash
Raw Normal View History

#!/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/
2023-01-03 18:42:41 +01:00
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
2023-01-03 18:42:41 +01:00
[[ ! -s $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json ]] \
&& echo "NO PAYMENT HISTORY" \
&& exit 1
2023-01-03 16:40:07 +01:00
## DEBUG ## cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json | jq -r
2023-01-03 23:38:56 +01:00
cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/$PLAYER.history.json | jq -rc .[] | grep '@' > ~/.zen/tmp/${MOATS}/myPalPay.json
2023-01-03 19:56:30 +01:00
## GET @ in JSON INLINE
2023-01-03 23:38:56 +01:00
while read LINE; do
2023-01-03 16:40:07 +01:00
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)
2023-01-03 19:56:30 +01:00
COMMENT=$(echo $JSON | jq -r .comment)
2023-01-03 19:56:30 +01:00
ICOMMENT=($COMMENT)
## IF MULTIPLE WORDS OR EMAILS : DIVIDE INCOMING AMOUNT TO SHARE
echo "N=${#ICOMMENT[@]}"
N=${#ICOMMENT[@]}
SHARE=$(echo "$IAMOUNT/$N" | bc -l | cut -d '.' -f 1) ## INTEGER ROUNDED VALUE
2023-01-03 19:56:30 +01:00
echo $IDATE $IPUBKEY $IAMOUNT [$IAMOUNTUD] $ICOMMENT % $SHARE %
for EMAIL in "${ICOMMENT[@]}"; do
2023-01-03 18:42:41 +01:00
if [[ "${EMAIL}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
echo "VALID EMAIL : ${EMAIL}"
2023-01-03 18:42:41 +01:00
$($MY_PATH/../tools/search_for_this_email_in_players.sh ${EMAIL}) ## export ASTROTW
2023-01-03 18:42:41 +01:00
if [[ ! ${ASTROTW} ]]; then
2023-01-03 18:42:41 +01:00
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
2023-01-03 16:40:07 +01:00
2023-01-03 18:42:41 +01:00
## CREATE new PLAYER IN myASTROTUBE
curl -x ${myASTROTUBE}/?salt=0&pepper=0&g1pub=_URL_&email=${EMAIL} -o ~/.zen/tmp/${MOATS}/astro.port
2023-01-03 18:42:41 +01:00
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
2023-01-03 18:42:41 +01:00
curl -x http://$TELETUBE:$TELEPORT -o ~/.zen/tmp/${MOATS}/astro.rep
2023-01-03 19:56:30 +01:00
$(cat ~/.zen/tmp/${MOATS}/astro.rep | tail -n 1) ## SOURCE LAST LINE (SEE SALT PEPPER EMAIL API RETURN)
2023-01-03 18:42:41 +01:00
######################################################
2023-01-03 18:42:41 +01:00
${MY_PATH}/../tools/mailjet.sh "${EMAIL}" "BRO. $PLAYER VOUS A OFFERT UN TW : $(myIpfsGw)/$ASTROTW et " ## WELCOME NEW PLAYER
2023-01-03 16:40:07 +01:00
2023-01-03 18:42:41 +01:00
fi
2023-01-03 18:42:41 +01:00
## MAKE FRIENDS & SEND G1
2023-01-03 19:56:30 +01:00
echo "Hello PalPay Friend $ASTROMAIL
2023-01-03 18:42:41 +01:00
TW : $ASTROTW
G1 : $ASTROG1
2023-01-03 19:56:30 +01:00
ASTROIPFS : $ASTROIPFS
2023-01-03 18:42:41 +01:00
RSS : $ASTROFEED"
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \
2023-01-03 19:56:30 +01:00
${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey pay -a ${SHARE} -p ${ASTROG1} -c "PalPay:$N:$IPUBKEY" -m 2>&1
## COULD SEND STARS ??
2023-01-03 18:42:41 +01:00
else
echo "BAD EMAIL : ${EMAIL}"
continue
fi
done
2023-01-03 23:38:56 +01:00
done < ~/.zen/tmp/${MOATS}/myPalPay.json
2023-01-03 19:56:30 +01:00
### NEXT #####
### INNER TIDDLERS TREATMENT
## SEARCH FOR NEW TIDDLERS WITH MULTIPLE EMAILS IN TAG
## SEND 1 JUNE DIVIDED INTO ALL
2023-01-03 18:42:41 +01:00
rm -Rf $HOME/.zen/tmp/${MOATS}
exit 0