This commit is contained in:
fred 2024-02-14 18:51:39 +01:00
parent d6467e159a
commit a8ab380a94
2 changed files with 39 additions and 98 deletions

View File

@ -1,77 +0,0 @@
#!/bin/bash
########################################################################
# Version: 0.5
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
########################################################################
# PAD COCODING : https://pad.p2p.legal/s/G1Monit
# KODI SERVICE : Publish and Merge Friends Monit Movies into RSS Stream
########################################################################
########################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
. "${MY_PATH}/../tools/my.sh"
echo "$ME RUNNING"
########################################################################
## SCAN FOR PAYMENT HISTORY
## BUILD python NetworkX script
## SEND MESSAGE TO SOURCEG1PUB
########################################################################
## THIS SCRIPT IS RUN WHEN A WALLET RECEIVED A TRANSACTION WITH COMMENT STARTING WITH N1Monit
########################################################################
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 PLAYER" && exit 1
ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1)
[[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub)
[[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1
# Extract tag=tube from TW
MOATS="$3"
[[ ! ${MOATS} ]] && MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
IPUBKEY="$4"
[[ ! ${IPUBKEY} ]] && echo "ERROR - MISSING COMMAND ISSUER !" && exit 1
TH="$5"
[[ ! ${TH} ]] && echo "ERROR - MISSING COMMAND TITLE HASH ADDRESS !" && exit 1
echo "${PLAYER} : ${IPUBKEY} SEEKING FOR ${TH}
${ASTRONAUTENS} ${G1PUB} "
#~ ###################################################################
#~ ## CREATE APP NODE PLAYER PUBLICATION DIRECTORY
#~ ###################################################################
mkdir -p $HOME/.zen/tmp/${MOATS} && echo $HOME/.zen/tmp/${MOATS}
## EXERCICE ### TODO ###
## USE https://networkx.org/documentation/stable/tutorial.html#
## EXTRACT HISTORY WITH jaklis
## CREATE A PYTHON SCRIPT CREATING the 1st level of TX
echo "import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
...
G.add_node(SRCPUB)
G.add_node(DSTPUB)
G.edges[SRCPUB, DSTPUB]['g1'] = AMOUNT
...
nx.draw(G, with_labels=True, font_weight='bold')
plt.show()
"
## EXTEND N1Script WITH MORE FUNCTIONS... exemples ...
## N1Vote: permet de pratiquer le Vote Quadratique
## N1Conf: permet de signifier la Confiance
## ...
exit 0

View File

@ -12,29 +12,29 @@ ME="${0##*/}"
. "${MY_PATH}/../tools/my.sh" . "${MY_PATH}/../tools/my.sh"
CESIUM=${myCESIUM} CESIUM=${myCESIUM}
GCHANGE=${myGCHANGE} GCHANGE=${myGCHANGE}
echo "(✜‿‿✜) G1PalPay : Receiving & Relaying payments to emails found in comment" echo "(✜‿‿✜) G1PalPay : Receiving & Relaying payments to emails found in comment"
echo "$ME RUNNING" echo "$ME RUNNING"
######################################################################## ########################################################################
# PALPAY SERVICE # PALPAY SERVICE : MONITOR INCOMING TX & NEW TIDDLERS
######################################################################## ########################################################################
######################################################################## ########################################################################
INDEX="$1" INDEX="$1" ## TW file
[[ ! ${INDEX} ]] && INDEX="$HOME/.zen/game/players/.current/ipfs/moa/index.html" [[ ! ${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 - Please provide path to source TW index.html" && exit 1
[[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1 [[ ! -s ${INDEX} ]] && echo "ERROR - Fichier TW absent. ${INDEX}" && exit 1
PLAYER="$2" PLAYER="$2" ## PLAYER
[[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)" [[ ! ${PLAYER} ]] && PLAYER="$(cat ~/.zen/game/players/.current/.player 2>/dev/null)"
[[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1 [[ ! ${PLAYER} ]] && echo "ERROR - Please provide PLAYER" && exit 1
ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) ASTRONAUTENS=$(ipfs key list -l | grep -w ${PLAYER} | cut -d ' ' -f1) ## TW /ipns/
[[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1 [[ ! ${ASTRONAUTENS} ]] && echo "ERROR - Clef IPNS ${PLAYER} introuvable!" && exit 1
G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub) ## PLAYER WALLET
[[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1 [[ ! $G1PUB ]] && echo "ERROR - G1PUB ${PLAYER} VIDE" && exit 1
# Extract tag=tube from TW # Extract tag=tube from TW
@ -49,21 +49,27 @@ mkdir -p $HOME/.zen/game/players/${PLAYER}/G1PalPay/
mkdir -p $HOME/.zen/tmp/${MOATS} mkdir -p $HOME/.zen/tmp/${MOATS}
echo "=========== ( ◕‿◕) (◕‿◕ ) ==============" echo "=========== ( ◕‿◕) (◕‿◕ ) =============="
# CHECK LAST 10 INCOMING PAYMENTS # CHECK LAST 24 INCOMING PAYMENTS
~/.zen/Astroport.ONE/tools/timeout.sh -t 12 \ ~/.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}.duniter.history.json ${MY_PATH}/../tools/jaklis/jaklis.py -k ~/.zen/game/players/${PLAYER}/secret.dunikey history -n 24 -j > $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json
[[ ! -s $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json ]] \ [[ ! -s $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json ]] \
&& echo "NO PAYMENT HISTORY" \ && echo "NO PAYMENT HISTORY.......................... EXIT" \
&& exit 1 && exit 1
############################## ##############################
########################################################## ##########################################################
############# CHECK FOR N1COMMANDs IN PAYMENT COMMENT ############# CHECK FOR N1COMMANDs IN PAYMENT COMMENT
################################################################# #################################################################
## TREAT ANY COMMENT STARTING WITH N1 ## TREAT ANY COMMENT STARTING WITH N1:
cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | jq -rc .[] | grep 'N1' > ~/.zen/tmp/${MOATS}/myN1.json ## EXTRACT N1ProgramNames
ls ${MY_PATH}/../ASTROBOT/ | grep "N1" | cut -d "." -f 1 > ~/.zen/tmp/${MOATS}/N1PROG
while read prog; do
cat $HOME/.zen/game/players/${PLAYER}/G1PalPay/${PLAYER}.duniter.history.json | jq -rc .[] | grep "$prog" >> ~/.zen/tmp/${MOATS}/myN1.json
done < ~/.zen/tmp/${MOATS}/N1PROG
# got N1 incoming TX
while read NLINE; do while read NLINE; do
## COMMENT FORMAT = N1$CMD:$TH:$TRAIL ## COMMENT FORMAT = N1$CMD:$TH:$TRAIL
TXIDATE=$(echo ${NLINE} | jq -r .date) TXIDATE=$(echo ${NLINE} | jq -r .date)
@ -72,7 +78,10 @@ while read NLINE; do
COMMENT=$(echo ${NLINE} | jq -r .comment) COMMENT=$(echo ${NLINE} | jq -r .comment)
CMD=$(echo ${COMMENT} | cut -d ':' -f 1 | cut -c -12 ) # Maximum 12 characters CMD CMD=$(echo ${COMMENT} | cut -d ':' -f 1 | cut -c -12 ) # Maximum 12 characters CMD
[[ $(cat ~/.zen/game/players/${PLAYER}/.ndate) -ge $TXIDATE ]] && echo "$CMD $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" && continue # Verify last recorded acting date (avoid running twice)
[[ $(cat ~/.zen/game/players/${PLAYER}/.ndate) -ge $TXIDATE ]] \
&& echo "$CMD $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
&& continue
TH=$(echo ${COMMENT} | cut -d ':' -f 2) TH=$(echo ${COMMENT} | cut -d ':' -f 2)
TRAIL=$(echo ${COMMENT} | cut -d ':' -f 3-) TRAIL=$(echo ${COMMENT} | cut -d ':' -f 3-)
@ -114,7 +123,9 @@ while read LINE; do
COMMENT=$(echo $JSON | jq -r .comment) COMMENT=$(echo $JSON | jq -r .comment)
echo ">>> TODO CHECK TX HAPPENS LAST 24H (WHAT IS TXIDATE=$TXIDATE FORMAT ??)" 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 [[ $(cat ~/.zen/game/players/${PLAYER}/.atdate) -ge $TXIDATE ]] \
&& echo "PalPay $TXIDATE from $TXIPUBKEY ALREADY TREATED - continue" \
&& continue
## GET EMAILS FROM COMMENT ## 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")) TXIMAILS=($(echo "$COMMENT" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
@ -123,9 +134,11 @@ while read LINE; do
echo "N=${#TXIMAILS[@]}" echo "N=${#TXIMAILS[@]}"
N=${#TXIMAILS[@]} N=${#TXIMAILS[@]}
SHARE=$(echo "scale=2; $TXIAMOUNT / $N" | bc) SHARE=$(echo "scale=2; $TXIAMOUNT / $N" | bc)
## SHARE is received AMOUT divided by numbers of EMAILS in comment
echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %" echo "$TXIDATE $TXIPUBKEY $TXIAMOUNT [$TXIAMOUNTUD] $TXIMAILS % $SHARE %"
# let's loop over TXIMAILS
for EMAIL in "${TXIMAILS[@]}"; do for EMAIL in "${TXIMAILS[@]}"; do
[[ ${EMAIL} == $PLAYER ]] && echo "ME MYSELF" && continue [[ ${EMAIL} == $PLAYER ]] && echo "ME MYSELF" && continue
@ -144,8 +157,8 @@ while read LINE; do
[[ ! ${ASTROG1} ]] \ [[ ! ${ASTROG1} ]] \
&& echo "<html><body><h1>SORRY ${EMAIL} YOUR ACCOUNT IS MISSING</h1>" \ && echo "<html><body><h1>SORRY ${EMAIL} YOUR ACCOUNT IS MISSING</h1>" \
&& echo " BRO. $PLAYER WISH TO SEND YOU SOME ẐEN <br><br>(♥‿‿♥)... Join <a href='https://qo-op.com'>UPlanet</a> and receive it</body></html>" > ~/.zen/tmp/palpay.bro \ && echo " BRO. $PLAYER WISH TO SEND YOU SOME ẐEN <br><br>(♥‿‿♥)... Join <a href='https://qo-op.com'>UPlanet</a> to receive it</body></html>" > ~/.zen/tmp/palpay.bro \
&& ${MY_PATH}/../tools/mailjet.sh "${EMAIL}" ~/.zen/tmp/palpay.bro "NEED FOR ACCOUNT" \ && ${MY_PATH}/../tools/mailjet.sh "${EMAIL}" ~/.zen/tmp/palpay.bro "MISSING ACCOUNT" \
&& continue && continue
@ -189,16 +202,21 @@ tiddlywiki --load ${INDEX} \
# cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/today.${PLAYER}.tiddlers.json | jq -rc # LOG # cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/today.${PLAYER}.tiddlers.json | jq -rc # LOG
cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/today.${PLAYER}.tiddlers.json \ cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/today.${PLAYER}.tiddlers.json \
| sed "s~${PLAYER}~ ~g" | jq -rc '.[] | select(.tags | contains("@"))' > ~/.zen/tmp/${MOATS}/@tags.json 2>/dev/null ## REMOVE PLAYER EMAIL IN INLINE JSON | sed "s~${PLAYER}~ ~g" | jq -rc '.[] | select(.tags | contains("@"))' \
> ~/.zen/tmp/${MOATS}/@tags.json 2>/dev/null ## Get tiddlers with not my email in it
[[ ! -s ~/.zen/tmp/${MOATS}/@tags.json ]] && echo "NO EXTRA @tags.json TIDDLERS TODAY" && exit 0 [[ ! -s ~/.zen/tmp/${MOATS}/@tags.json ]] \
&& echo "NO EXTRA @tags.json TIDDLERS TODAY" \
&& exit 0
# LOG # LOG
cat ~/.zen/tmp/${MOATS}/@tags.json cat ~/.zen/tmp/${MOATS}/@tags.json
echo "******************TIDDLERS with EMAIL in TAGS treatment" echo "******************TIDDLERS with new EMAIL in TAGS treatment"
#~ cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/${PLAYER}.tiddlers.json | sed "s~${PLAYER}~ ~g" | jq -rc '.[] | select(.tags | contains("@"))' > ~/.zen/tmp/${MOATS}/@tags.json #~ cat ~/.zen/game/players/${PLAYER}/G1CopierYoutube/${G1PUB}/${PLAYER}.tiddlers.json | sed "s~${PLAYER}~ ~g" | jq -rc '.[] | select(.tags | contains("@"))' > ~/.zen/tmp/${MOATS}/@tags.json
## EXTRACT NOT MY EMAIL ################################
## detect NOT MY EMAIL in TODAY TIDDLERS
################################
while read LINE; do while read LINE; do
echo "---------------------------------- Sava PalPé mec" echo "---------------------------------- Sava PalPé mec"
@ -220,7 +238,7 @@ while read LINE; do
## Count emails found ## Count emails found
emails=($(echo "$TTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b")) emails=($(echo "$TTAGS" | grep -E -o "\b[a-zA-Z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"))
nb=${#emails[@]} nb=${#emails[@]}
zen=$(echo "scale=2; $nb / 10" | bc) ## / divide by 10, 1 zen each zen=$(echo "scale=2; $nb / 10" | bc) ## / divide by 10 = 1 Zen each
## Get first zmail ## Get first zmail
ZMAIL="${emails}" ZMAIL="${emails}"