reworked
This commit is contained in:
parent
d6467e159a
commit
a8ab380a94
|
@ -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
|
|
|
@ -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}"
|
||||||
|
|
Loading…
Reference in New Issue