diff --git a/.install/copylaradio.sh b/.install/copylaradio.sh index 6570f8c..0c3a00b 100755 --- a/.install/copylaradio.sh +++ b/.install/copylaradio.sh @@ -12,41 +12,28 @@ isARM=$(cat $MY_PATH/.OS | grep YES) ################################## ## INSTALL TOOLS ######## YOUTUBE-DL ########## -sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl || err=1 -sudo chmod a+rx /usr/local/bin/youtube-dl +if [[ ! $(which youtube-dl) ]]; then + sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl || exit 1 + sudo chmod a+rx /usr/local/bin/youtube-dl + sudo chown $USER /usr/local/bin/youtube-dl +fi sudo apt install libid3-tools mpd mpc lame omxplayer -y || err=1 sudo apt-get install lame sox libsox-fmt-mp3 eyed3 python-chardet imagemagick curl -y #libav-tools || err=1 sudo apt-get install ca-certificates git-core binutils rsync alsa-utils bc libid3-tools espeak mpg321 fuse atomicparsley -y || err=1 ## CONFIG MPD -sudo cp -f $MY_PATH/mpd.conf /etc/mpd.conf +sudo cp -f $MY_PATH/templates/copylaradio/mpd.conf /etc/mpd.conf sudo sed -i "s/_USER/$USER/g" /etc/mpd.conf || err=1 sudo chown -R $USER /var/lib/mpd/ /var/run/mpd /run/mpd /var/log/mpd sudo service mpd restart || err=1 -sudo apt-get install nginx php-curl php-sqlite3 php-gd php-json php-xml php-mbstring php-fpm sqlite -y || err=1 +sudo apt-get install fail2ban nginx ssl-cert openssl-blacklist php-curl php-sqlite3 php-gd php-json php-xml php-mbstring php-fpm sqlite -y || err=1 -wget http://launchpadlibrarian.net/339874908/libav-tools_3.3.4-2_all.deb -O $MY_PATH/libav-tools.deb -wget http://ftp.fr.debian.org/debian/pool/non-free/s/svox/libttspico-data_1.0+git20130326-3_all.deb -O $MY_PATH/libttspico-data.deb -if [[ $isARM ]]; then - wget http://ftp.fr.debian.org/debian/pool/non-free/s/svox/libttspico0_1.0+git20130326-3_armhf.deb -O $MY_PATH/libttspico0.deb - wget http://ftp.fr.debian.org/debian/pool/non-free/s/svox/libttspico-utils_1.0+git20130326-3_armhf.deb -O $MY_PATH/libttspico-utils.deb -else - wget http://ftp.fr.debian.org/debian/pool/non-free/s/svox/libttspico0_1.0+git20130326-5_amd64.deb -O $MY_PATH/libttspico0.deb - wget http://ftp.fr.debian.org/debian/pool/non-free/s/svox/libttspico-utils_1.0+git20130326-9_amd64.deb -O $MY_PATH/libttspico-utils.deb -fi -sudo dpkg -i $MY_PATH/libttspico-data.deb || err=1 -sudo dpkg -i $MY_PATH/libttspico0.deb || err=1 -sudo dpkg -i $MY_PATH/libttspico-utils.deb || err=1 -sudo dpkg -i $MY_PATH/libav-tools.deb || sudo apt --fix-broken install -y || err=1 -rm $MY_PATH/libttspico-data.deb $MY_PATH/libttspico0.deb $MY_PATH/libttspico-utils.deb $MY_PATH/libav-tools.deb - - -# CONFIG NGINX -sudo cp -f $MY_PATH/default /etc/nginx/sites-available/ +# CONFIG NGINX TODO: NEED FIXING !!! +sudo cp -f $MY_PATH/../www/rompr.conf /etc/nginx/sites-available/ sudo sed -i "s/_USER/$USER/g" /etc/nginx/sites-available/default sudo systemctl restart nginx || err=1 diff --git a/g1sms/checknodes.sh b/g1sms/checknodes.sh index 26e6066..ea3e5eb 100755 --- a/g1sms/checknodes.sh +++ b/g1sms/checknodes.sh @@ -64,28 +64,28 @@ if [[ "$BAN" == "BAN" ]]; then # Get actual Duniter node used by silkaj SERVER=$(cat ./silkaj/src/constants.py | grep G1_DEFAULT_ENDPOINT | awk '{print $3}' | sed s/\"\,//g | sed s/\"//g) [[ ! $(grep $SERVER:443 shell/bad.nodes.txt) ]] && echo $SERVER:443 >> shell/bad.nodes.txt - sed -i "/$SERVER:443/d" ./shell/good.nodes.txt - echo "$SERVER:443 IS NOW in ./shell/bad.nodes.txt" + sed -i "/$SERVER:443/d" ./good.nodes.txt + echo "$SERVER:443 IS NOW in ./bad.nodes.txt" fi ### nodes.txt EMPTYNESS CARE -NBgood=$(cat ./shell/good.nodes.txt | wc -l) -NBbad=$(cat ./shell/bad.nodes.txt | wc -l) +NBgood=$(cat ./good.nodes.txt | wc -l) +NBbad=$(cat ./bad.nodes.txt | wc -l) if [[ $NBgood -le $NBbad ]]; then - echo "" > ./shell/good.nodes.txt - echo "" > ./shell/bad.nodes.txt + echo "" > ./good.nodes.txt + echo "" > ./bad.nodes.txt # TODO: Each decentralized App must have a source for its confidence to be UP and running and publishing latest code for our concensus behaviour! - echo "___ REFRESH ./shell/nodes.txt from g1.duniter.org:443 ___" - curl -s https://g1.duniter.org/network/peers | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g > "./shell/nodes.txt" - echo $(cat "./shell/nodes.txt") + echo "___ REFRESH ./nodes.txt from g1.duniter.org:443 ___" + curl -s https://g1.duniter.org/network/peers | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g > "./nodes.txt" + echo $(cat "./nodes.txt") fi ########### # CONTINUE # Grab the nodes we are actively watching - they will be in bold in the final output -watched=`grep -v "#" ./shell/nodes.txt|egrep "\!$"|awk '{print "#" $1 "#"}'` +watched=`grep -v "#" ./nodes.txt|egrep "\!$"|awk '{print "#" $1 "#"}'` # All nodes we are watching -nodes=`grep -v "#" ./shell/nodes.txt|awk '{print $1}'` +nodes=`grep -v "#" ./nodes.txt|awk '{print $1}'` # The index to generate separate file names index=0 # Wipe out the output directory @@ -120,25 +120,25 @@ do done longchain=$(ls -S /tmp/gnodewatch/chains/ | head -n 1) -cp /tmp/gnodewatch/chains/$longchain "./shell/good.nodes.txt" +cp /tmp/gnodewatch/chains/$longchain "./good.nodes.txt" ##################################################################################### # ASK peers to all good.nodes.txt -#for node in $(cat ./shell/good.nodes.txt); do +#for node in $(cat ./good.nodes.txt); do # NANODATE=$(date +%s%N); # DUN="https://$(echo $node| cut -d ":" -f 1)"; # curl -s -o $DIR/NODE.$NANODATE.$node ${DUN}/network/peers; #done # REFRESH from all known peers NEW nodes.txt -#cat /tmp/gnodewatch/NODE.* | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g | sort | uniq > "./shell/nodes.txt" +#cat /tmp/gnodewatch/NODE.* | jq '.peers[] | .endpoints' | grep BMAS | awk '{print $2,$3}' | sed s/\"//g | sed s/\,//g | sed s/\ /:/g | sort | uniq > "./nodes.txt" ##################################################################################### # Output Random actual best node -# Compare with ./shell/bad.nodes.txt +# Compare with ./bad.nodes.txt while [[ "$BAD" == "$DUNITER" ]]; do - DUNITER=$(shuf "./shell/good.nodes.txt" | head -n 1) - BAD=$(grep -Rw "$DUNITER" ./shell/bad.nodes.txt) + DUNITER=$(shuf "./good.nodes.txt" | head -n 1) + BAD=$(grep -Rw "$DUNITER" ./bad.nodes.txt) done ################# MODIFY silkaj constants.py silkaj=$(echo $DUNITER | cut -d ":" -f 1) diff --git a/g1sms/cron_CODE.backup.sh b/g1sms/cron_CODE.backup.sh index a62825c..158406b 100755 --- a/g1sms/cron_CODE.backup.sh +++ b/g1sms/cron_CODE.backup.sh @@ -5,8 +5,8 @@ # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) # BACKUP G1sms+ current Devlt code and push it with SWARM_CODE_MASTER to IPFS ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh now=$(date +%Y-%m-%d) MY_PATH="`dirname \"$0\"`" # relative diff --git a/g1sms/cron_CODE.upgrade.sh b/g1sms/cron_CODE.upgrade.sh index ca83152..82471c2 100755 --- a/g1sms/cron_CODE.upgrade.sh +++ b/g1sms/cron_CODE.upgrade.sh @@ -6,8 +6,8 @@ # BACKUP G1sms+ current Devlt code and push it with NODE_G1AUTHFILE encryption to IPFS ################################################################################ ## GET LATEST DEV $ROOT -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh now=$(date +%Y-%m-%d) dir=$(pwd | awk 'BEGIN { FS = "/" } ; {print $4}') cd .. diff --git a/g1sms/cron_G1TAG_REFRESH.sh b/g1sms/cron_G1TAG_REFRESH.sh index 874f45f..ad58109 100755 --- a/g1sms/cron_G1TAG_REFRESH.sh +++ b/g1sms/cron_G1TAG_REFRESH.sh @@ -14,12 +14,12 @@ IPFSNODEID=$(su $YOU -c "ipfs id -f='\n'") NANODATE=$(date -u +%s%N) #1569692075385428020 # PROTECT from null HASH -for tag in ./wallets/.$IPFSNODEID/TAG/*; do +for tag in ~/.zen/ipfs/.$IPFSNODEID/TAG/*; do function rmtag () { - echo "__SUB:cron_G1TAG_REFRESH.sh: rm -Rf ./wallets/.$IPFSNODEID/TAG/${tagj}" + echo "__SUB:cron_G1TAG_REFRESH.sh: rm -Rf ~/.zen/ipfs/.$IPFSNODEID/TAG/${tagj}" rm -Rf ./TAG/${tagj} - rm -f ./wallets/.$IPFSNODEID/TAG/${tagj} - rm -f ./wallets_swarm/.$IPFSNODEID/TAG/${tagj} + rm -f ~/.zen/ipfs/.$IPFSNODEID/TAG/${tagj} + rm -f ~/.zen/ipfs_swarm/.$IPFSNODEID/TAG/${tagj} rm -f /home/$YOU/.ipfs/keystore/${tagj} } @@ -63,7 +63,7 @@ for tag in ./wallets/.$IPFSNODEID/TAG/*; do echo "__SUB:cron_G1TAG_REFRESH.sh: GET PUBLISHKEY for that G1TAG"; su $YOU -c "ipfs get -o /home/$YOU/.ipfs/keystore/${RR}.crypt /ipns/$tagj/TAG_publishkey.MASTER.crypt" if [[ ! -f /home/$YOU/.ipfs/keystore/${RR}.crypt ]]; then log "__SUB:cron_MINUTE.sh: error getting publishkey"; continue; fi - ./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i /home/$YOU/.ipfs/keystore/${RR}.crypt -o /home/$YOU/.ipfs/keystore/$RR + ./natools.py decrypt -k "$NODE_G1AUTHFILE" -i /home/$YOU/.ipfs/keystore/${RR}.crypt -o /home/$YOU/.ipfs/keystore/$RR rm /home/$YOU/.ipfs/keystore/${RR}.crypt fi echo "__SUB:cron_G1TAG_REFRESH.sh: G1Tag PUBLISHKEY OK : /home/$YOU/.ipfs/keystore/${RR}" diff --git a/g1sms/cron_MINUTE.sh b/g1sms/cron_MINUTE.sh index 3eb4e60..a6144aa 100755 --- a/g1sms/cron_MINUTE.sh +++ b/g1sms/cron_MINUTE.sh @@ -18,8 +18,8 @@ if [[ "$USER" != "root" ]]; then echo "Hey, $USER you must at least be admin of if [[ "$YOU" == "" || "$YOU" == "root" ]]; then echo "BAD IPFS. Aucune installation IPFS satisfaisante ici... Ciao $YOU !"; exit; fi IPFSNODEID=$(su $YOU -c "ipfs id -f='\n'") cd $GPATH -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh timebar=$(date +%H:%M) @@ -42,39 +42,39 @@ if [[ "$1" == "PRINT" ]]; then ################################################################################ # PRINT G1Tag PRINTED FROM ANOTHER NODE (TODO: Correct BAD Cypher KEY + BUG why last image png layers are not printed???) # CREATE and REMOVE rr.bin -> done.rr - if [[ -d "./wallets_swarm/.$IPFSNODEID/PRINT/" ]]; then + if [[ -d "~/.zen/ipfs_swarm/.$IPFSNODEID/PRINT/" ]]; then log "__SUB:cron_MINUTE.sh: SEARCH NEW PRINT FOR ME .$IPFSNODEID" - mkdir -p ./wallets/.$IPFSNODEID/PRINT/ + mkdir -p ~/.zen/ipfs/.$IPFSNODEID/PRINT/ - for qrrtag in ./wallets_swarm/.$IPFSNODEID/PRINT/*.bin; do + for qrrtag in ~/.zen/ipfs_swarm/.$IPFSNODEID/PRINT/*.bin; do rr=$(echo $qrrtag | cut -d '/' -f 5 | cut -d '.' -f 1) - if [[ ! -f "./wallets/.$IPFSNODEID/PRINT/done.$rr" ]]; then + if [[ ! -f "~/.zen/ipfs/.$IPFSNODEID/PRINT/done.$rr" ]]; then log "__SUB:cron_MINUTE.sh: PRINT G1Tag $rr - START: $(date)" - ./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i "${qrrtag}" -o "/tmp/G1Tag.png" + ./natools.py decrypt -k "$NODE_G1AUTHFILE" -i "${qrrtag}" -o "/tmp/G1Tag.png" log "__SUB:cron_MINUTE.sh: natools.py decrypt - $(date)" brother_ql_create --model QL-700 "/tmp/G1Tag.png" --label-size 62 > "/tmp/G1Tag.bin" log "__SUB:cron_MINUTE.sh: brother_ql_create - $(date)" brother_ql_print "/tmp/G1Tag.bin" /dev/usb/lp0 log "__SUB:cron_MINUTE.sh: brother_ql_print - $(date)" # INFORM PRINT DONE - echo "OK" > ./wallets/.$IPFSNODEID/PRINT/done.$rr + echo "OK" > ~/.zen/ipfs/.$IPFSNODEID/PRINT/done.$rr I=$(ipfs_node_wallets_add) else lqrrtag=$(echo "${qrrtag}" | sed s/_swarm//g ) - log "__SUB:cron_MINUTE.sh: REMOVE OLD DONE PRINT ${lqrrtag} + ./wallets/.$IPFSNODEID/PRINT/done.$rr" - rm -f "./wallets/.$IPFSNODEID/PRINT/done.$rr" + log "__SUB:cron_MINUTE.sh: REMOVE OLD DONE PRINT ${lqrrtag} + ~/.zen/ipfs/.$IPFSNODEID/PRINT/done.$rr" + rm -f "~/.zen/ipfs/.$IPFSNODEID/PRINT/done.$rr" rm -f "${lqrrtag}" I=$(ipfs_node_wallets_add) fi done log "__SUB:cron_MINUTE.sh: REMOVE OLD PRINT MARKED AS DONE" - for scan in ./wallets_swarm/.Qm*/PRINT/done.*; do + for scan in ~/.zen/g1sms_wallets_swarm/.Qm*/PRINT/done.*; do lscan=$(echo $scan | sed s/_swarm//g ) lid=$(echo $scan | cut -d '/' -f 3 | cut -d '.' -f 2 ) lrr=$(echo $scan | cut -d '/' -f 5 | cut -d '.' -f 2 ) - log "__SUB:cron_MINUTE.sh: REMOVE ./wallets/.$lid/PRINT/$lrr.bin OLD PRINT ${lscan} SENT to $lid ($lrr.bin)" - rm -f ./wallets/.$lid/PRINT/$lrr.bin + log "__SUB:cron_MINUTE.sh: REMOVE ~/.zen/g1sms_wallets/.$lid/PRINT/$lrr.bin OLD PRINT ${lscan} SENT to $lid ($lrr.bin)" + rm -f ~/.zen/g1sms_wallets/.$lid/PRINT/$lrr.bin rm -f "${lscan}" I=$(ipfs_node_wallets_add) done @@ -88,7 +88,7 @@ fi ################################################################## if [[ "$1" == "KALKUN" ]]; then ################################################################## - for number in ./wallets/*; do + for number in ~/.zen/g1sms_wallets/*; do member="" phone=$(echo $number | cut -d '/' -f 3); if [[ -f $number/$phone.uidname ]]; then member=$(cat $number/$phone.uidname); fi diff --git a/g1sms/cron_VIR.recurrent.sh b/g1sms/cron_VIR.recurrent.sh index 74723f0..8e290a6 100755 --- a/g1sms/cron_VIR.recurrent.sh +++ b/g1sms/cron_VIR.recurrent.sh @@ -7,8 +7,8 @@ # Effectue les payements récurrents et enlève le vérrou (DESTROY) # TAKES CARE OF DOING RECURRENT PAYEMENTS EVERY DAY FOR ITS $PHONE G1Wallets # TODO: Add SMS Alert if G1sms Wallet is low... -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:cron_VIR.reccurent.sh: START" rm -f /tmp/VIR* @@ -16,7 +16,7 @@ echo "" > /tmp/VIR TODAY=$(date '+%Y%m%d') log "__SUB:cron_VIR.reccurent.sh: Searching payements to do for $TODAY" -for file in ./wallets/*/VIREMENTS.gpg ; do +for file in ~/.zen/g1sms_wallets/*/VIREMENTS.gpg ; do if [[ -f $file ]]; then log "__SUB:cron_VIR.reccurent.sh: FOUND $file decrypting with Node key" echo "${GPGPASS}" | gpg -d -q --output "/tmp/VIREMENTS" --yes --pinentry-mode loopback --passphrase-fd 0 "$file" @@ -44,10 +44,10 @@ while read line # echo -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] VIR $REF / $NB" PAY=$(./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] VIR $REF / $NB" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$PHONE" "Il est survenu un problème avec votre virement. Retour silkaj: $PAY ... $new"; else - new=$(./shell/checknodes.sh) + new=$(./checknodes.sh) sms_SEND "$PHONE" "$TODAY Virement automatique $REF vers $DESTUID : $PAY (Reste $NB)" cents=$(echo $(bc -l <<< "scale=0; $VIR * 100") | cut -d '.' -f 1) move_g1cents "$PHONE" "$DESTRIB" "$cents" @@ -60,10 +60,10 @@ while read line done < /tmp/VIR$TODAY # CHECK FOR LAST VIREMENTS AND CLEAN IT? -for virfile in "./wallets/*/VIREMENTS.gpg"; do +for virfile in "~/.zen/g1sms_wallets/*/VIREMENTS.gpg"; do phone=$(echo $virfile | cut -d '/' -f 3) if [[ "$phone" == "*" ]]; then exit; fi - echo "${GPGPASS}" | gpg -d -q --output "/tmp/$phone.VIREMENTS" --yes --pinentry-mode loopback --passphrase-fd 0 "./wallets/$phone/VIREMENTS.gpg" + echo "${GPGPASS}" | gpg -d -q --output "/tmp/$phone.VIREMENTS" --yes --pinentry-mode loopback --passphrase-fd 0 "~/.zen/g1sms_wallets/$phone/VIREMENTS.gpg" nv=0; tot=0; while read ligne do virs=(${ligne}); @@ -78,8 +78,8 @@ for virfile in "./wallets/*/VIREMENTS.gpg"; do if [[ $nv -eq 0 ]]; then log "__SUB:cron_VIR.reccurent.sh: Plus AUCUN payement récurrent !!" sms_SEND "$phone" "Plus AUCUN payement récurrent" - rm -f "./wallets/$phone/VIREMENTS.gpg" - rm -f "./wallets/$phone/VIREMENTS" + rm -f "~/.zen/g1sms_wallets/$phone/VIREMENTS.gpg" + rm -f "~/.zen/g1sms_wallets/$phone/VIREMENTS" I=$(ipfs_node_wallets_add) else log "__SUB:cron_VIR.reccurent.sh: Encore $nv payements récurrents à réaliser pour $tot G1" diff --git a/g1sms/diceware.sh b/g1sms/diceware.sh index 8219568..91d74c7 100755 --- a/g1sms/diceware.sh +++ b/g1sms/diceware.sh @@ -6,7 +6,7 @@ WORDCOUNT=${1-$MOTS} # Download the wordlist # wget -nc -O ~/.diceware-wordlist http://world.std.com/%7Ereinhold/diceware.wordlist.asc 2> /dev/null # print a list of the diceware words -cat ./shell/diceware-wordlist.txt | +cat ./diceware-wordlist.txt | awk '/[1-6][1-6][1-6][1-6][1-6]/{ print $2 }' | # randomize the list order shuf --random-source=/dev/urandom | diff --git a/g1sms/functions.sh b/g1sms/functions.sh index 85595a2..3d11f1b 100755 --- a/g1sms/functions.sh +++ b/g1sms/functions.sh @@ -19,15 +19,15 @@ function sms_SEND () { local dest="$1" local mess="$2" if [[ ${#dest} -eq 10 || ${#dest} -eq 12 ]]; then - if [[ -d ./wallets/$dest ]]; then + if [[ -d ~/.zen/g1sms_wallets/$dest ]]; then # TEST IF $dest IS ON CURRENT NODE gammu-smsd-inject TEXT "$dest" -text "$mess" 1>&2 else # Send SMS through $dest NODE (TODO: send it like PRINT, TASK, ...) - DESTNODEID=$(cat ./wallets_swarm/$dest/MASTERPHONE.ipfsid) + DESTNODEID=$(cat ~/.zen/g1sms_wallets_swarm/$dest/MASTERPHONE.ipfsid) log "$dest is managed by NODE: $DESTNODEID)" - mkdir "./wallets/.$DESTNODEID/SMS" - echo $mess > "./wallets/.$DESTNODEID/SMS/$dest.sms2send" + mkdir "~/.zen/g1sms_wallets/.$DESTNODEID/SMS" + echo $mess > "~/.zen/g1sms_wallets/.$DESTNODEID/SMS/$dest.sms2send" I=$(ipfs_node_wallets_add) fi else @@ -113,34 +113,34 @@ function ipfs_swarm_wallets_refresh (){ I=$(ipfs_node_wallets_add) # REFRESH SWARM MEMORY -mkdir -p "./wallets_swarm" -chown -R $YOU "./wallets_swarm" +mkdir -p "~/.zen/g1sms_wallets_swarm" +chown -R $YOU "~/.zen/g1sms_wallets_swarm" log "__SUB:ipfs_swarm_wallets_refresh: REFRESHING SWARM $PHONE shared memory..." -if [[ $PHONE ]]; then rm -Rf ./wallets_swarm/$PHONE; fi +if [[ $PHONE ]]; then rm -Rf ~/.zen/g1sms_wallets_swarm/$PHONE; fi -# GET IPNS published wallets from ALL SWARM NODES / TODO: IF NODES MISSING, check ./wallets_swarm/.QmNODES... -#log "__SUB:ipfs_swarm_wallets_refresh: IPFS: ipfs get --output=./wallets_swarm/ /ipns/$IPFSNODEID" -su $YOU -c "ipfs get --output=./wallets_swarm/ /ipns/$IPFSNODEID" +# GET IPNS published wallets from ALL SWARM NODES / TODO: IF NODES MISSING, check ~/.zen/g1sms_wallets_swarm/.QmNODES... +#log "__SUB:ipfs_swarm_wallets_refresh: IPFS: ipfs get --output=~/.zen/g1sms_wallets_swarm/ /ipns/$IPFSNODEID" +su $YOU -c "ipfs get --output=~/.zen/g1sms_wallets_swarm/ /ipns/$IPFSNODEID" count=1 # Search for All peers Nodes. TODO: To be changed when Swarm is too bug or not expendanding -#for id in ./wallets/.Qm*/; +#for id in ~/.zen/g1sms_wallets/.Qm*/; for id in $(su $YOU -c "ipfs swarm peers" | awk -F '/' '{print $7}'); do count=$((count+1)) id=$(echo $id | cut -d '.' -f 3 | cut -d '/' -f 1) - log "__SUB:ipfs_swarm_wallets_refresh: IPFS: ipfs get --output=./wallets_swarm/ /ipns/$id" - rm -Rf ./wallets_swarm/.$id - ./shell/timeout.sh -t 20 su $YOU -c "ipfs get --output=./wallets_swarm/ /ipns/$id" + log "__SUB:ipfs_swarm_wallets_refresh: IPFS: ipfs get --output=~/.zen/g1sms_wallets_swarm/ /ipns/$id" + rm -Rf ~/.zen/g1sms_wallets_swarm/.$id + ./timeout.sh -t 20 su $YOU -c "ipfs get --output=~/.zen/g1sms_wallets_swarm/ /ipns/$id" done -log "__SUB:ipfs_swarm_wallets_refresh: ./wallets_swarm/ RENEW from $count peers .........OK!!!" +log "__SUB:ipfs_swarm_wallets_refresh: ~/.zen/g1sms_wallets_swarm/ RENEW from $count peers .........OK!!!" ############################################################################" -# TREAT move_g1cents Tasks in ./wallets/.$IPFSNODEID -# IF NODE find in ./wallets_swarm/.$IPFSNODEID/TASK directory && Have it's G1 Wallet already (for natools crypto) -if [[ "$1" != "SIMPLE" && -d ./wallets_swarm/.$IPFSNODEID/TASK && -f "./wallets/.$IPFSNODEID/$IPFSNODEID.authfile.GPGPASS.gpg" ]]; then +# TREAT move_g1cents Tasks in ~/.zen/ipfs/.$IPFSNODEID +# IF NODE find in ~/.zen/ipfs_swarm/.$IPFSNODEID/TASK directory && Have it's G1 Wallet already (for natools crypto) +if [[ "$1" != "SIMPLE" && -d ~/.zen/ipfs_swarm/.$IPFSNODEID/TASK && -f "~/.zen/ipfs/.$IPFSNODEID/$IPFSNODEID.authfile.GPGPASS.gpg" ]]; then ############################################################################" -for task in $(ls ./wallets_swarm/.$IPFSNODEID/TASK/*.move_g1cents.*); # ./wallets/.$IPFSNODEID/TASK/$NANODATE.move_g1cents.$DESTPHONE.NODEPUB.crypt OR "done.$NANODATE" FILES +for task in $(ls ~/.zen/ipfs_swarm/.$IPFSNODEID/TASK/*.move_g1cents.*); # ~/.zen/ipfs/.$IPFSNODEID/TASK/$NANODATE.move_g1cents.$DESTPHONE.NODEPUB.crypt OR "done.$NANODATE" FILES do FTASK=$( echo $task | cut -d '/' -f 5 ) # "$NANODATE.move_g1cents.$DESTPHONE.NODEPUB.crypt" TNANO=$( echo $FTASK | cut -d '.' -f 1) # $NANODATE @@ -148,35 +148,35 @@ do TDEST=$( echo $FTASK | cut -d '.' -f 3) # $DESTPHONE log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) FOUND TASK $TNANO:$TTYPE:$TDEST " # MAKE LOCAL .$IPFSNODEID directory - mkdir -p ./wallets/.$IPFSNODEID/TASK/ + mkdir -p ~/.zen/ipfs/.$IPFSNODEID/TASK/ # TODO: CHECK BETTER NOT DONE YET and $NANODATE > $TNANO (=> detect NODES writing in the future!!) - if [[ ! -f "./wallets/.$IPFSNODEID/TASK/done.$TNANO" ]]; then # NOT DONE YET: NEW TASK! + if [[ ! -f "~/.zen/ipfs/.$IPFSNODEID/TASK/done.$TNANO" ]]; then # NOT DONE YET: NEW TASK! tdiff=$(bc -l <<< "$NANODATE - $TNANO") if [[ $tdiff -gt 0 ]]; then - # GET BACK MY NODE G1 Wallet authfile from my LOCAL ./wallets - echo "${GPGPASS}" | gpg -q -d --output "./NODEG1Wallet.authfile" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "./wallets/.$IPFSNODEID/$IPFSNODEID.authfile.GPGPASS.gpg" + # GET BACK MY NODE G1 Wallet authfile from my LOCAL ~/.zen/g1sms_wallets + echo "${GPGPASS}" | gpg -q -d --output "./NODEG1Wallet.authfile" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "~/.zen/ipfs/.$IPFSNODEID/$IPFSNODEID.authfile.GPGPASS.gpg" # DECRYPT and CAT move_g1cents VALUE - ./shell/natools.py decrypt -k "./NODEG1Wallet.authfile" -i "$task" -o "/tmp/move_g1cents.$TDEST" + ./natools.py decrypt -k "./NODEG1Wallet.authfile" -i "$task" -o "/tmp/move_g1cents.$TDEST" ZENVAL=$(cat "/tmp/move_g1cents.$TDEST") log "__SUB:ipfs_swarm_wallets_refresh: tdiff=$tdiff .$IPFSNODEID G1 = ./NODEG1Wallet.authfile :decrypt: Found $ZENVAL Zen to ADD" rm -f "./NODEG1Wallet.authfile" if [[ $ZENVAL -gt 0 ]]; then - curvalue=$(cat ./wallets/$TDEST/$TDEST.g1cents) + curvalue=$(cat ~/.zen/g1sms_wallets/$TDEST/$TDEST.g1cents) newvalue=$(bc -l <<< "$curvalue + $ZENVAL") - echo $newvalue > ./wallets/$TDEST/$TDEST.g1cents - echo "OK.$tdiff" > ./wallets/.$IPFSNODEID/TASK/done.$TNANO - log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) DONE! OPERATION: ($curvalue + $ZENVAL) = $newvalue Zen <=> ./wallets/$TDEST/$TDEST.g1cents:: OK" - # REFRESH ./wallets and PUBLISH + echo $newvalue > ~/.zen/g1sms_wallets/$TDEST/$TDEST.g1cents + echo "OK.$tdiff" > ~/.zen/ipfs/.$IPFSNODEID/TASK/done.$TNANO + log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) DONE! OPERATION: ($curvalue + $ZENVAL) = $newvalue Zen <=> ~/.zen/g1sms_wallets/$TDEST/$TDEST.g1cents:: OK" + # REFRESH ~/.zen/g1sms_wallets and PUBLISH I=$(ipfs_node_wallets_add) else - echo "KO.$tdiff" > ./wallets/.$IPFSNODEID/TASK/done.$TNANO - log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) ERROR! BAD: ($curvalue + $ZENVAL) = $newvalue Zen <=> ./wallets/$TDEST/$TDEST.g1cents :: KO" + echo "KO.$tdiff" > ~/.zen/ipfs/.$IPFSNODEID/TASK/done.$TNANO + log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) ERROR! BAD: ($curvalue + $ZENVAL) = $newvalue Zen <=> ~/.zen/g1sms_wallets/$TDEST/$TDEST.g1cents :: KO" I=$(ipfs_node_wallets_add) - sms_SEND "$ADMINPHONE" "ADMIN! TASK ERROR: .$IPFSNODEID($FTASK) ERROR! BAD: ($curvalue + $ZENVAL) = $newvalue Zen <=> ./wallets/$TDEST/$TDEST.g1cents :: KO" + sms_SEND "$ADMINPHONE" "ADMIN! TASK ERROR: .$IPFSNODEID($FTASK) ERROR! BAD: ($curvalue + $ZENVAL) = $newvalue Zen <=> ~/.zen/g1sms_wallets/$TDEST/$TDEST.g1cents :: KO" fi else # TODO: Bad NODE in the Future task !!! Make better BAD Node detection = Swarm Banish? - echo "KO.$tdiff" > ./wallets/.$IPFSNODEID/TASK/done.$TNANO + echo "KO.$tdiff" > ~/.zen/ipfs/.$IPFSNODEID/TASK/done.$TNANO log "__SUB:ipfs_swarm_wallets_refresh: .$IPFSNODEID($FTASK) ERROR! DATE PROBLEM: $NANODATE < $TNANO :: KO" I=$(ipfs_node_wallets_add) sms_SEND "$ADMINPHONE" "ADMIN! .$IPFSNODEID($FTASK) ERROR! DATE PROBLEM: $NANODATE < $TNANO :: KO" @@ -185,13 +185,13 @@ do done log "__SUB:ipfs_swarm_wallets_refresh: REMOVE OLD TASK MARKED AS DONE" - for scan in ./wallets_swarm/.Qm*/TASK/done.*; do + for scan in ~/.zen/g1sms_wallets_swarm/.Qm*/TASK/done.*; do lscan=$(echo $scan | sed s/_swarm//g ) lid=$(echo $scan | cut -d '/' -f 3 | cut -d '.' -f 2 ) lnano=$(echo $scan | cut -d '/' -f 5 | cut -d '.' -f 2 ) if [[ "$lid" != "$IPFSNODEID" ]]; then log "__SUB:ipfs_swarm_wallets_refresh: CLEANING done OLD TASK ${lscan} SENT to $lid ($lnano.bin)" - rm -f ./wallets/.$lid/TASK/$lnano.* + rm -f ~/.zen/g1sms_wallets/.$lid/TASK/$lnano.* I=$(ipfs_node_wallets_add) fi done @@ -206,11 +206,11 @@ fi function ipfs_node_wallets_add (){ ########################## ########################## - IWALLETS=$(su $YOU -c "ipfs add -rHq './wallets' | tail -n 1") + IWALLETS=$(su $YOU -c "ipfs add -rHq '~/.zen/g1sms_wallets' | tail -n 1") # CHAIN STATE FOR $IPFSNODEID - echo $IWALLETS > ./wallets/.$IPFSNODEID.wallets.chain - log "__SUB:ipfs_node_wallets_add: NEW './wallets' HASH ipfs ls $IWALLETS" + echo $IWALLETS > ~/.zen/ipfs/.$IPFSNODEID.wallets.chain + log "__SUB:ipfs_node_wallets_add: NEW '~/.zen/g1sms_wallets' HASH ipfs ls $IWALLETS" # PUBLISH IPNS NODE WALLETS NODEWALLETS=$(su $YOU -c "ipfs name publish --quieter /ipfs/$IWALLETS") @@ -222,9 +222,9 @@ function ipfs_node_wallets_add (){ ################################################################################################################################# function sms_uid2key (){ - RIBFILE="./wallets/$PHONE/$PHONE.uidrib" - NAMEFILE="./wallets/$PHONE/$PHONE.uidname" - UIDNAFILE="./wallets/$PHONE/$PHONE.uidna" + RIBFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidrib" + NAMEFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidname" + UIDNAFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidna" # New related wallet asked ASKWALLET="$1" #For micro payement @@ -249,7 +249,7 @@ function sms_uid2key (){ fi # Search fo duplicate - DUP=$(grep -Rwl "$ASKWALLET" ./wallets/*/*.uidname | cut -f 3 -d '/') + DUP=$(grep -Rwl "$ASKWALLET" ~/.zen/g1sms_wallets/*/*.uidname | cut -f 3 -d '/') if [[ "$DUP" != "" && "$DUP" != "$PHONE" ]]; then sms_SEND "$ADMINPHONE" "ADMIN! INFO: $PHONE prend le même $ASKWALLET, que $DUP" sms_SEND "$DUP" "Vous devez savoir que $ASKWALLET est associé à un autre téléphone que le votre également!" @@ -259,18 +259,18 @@ function sms_uid2key (){ # FIND ASKWALLET into wallets, wallest_swarm OR duniter (silkaj) DESTMEM="$VIRDEST" # SEARCH IN WALLETS - LOCAL=$(grep -Rwl "$ASKWALLET" ./wallets/*/*.uidna | cut -f 3 -d '/') + LOCAL=$(grep -Rwl "$ASKWALLET" ~/.zen/g1sms_wallets/*/*.uidna | cut -f 3 -d '/') if [[ "$LOCAL" != "" ]]; then # LOCAL G1sms account - DESTRIB=$(cat ./wallets/$LOCAL/$LOCAL.pub) + DESTRIB=$(cat ~/.zen/g1sms_wallets/$LOCAL/$LOCAL.pub) DESTPHONE=$LOCAL log "__SUB:sms_uid2key: FOUND LOCAL ($MASTERPHONE) G1sms+ wallet: $DESTRIB ($LOCAL)" else # SEARCH IN WALLETS SWARM - INSWARM=$(grep -Rwl "$ASKWALLET" ./wallets_swarm/*/*.uidna | cut -f 3 -d '/') + INSWARM=$(grep -Rwl "$ASKWALLET" ~/.zen/g1sms_wallets_swarm/*/*.uidna | cut -f 3 -d '/') if [[ "$INSWARM" != "" ]]; then - REMOTENODE=$(cat ./wallets_swarm/$INSWARM/MASTERPHONE.sms) - DESTRIB=$(cat ./wallets_swarm/$INSWARM/$INSWARM.pub) + REMOTENODE=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/MASTERPHONE.sms) + DESTRIB=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/$INSWARM.pub) DESTPHONE=$INSWARM log "__SUB:sms_uid2key: FOUND SWARM ($REMOTENODE) G1sms+ wallet: $DESTRIB ($INSWARM)" else @@ -279,9 +279,9 @@ function sms_uid2key (){ DESTRIB=$(./silkaj/silkaj id "$ASKWALLET" | grep -w "$ASKWALLET" | awk '{print $2}') log "__SUB:sms_uid2key: OUT OFF SWARM MEMBER wallet: $DESTRIB" # GET CESIUM+ geoPoint DATA (TODO: cron for GCHANGE SMS Alert) - curl -s ${CESIUM}/user/profile/${DESTRIB} | jq '._source.geoPoint' > "./wallets/$PHONE/$PHONE.uidgeo.json" - log "__SUB:sms_uid2key: GET CESIUM+ geoPoint and AVATAR : $(cat ./wallets/$PHONE/$PHONE.uidgeo.json)" - curl -s ${CESIUM}/user/profile/${DESTRIB} | jq '._source.avatar._content' | sed 's/\"//g' | base64 -d > "./wallets/$PHONE/$PHONE.avatar.png" + curl -s ${CESIUM}/user/profile/${DESTRIB} | jq '._source.geoPoint' > "~/.zen/g1sms_wallets/$PHONE/$PHONE.uidgeo.json" + log "__SUB:sms_uid2key: GET CESIUM+ geoPoint and AVATAR : $(cat ~/.zen/g1sms_wallets/$PHONE/$PHONE.uidgeo.json)" + curl -s ${CESIUM}/user/profile/${DESTRIB} | jq '._source.avatar._content' | sed 's/\"//g' | base64 -d > "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" fi fi @@ -309,30 +309,30 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" UNKNOWN=0 # TODO Optimize GLOBAL/local variables use, use more function array output ?! # Initiate PHONE settings files and values - IPFSNODEIDFILE="./wallets/$PHONE/MASTERPHONE.ipfsid" # Contains G1sms+ NODE IPFS id - SMSNODE="./wallets/$PHONE/MASTERPHONE.sms" # Contains G1sms+ SMS phone number - PINFILE="./wallets/$PHONE/$PHONE.pin" # Contains phone wallet diceware password - GPGPINFILE="./wallets/$PHONE/$PHONE.pin.gpg" # Contains g1smsnode cypher phone wallet diceware password - AUTHCRYPTFILE="./wallets/$PHONE/$PHONE.authfile.crypt" # Crypt with $NODE_G1PUBKEY - PUBKEYFILE="./wallets/$PHONE/$PHONE.pub" # Contains phone wallet public key (RIB) - UNITFILE="./wallets/$PHONE/$PHONE.unit" # Contains phone wallet prefered unit (LOVE,G1,DU) + IPFSNODEIDFILE="~/.zen/g1sms_wallets/$PHONE/MASTERPHONE.ipfsid" # Contains G1sms+ NODE IPFS id + SMSNODE="~/.zen/g1sms_wallets/$PHONE/MASTERPHONE.sms" # Contains G1sms+ SMS phone number + PINFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.pin" # Contains phone wallet diceware password + GPGPINFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.pin.gpg" # Contains g1smsnode cypher phone wallet diceware password + AUTHCRYPTFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.authfile.crypt" # Crypt with $NODE_G1PUBKEY + PUBKEYFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.pub" # Contains phone wallet public key (RIB) + UNITFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.unit" # Contains phone wallet prefered unit (LOVE,G1,DU) - RIBFILE="./wallets/$PHONE/$PHONE.uidrib" # Contains phone wallet related UID Pubkey - NAMEFILE="./wallets/$PHONE/$PHONE.uidname" # Contains the member UID related to wallet - MAILFILE="./wallets/$PHONE/$PHONE.email" # Contains the member EMAIL (Send BILLET) - GPGMAILFILE="./wallets/$PHONE/$PHONE.email.gpg" # Contains the member EMAIL (Send BILLET) - UIDNAFILE="./wallets/$PHONE/$PHONE.uidna" # Contains the G1sms+ UID Name for recursive VIR - GEOFILE="./wallets/$PHONE/$PHONE.uidgeo.json" # Contains the member GeoPoint from member Cesium+ related to wallet + RIBFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidrib" # Contains phone wallet related UID Pubkey + NAMEFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidname" # Contains the member UID related to wallet + MAILFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.email" # Contains the member EMAIL (Send BILLET) + GPGMAILFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.email.gpg" # Contains the member EMAIL (Send BILLET) + UIDNAFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidna" # Contains the G1sms+ UID Name for recursive VIR + GEOFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.uidgeo.json" # Contains the member GeoPoint from member Cesium+ related to wallet - RECFILE="./wallets/$PHONE/VIREMENTS" # File showing recurrent payements are left to be done with this G1sms Wallet - GPGRECFILE="./wallets/$PHONE/VIREMENTS.gpg" # Cypher file with GPGPASS (Node .Identity.PrivKey) - G1COUNTFILE="./wallets/$PHONE/$PHONE.g1cents" # Last sms_COUNT.sh call value - CHAINFILE="./wallets/$PHONE/$PHONE.chain" # Contains wallet last IPFS hash before ZEN value change + RECFILE="~/.zen/g1sms_wallets/$PHONE/VIREMENTS" # File showing recurrent payements are left to be done with this G1sms Wallet + GPGRECFILE="~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg" # Cypher file with GPGPASS (Node .Identity.PrivKey) + G1COUNTFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.g1cents" # Last sms_COUNT.sh call value + CHAINFILE="~/.zen/g1sms_wallets/$PHONE/$PHONE.chain" # Contains wallet last IPFS hash before ZEN value change - DABUIDF="./wallets/$PHONE/uidna.G1TAGNODE" # Contains G1Dab Name + DABUIDF="~/.zen/g1sms_wallets/$PHONE/uidna.G1TAGNODE" # Contains G1Dab Name # GET CURRENT NODE UIDNA (default DABUID) - NODEUIDNA=$(cat "./wallets/.$IPFSNODEID/$IPFSNODEID.uidna") - [[ $NODEUIDNA == "" ]] && NODEUIDNA=$(cat "./wallets/.$IPFSNODEID/_uidna") + NODEUIDNA=$(cat "~/.zen/ipfs/.$IPFSNODEID/$IPFSNODEID.uidna") + [[ $NODEUIDNA == "" ]] && NODEUIDNA=$(cat "~/.zen/ipfs/.$IPFSNODEID/_uidna") ###################################################################### # (NO PIN) = FIRST ACCOUNT: Create wallet if [ ! -f "$PINFILE" ]; then @@ -342,13 +342,13 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ####################### # Create Account Files ####################### - mkdir -p "./wallets/$PHONE/" - PIN=$(./shell/diceware.sh | xargs) + mkdir -p "~/.zen/g1sms_wallets/$PHONE/" + PIN=$(./diceware.sh | xargs) PUBKEY=$(./silkaj/silkaj generate_auth_file --auth-scrypt -salt="$PHONE" -password="$PIN") # BACKUP authfile available to authfile or PIN owner (DOUBLON AVEC PIN) TEST - log "__SUB:sms_INIT_ACCOUNT: ./shell/natools.py encrypt -p $PUBKEY -i ""./authfile"" -o ""$AUTHCRYPTFILE""" - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "./authfile" -o "$AUTHCRYPTFILE" + log "__SUB:sms_INIT_ACCOUNT: ./natools.py encrypt -p $PUBKEY -i ""./authfile"" -o ""$AUTHCRYPTFILE""" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "./authfile" -o "$AUTHCRYPTFILE" rm -f ./authfile log "__SUB:sms_INIT_ACCOUNT: !! G1 Wallet CREATED: $PHONE $PIN : $PUBKEY" @@ -358,9 +358,9 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" # 4 derniers chiffres du numéro de téléphone TAIL=${PHONE:8:4} # No UIDNA yet. Create new - UIDNA=$(./shell/diceware.sh 1 | xargs) + UIDNA=$(./diceware.sh 1 | xargs) # Check if already existing among all swarm wallets - while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done + while [[ $(grep -Rwl $UIDNA$TAIL ~/.zen/g1sms_wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./diceware.sh 1 | xargs); done echo "$UIDNA$TAIL" > "$UIDNAFILE" ####################### @@ -406,15 +406,15 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" echo "$MASTERPHONE" > "$SMSNODE" TAIL=${PHONE:8:4} # No UIDNA yet. Create new - UIDNA=$(./shell/diceware.sh 1 | xargs) + UIDNA=$(./diceware.sh 1 | xargs) # Check if already existing among all swarm wallets - while [[ $(grep -Rwl $UIDNA$TAIL ./wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./shell/diceware.sh 1 | xargs); done + while [[ $(grep -Rwl $UIDNA$TAIL ~/.zen/g1sms_wallets_swarm/*/*.uidna) ]]; do UIDNA=$(./diceware.sh 1 | xargs); done echo "$UIDNA$TAIL" > "$UIDNAFILE" PIN=$(cat "$PINFILE" | xargs) log "__SUB:sms_INIT_ACCOUNT: Old G1sms wallet ;) SECURITY HOLE... Chiffrage PGP du PIN !!!" echo "${GPGPASS}" | gpg -q --output "$GPGPINFILE" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "$PINFILE"; - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "$PINFILE" -o "$PINFILE.$NODE_UIDNA.crypt" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "$PINFILE" -o "$PINFILE.$NODE_UIDNA.crypt" else # ------------>8------------------ log "__SUB:sms_INIT_ACCOUNT: Déchiffrage PGP PIN..." @@ -422,7 +422,7 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" # TODO make decypher less stress on filesystem, use /tmp and ramdisk echo "${GPGPASS}" | gpg -d -q --output "$PINFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGPINFILE" PIN=$(cat "$PINFILE" | xargs) - [[ "$PIN" == "" && -f "$PINFILE.$NODE_UIDNA.crypt" ]] && ./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i "$PINFILE.$NODE_UIDNA.crypt" -o "$PINFILE" && PIN=$(cat "$PINFILE"); + [[ "$PIN" == "" && -f "$PINFILE.$NODE_UIDNA.crypt" ]] && ./natools.py decrypt -k "$NODE_G1AUTHFILE" -i "$PINFILE.$NODE_UIDNA.crypt" -o "$PINFILE" && PIN=$(cat "$PINFILE"); [[ "$PIN" != "" ]] && echo "" > "$PINFILE" || log "SYSTEM ERROR :: PIN EMPTY !!! GPG???" fi @@ -441,14 +441,14 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" log "__SUB:sms_INIT_ACCOUNT: DECODING EMAIL .gpg... " echo "${GPGPASS}" | gpg -d -q --output "$MAILFILE" --yes --pinentry-mode loopback --passphrase-fd 0 "$GPGMAILFILE" MAIL=$(cat "$MAILFILE"); - [[ $MAIL == "" && -f "$MAILFILE.node.crypt" ]] && ./shell/natools.py decrypt -k "$NODE_G1AUTHFILE" -i "$MAILFILE.node.crypt" -o "$MAILFILE" && MAIL=$(cat "$MAILFILE"); + [[ $MAIL == "" && -f "$MAILFILE.node.crypt" ]] && ./natools.py decrypt -k "$NODE_G1AUTHFILE" -i "$MAILFILE.node.crypt" -o "$MAILFILE" && MAIL=$(cat "$MAILFILE"); # EMPTY CLEAR EMAIL FILE [[ $MAIL != "" ]] && echo "" > "$MAILFILE" || log "SYSTEM ERROR :: MAIL EMPTY !!! GPG???" fi # ------------8<------------------ # REMOVE OLD HISTORY FILES - rm -f ./wallets/$PHONE/$PHONE.hist + rm -f ~/.zen/g1sms_wallets/$PHONE/$PHONE.hist # ------------>8------------------ # PUBLISH GLOBAL VARS FROM ACCOUNT FILES @@ -500,7 +500,7 @@ log "__SUB:sms_INIT_ACCOUNT: ($1=phone, $2=NOSMS)" ################################################################################################################################# function check_account (){ log "__SUB:check_account: SILKAJ...... max 30 sec....." -AMOUNTG1=$(./shell/timeout.sh -t 30 ./silkaj/silkaj amount "$PUBKEY") +AMOUNTG1=$(./timeout.sh -t 30 ./silkaj/silkaj amount "$PUBKEY") AMOUNTDU=$(bc <<< "scale=2; $AMOUNTG1 / $DUFACTOR") AMOUNTLOVE=$(bc <<< "$AMOUNTG1 * 100 / $DUFACTOR") @@ -520,17 +520,17 @@ G1cents=$(echo "$AMOUNTG1*100" | bc -l | awk '{print int($0)}') log "__SUB:check_account: $PHONE: $AMOUNTG1 = $AMOUNT $UNIT ($G1cents) - $PUBKEY" if [[ "$G1cents" != "" ]]; then - NN=$(cat "./wallets/$PHONE/$PHONE.n") + NN=$(cat "~/.zen/g1sms_wallets/$PHONE/$PHONE.n") ((NN++)) - echo "$NN" > "./wallets/$PHONE/$PHONE.n" - echo $G1cents > "./wallets/$PHONE/$PHONE.g1cents" + echo "$NN" > "~/.zen/g1sms_wallets/$PHONE/$PHONE.n" + echo $G1cents > "~/.zen/g1sms_wallets/$PHONE/$PHONE.g1cents" # REFRESH NODE IPFS wallets & PUBLISH I=$(ipfs_node_wallets_add) # Register modification - echo "$I" > "./wallets/$PHONE/$PHONE.chain" + echo "$I" > "~/.zen/g1sms_wallets/$PHONE/$PHONE.chain" else # BAN actual Duniter Node in case of silkaj timeout. - export NEWDUNITER=$(./shell/checknodes.sh 'BAN') + export NEWDUNITER=$(./checknodes.sh 'BAN') log "__SUB:check_account: !!! SILKAJ IS TOO SLOW !!! => NEW DUNITER SERVER: $NEWDUNITER" fi @@ -563,7 +563,7 @@ esac # GET G1sms wallet AMOUNTG1 and CHECK for right balance log "__SUB:make_accounting: LOCAL $VIR amount for $PHONE : $PUBKEY" # Try to ask silkaj. If timeout, use SWARM last known $PHONE.g1cents value -AMOUNTG1=$(./shell/timeout.sh -t 30 ./silkaj/silkaj amount "$PUBKEY") +AMOUNTG1=$(./timeout.sh -t 30 ./silkaj/silkaj amount "$PUBKEY") if [[ "$AMOUNTG1" == "" ]]; then AMOUNTG1=0; fi # TAX AND MINIMUM WALLET ACCOUNT CALCULATION PERCENT=0$(bc -l <<< "scale=2; $VIR / $SWARMCOMM") @@ -589,34 +589,34 @@ function move_g1cents (){ log "__SUB:move_g1cents: $phonesrc ($zenvalue) -> $pubkeydest :: $G1COUNTFILE ::" ### CHANGE INPUT VALUE #### - curvalue=$(cat ./wallets/$phonesrc/$phonesrc.g1cents | cut -d '.' -f 1) + curvalue=$(cat ~/.zen/g1sms_wallets/$phonesrc/$phonesrc.g1cents | cut -d '.' -f 1) newvalue=$(bc -l <<< "$curvalue - $zenvalue") - echo $newvalue > ./wallets/$phonesrc/$phonesrc.g1cents - log "__SUB:move_g1cents: DEBIT: OK APPLY $curvalue - $zenvalue = $newvalue TO ./wallets/$phonesrc/$phonesrc.g1cents" + echo $newvalue > ~/.zen/g1sms_wallets/$phonesrc/$phonesrc.g1cents + log "__SUB:move_g1cents: DEBIT: OK APPLY $curvalue - $zenvalue = $newvalue TO ~/.zen/g1sms_wallets/$phonesrc/$phonesrc.g1cents" ### CHANGE OUTPUT VALUE #### # TEST IF $dest is a wallets_ G1sms PUBKEY? - winnerphone=$(grep -Rwl "$pubkeydest" ./wallets_swarm/*/*.pub | cut -d '.' -f 2 | cut -d '/' -f 3) + winnerphone=$(grep -Rwl "$pubkeydest" ~/.zen/g1sms_wallets_swarm/*/*.pub | cut -d '.' -f 2 | cut -d '/' -f 3) if [[ $winnerphone ]]; then # GET INFORMATON ON MANAGER NODE - NODEID=$(cat ./wallets_swarm/$winnerphone/MASTERPHONE.ipfsid) + NODEID=$(cat ~/.zen/g1sms_wallets_swarm/$winnerphone/MASTERPHONE.ipfsid) if [[ "$NODEID" == "$IPFSNODEID" ]]; then # ACTUAL NODE IS WALLET MANAGING NODE ;) - curvalue=$(cat ./wallets/$winnerphone/$winnerphone.g1cents | cut -d '.' -f 1) + curvalue=$(cat ~/.zen/g1sms_wallets/$winnerphone/$winnerphone.g1cents | cut -d '.' -f 1) newvalue=$(bc -l <<< "$curvalue + $zenvalue") - echo $newvalue > ./wallets/$winnerphone/$winnerphone.g1cents - log "__SUB:move_g1cents: CREDIT: OK APPLY $curvalue + $zenvalue = $newvalue TO ./wallets/$winnerphone/$winnerphone.g1cents" + echo $newvalue > ~/.zen/g1sms_wallets/$winnerphone/$winnerphone.g1cents + log "__SUB:move_g1cents: CREDIT: OK APPLY $curvalue + $zenvalue = $newvalue TO ~/.zen/g1sms_wallets/$winnerphone/$winnerphone.g1cents" else # MUST ASK MANAGER NODE TO CORRECT g1cents FOR $winnerphone WALLET # WRITE TASK TO .$NODEID CHANNEL - mkdir -p ./wallets/.$NODEID/TASK/ + mkdir -p ~/.zen/g1sms_wallets/.$NODEID/TASK/ # USE natools with NODEPUB crypt echo "$zenvalue" > "/tmp/move_g1cents.$winnerphone" # GET NODE G1sms Wallet PUBKEY - NODEPUB=$(cat ./wallets_swarm/.$NODEID/$NODEID.pub) - ./shell/natools.py encrypt -p $NODEPUB -i "/tmp/move_g1cents.$winnerphone" -o "./wallets/.$NODEID/TASK/$NANODATE.move_g1cents.$winnerphone.NODEPUB.crypt" - log "__SUB:move_g1cents: CREDIT: WRITE TASK TO ./wallets/.$NODEID/$NANODATE.move_g1cents.$winnerphone.NODEPUB.crypt " + NODEPUB=$(cat ~/.zen/g1sms_wallets_swarm/.$NODEID/$NODEID.pub) + ./natools.py encrypt -p $NODEPUB -i "/tmp/move_g1cents.$winnerphone" -o "~/.zen/g1sms_wallets/.$NODEID/TASK/$NANODATE.move_g1cents.$winnerphone.NODEPUB.crypt" + log "__SUB:move_g1cents: CREDIT: WRITE TASK TO ~/.zen/g1sms_wallets/.$NODEID/$NANODATE.move_g1cents.$winnerphone.NODEPUB.crypt " rm -f /tmp/move_g1cents.$winnerphone fi else diff --git a/g1sms/init_keys.sh b/g1sms/init_keys.sh index 35127e1..dc0a6ed 100755 --- a/g1sms/init_keys.sh +++ b/g1sms/init_keys.sh @@ -42,25 +42,25 @@ if [[ ! -e "./g1sms.preoni.pub.key" && -f "./g1sms.priv.key" ]]; then ln -s ./g1sms.pub.key ./g1sms.preoni.pub.key elif [[ ! -f ./g1sms.preoni.priv.key ]]; then # CREATE NODE G1 KEYS AND FILES - mkdir -p ./wallets/.$IPFSNODEID/TASK + mkdir -p ~/.zen/ipfs/.$IPFSNODEID/TASK ################################################ # GIVE NAME TO NODE G1 WALLET: "0000diceware" - # CREATE "preoni" KeyS & ./wallets/.Qm***/_files + # CREATE "preoni" KeyS & ~/.zen/g1sms_wallets/.Qm***/_files ################################################ # 4 derniers chiffres du MASTERPHONE + diceware PRE=${MASTERPHONE:8:4} - ZUID=$(./shell/diceware.sh 1 | xargs) + ZUID=$(./diceware.sh 1 | xargs) # Check if already existing among all swarm wallets - while [[ $(grep -Rwl "$PRE$ZUID" ./wallets_swarm/.*/_uidna) ]]; do ZUID=$(./shell/diceware.sh 1 | xargs); done + while [[ $(grep -Rwl "$PRE$ZUID" ~/.zen/g1sms_wallets_swarm/.*/_uidna) ]]; do ZUID=$(./diceware.sh 1 | xargs); done NODE_UIDNA="$PRE$ZUID" - NODE_PIN=$(./shell/diceware.sh | xargs) + NODE_PIN=$(./diceware.sh | xargs) NODE_G1PUBKEY=$(./silkaj/silkaj generate_auth_file --auth-scrypt -salt="$NODE_UIDNA" -password="$NODE_PIN") if [[ ! $NODE_G1PUBKEY ]]; then log "PROBLEME CREATION DU WALLET G1 POUR $NODE_UIDNA = $IPFSNODEID"; exit; fi log "__SUB:initkeys.sh: NODE G1WALLET CESIUM: $NODE_UIDNA / $NODE_PIN CREATED..." # WRITE NODE_UIDNA - echo "$NODE_UIDNA" > "./wallets/.$IPFSNODEID/_uidna" ################# _uidna + echo "$NODE_UIDNA" > "~/.zen/ipfs/.$IPFSNODEID/_uidna" ################# _uidna ############ SYSTEM MODIFY hosts & hostname ################ # WRITE NODE uidna NAME TO /etc/hosts & .Qm*/_uidna file @@ -69,30 +69,30 @@ elif [[ ! -f ./g1sms.preoni.priv.key ]]; then ############################################################ # BACKUP AUTHFILE FOR FOR SWARM USE (TODO: Refine Swarm, Node access): GIVES SMARM WITHDRAW ACTION - ./shell/natools.py encrypt -p $SWARM_G1PUBKEY -i "./authfile" -o "./wallets/.$IPFSNODEID/_authfile.swarm.crypt" + ./natools.py encrypt -p $SWARM_G1PUBKEY -i "./authfile" -o "~/.zen/ipfs/.$IPFSNODEID/_authfile.swarm.crypt" - echo $NODE_G1PUBKEY > "./wallets/.$IPFSNODEID/_pub" ################# _pub - echo $IPFSNODEID > "./wallets/.$IPFSNODEID/_ipfsid" ################# _ipfsid + echo $NODE_G1PUBKEY > "~/.zen/ipfs/.$IPFSNODEID/_pub" ################# _pub + echo $IPFSNODEID > "~/.zen/ipfs/.$IPFSNODEID/_ipfsid" ################# _ipfsid log "__SUB:initkeys.sh: [ADMIN] G1sms+ CREATE G1WALLET FOR: $IPFSNODEID: _pub = $NODE_G1PUBKEY " # BACKUP $IPFSNODEID config ################# _ipfsconfig.swarm.crypt : GIVES SMARM NODE RESTORE ACTION - ./shell/natools.py encrypt -p $SWARM_G1PUBKEY -i "/home/$YOU/.ipfs/config" -o "./wallets/.$IPFSNODEID/_ipfsconfig.swarm.crypt" - log "__SUB:initkeys.sh: [ADMIN] BACKUP IPFS NODE CONFIG to ./wallets/.$IPFSNODEID/_ipfsconfig.swarm.crypt" + ./natools.py encrypt -p $SWARM_G1PUBKEY -i "/home/$YOU/.ipfs/config" -o "~/.zen/ipfs/.$IPFSNODEID/_ipfsconfig.swarm.crypt" + log "__SUB:initkeys.sh: [ADMIN] BACKUP IPFS NODE CONFIG to ~/.zen/ipfs/.$IPFSNODEID/_ipfsconfig.swarm.crypt" # Cyper & Empty PIN - echo "${NODE_PIN}" > "./wallets/.$IPFSNODEID/_pin" ################# _pin / _pin.node.crypt / _pin.gpg - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "./wallets/.$IPFSNODEID/_pin" -o "./wallets/.$IPFSNODEID/_pin.node.crypt" - echo "${GPGPASS}" | gpg -q --output "./wallets/.$IPFSNODEID/_pin.gpg" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "./wallets/.$IPFSNODEID/_pin" - echo "" > "./wallets/.$IPFSNODEID/_pin" + echo "${NODE_PIN}" > "~/.zen/ipfs/.$IPFSNODEID/_pin" ################# _pin / _pin.node.crypt / _pin.gpg + ./natools.py encrypt -p $NODE_G1PUBKEY -i "~/.zen/ipfs/.$IPFSNODEID/_pin" -o "~/.zen/ipfs/.$IPFSNODEID/_pin.node.crypt" + echo "${GPGPASS}" | gpg -q --output "~/.zen/ipfs/.$IPFSNODEID/_pin.gpg" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "~/.zen/ipfs/.$IPFSNODEID/_pin" + echo "" > "~/.zen/ipfs/.$IPFSNODEID/_pin" - echo "314" > "./wallets/.$IPFSNODEID/_g1cents" ################# _g1cents - echo $NANODATE > "./wallets/.$IPFSNODEID/_nanodate" ################# _nanodate + echo "314" > "~/.zen/ipfs/.$IPFSNODEID/_g1cents" ################# _g1cents + echo $NANODATE > "~/.zen/ipfs/.$IPFSNODEID/_nanodate" ################# _nanodate # SILKAJ INIT G1 NODE WALLET TX_IN=$(./silkaj/silkaj transaction --auth-file -file="$SWARM_G1AUTHFILE" --amount=3.24 --output=$NODE_G1PUBKEY --comment="[G1sms+] G1NODE ($ADMINPSEUDO) $NODE_UIDNA $IPFSNODEID" -y) TX_OUT=$(./silkaj/silkaj transaction --auth-scrypt -salt="$NODE_UIDNA" -password="$NODE_PIN" --amount=0.1 --output=$SWARM_G1PUBKEY --comment="[G1sms+] G1NODE ($ADMINPSEUDO) $NODE_UIDNA $IPFSNODEID:ACK" -y) - log "__SUB:initkeys.sh: [ADMIN] NODE G1sms+ $NODE_UIDNA : ls ./wallets/.$IPFSNODEID" + log "__SUB:initkeys.sh: [ADMIN] NODE G1sms+ $NODE_UIDNA : ls ~/.zen/ipfs/.$IPFSNODEID" gammu-smsd-inject -l TEXT "$ADMINPHONE" -text "[ADMIN] G1sms+ NODE $NODE_UIDNA ($IPFSNODEID)" 1>&2 gammu-smsd-inject -l TEXT "$ADMINPHONE" -text "$NODE_G1PUBKEY" 1>&2 @@ -101,15 +101,15 @@ elif [[ ! -f ./g1sms.preoni.priv.key ]]; then echo $NODE_G1PUBKEY > ./g1sms.preoni.pub.key fi -NODE_UIDNA=$(cat "./wallets/.$IPFSNODEID/_uidna") +NODE_UIDNA=$(cat "~/.zen/ipfs/.$IPFSNODEID/_uidna") ## INIT NODE G1 PUB & PRIV KEY NODE_G1PUBKEY=$(cat "${GPATH}/g1sms.preoni.pub.key") NODE_G1AUTHFILE="${GPATH}/g1sms.preoni.priv.key" ########################################################## # MEMORIZE NODE NANODATE EXECUTION TIME (for ntpdate regular sync) -if [[ -f ./wallets/.$IPFSNODEID/_nanodate ]]; then - last=$(cat ./wallets/.$IPFSNODEID/_nanodate) +if [[ -f ~/.zen/ipfs/.$IPFSNODEID/_nanodate ]]; then + last=$(cat ~/.zen/ipfs/.$IPFSNODEID/_nanodate) timediff=$( echo "${NANODATE} - ${last}" | bc -l ) # NODE TIME SYNC 600 milliards de nanosecondes = 600 s = 10 mn if [[ $timediff -gt 600000000000 ]]; then @@ -117,32 +117,32 @@ if [[ -f ./wallets/.$IPFSNODEID/_nanodate ]]; then log "__SUB:ntpdate pool.ntp.org: $timediff $(ntpdate pool.ntp.org)" export NANODATE=$(date -u +%s%N) fi - echo $NANODATE > ./wallets/.$IPFSNODEID/_nanodate + echo $NANODATE > ~/.zen/ipfs/.$IPFSNODEID/_nanodate fi ################################################################ #INFORM ABOUT NODE CAPACITIES -export NODEPUB=$(cat "./wallets/.$IPFSNODEID/_pub") +export NODEPUB=$(cat "~/.zen/ipfs/.$IPFSNODEID/_pub") ## IS IT A SMS NODE (gammu-smsd is installed)?? if [[ $G1SMS ]]; then - echo $MASTERPHONE > "./wallets/.$IPFSNODEID/_sms" + echo $MASTERPHONE > "~/.zen/ipfs/.$IPFSNODEID/_sms" else - if [ -f "./wallets/.$IPFSNODEID/_sms" ]; then rm -f "./wallets/.$IPFSNODEID/_sms"; fi + if [ -f "~/.zen/ipfs/.$IPFSNODEID/_sms" ]; then rm -f "~/.zen/ipfs/.$IPFSNODEID/_sms"; fi fi ## IS THERE USB PRINTER CONNECTED? if [[ -e "/dev/usb/lp0" ]]; then log "G1CORE: IMPRESSION G1Tag ACTIF .............." - echo $ADRESSE > "./wallets/.$IPFSNODEID/_where" + echo $ADRESSE > "~/.zen/ipfs/.$IPFSNODEID/_where" fi ## IS THERE SERIAL QR CODE READER CONNECTED? if [[ -e "/dev/ttyACM0" ]]; then log "G1CORE: SCAN G1Tag ACTIF .............." export G1TX="YES" - echo "/dev/ttyACM0" > "./wallets/.$IPFSNODEID/_scan" + echo "/dev/ttyACM0" > "~/.zen/ipfs/.$IPFSNODEID/_scan" else - if [ -f "./wallets/.$IPFSNODEID/_scan" ]; then rm -f "./wallets/.$IPFSNODEID/_scan"; fi + if [ -f "~/.zen/ipfs/.$IPFSNODEID/_scan" ]; then rm -f "~/.zen/ipfs/.$IPFSNODEID/_scan"; fi fi diff --git a/g1sms/manual_BILLETS_PERIMES.sh b/g1sms/manual_BILLETS_PERIMES.sh index b7d84ec..10b2582 100755 --- a/g1sms/manual_BILLETS_PERIMES.sh +++ b/g1sms/manual_BILLETS_PERIMES.sh @@ -6,8 +6,8 @@ ################################################################################ # TODO: Before June 2020: Get "./billets/$bpath/note.authfile.GPGPASS.gpg" for automatic Payback # Search for old G1Billets for final CHK : Forget & Transfer G1 ? -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh # Existence days number can be $1 if [[ "$1" ]]; then vieux="$1"; else vieux=210; fi diff --git a/g1sms/sms_ABO.sh b/g1sms/sms_ABO.sh index 28ff437..3f8e7b5 100755 --- a/g1sms/sms_ABO.sh +++ b/g1sms/sms_ABO.sh @@ -9,8 +9,8 @@ # Gère les Abonnements aux communications PUSH SMS ################################################################## # TODO: Create information Channels and moderate OPT IN/OUT -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_ABO.sh: START ($1=PHONE, $2=SERVICE)" PHONE=$1 SERVICE=$2 diff --git a/g1sms/sms_ADMIN.sh b/g1sms/sms_ADMIN.sh index dd45b7f..540d720 100755 --- a/g1sms/sms_ADMIN.sh +++ b/g1sms/sms_ADMIN.sh @@ -6,9 +6,9 @@ ################################################################################ # Accessible seulement pour ADMINPHONE. # Permet de lancer des paquets de SMS aux membres, wallets, ... -# TODO Add OptIN/OUT options (./shell/sms_ABO.sh) + Extand ADMIN functions... -source ./shell/init.sh -source ./shell/functions.sh +# TODO Add OptIN/OUT options (./sms_ABO.sh) + Extand ADMIN functions... +source ./init.sh +source ./functions.sh log "__SUB:sms_ADMIN.sh: START ($1=CMD, $2=MESSAGE)" CMD="$1" @@ -21,10 +21,10 @@ case "$CMD" in # Get it from first MESSAGE message word... towoo=$(echo $MESSAGE | cut -d ' ' -f 1) - SEARCH=$(grep -Rwl "$towoo" ./wallets_swarm/*/*.uidna* | tail -n 1 | cut -f 3 -d '/') + SEARCH=$(grep -Rwl "$towoo" ~/.zen/g1sms_wallets_swarm/*/*.uidna* | tail -n 1 | cut -f 3 -d '/') if [[ "$SEARCH" != "" ]]; then - REMOTENODE=$(cat ./wallets_swarm/$SEARCH/MASTERPHONE.sms) - DESTRIB=$(cat ./wallets_swarm/$SEARCH/$SEARCH.pub) + REMOTENODE=$(cat ~/.zen/g1sms_wallets_swarm/$SEARCH/MASTERPHONE.sms) + DESTRIB=$(cat ~/.zen/g1sms_wallets_swarm/$SEARCH/$SEARCH.pub) DESTPHONE=$SEARCH log "__SUB:sms_ADMIN.sh: FOUND $towoo on NODE ($REMOTENODE) G1sms+ wallet: $DESTRIB : $DESTPHONE)" @@ -37,7 +37,7 @@ case "$CMD" in MEM) log "__SUB:sms_ADMIN.sh: Send $MESSAGE message to All NODE members" - for f in ./wallets/*/*.uidname; do + for f in ~/.zen/g1sms_wallets/*/*.uidname; do uid=$(cat $f); num=$(echo $f | cut -d '/' -f3); if [[ "$num" == "$ADMINPHONE" || "$num" == "$MASTERPHONE" ]]; then continue; fi @@ -45,31 +45,31 @@ case "$CMD" in sms_SEND "$num" "$uid, $MESSAGE" sleep 5 done - sms_SEND "$ADMINPHONE" "ADMIN! Message envoyé aux $(cat ./wallets/*/*.uidname | wc -l) membres de ce NODE" + sms_SEND "$ADMINPHONE" "ADMIN! Message envoyé aux $(cat ~/.zen/g1sms_wallets/*/*.uidname | wc -l) membres de ce NODE" ;; ALL) log "__SUB:sms_ADMIN.sh: Send $MESSAGE message to All NODE G1sms wallets" - for f in ./wallets/*; do + for f in ~/.zen/g1sms_wallets/*; do num=$(echo $f | cut -d '/' -f3); if [[ "$num" == "$ADMINPHONE" || "$num" == "$MASTERPHONE" ]]; then continue; fi log "__SUB:sms_ADMIN.sh: Send SMS to $num" sms_SEND "$num" "$MESSAGE" sleep 5 done - sms_SEND "$ADMINPHONE" "ADMIN! Message envoyé aux $(ls ./wallets/ | cut -d '/' -f3 | wc -l) possesseur de G1sms Wallets de ce NODE" + sms_SEND "$ADMINPHONE" "ADMIN! Message envoyé aux $(ls ~/.zen/g1sms_wallets/ | cut -d '/' -f3 | wc -l) possesseur de G1sms Wallets de ce NODE" ;; SWARM) log "__SUB:sms_ADMIN.sh: Send $MESSAGE message to All SWARM G1sms wallets" - for f in ./wallets_swarm/+33*; do + for f in ~/.zen/g1sms_wallets_swarm/+33*; do num=$(echo $f | cut -d '/' -f3); if [[ "$num" == "$ADMINPHONE" || "$num" == "$MASTERPHONE" ]]; then continue; fi log "__SUB:sms_ADMIN.sh: Send SMS to $num" sms_SEND "$num" "$MESSAGE" sleep 5 done - sms_SEND "$ADMINPHONE" "ADMIN! Message: $MESSAGE envoyé aux $(ls ./wallets_swarm/ | cut -d '/' -f3 | wc -l) PHONE G1sms Wallets du SWARM" + sms_SEND "$ADMINPHONE" "ADMIN! Message: $MESSAGE envoyé aux $(ls ~/.zen/g1sms_wallets_swarm/ | cut -d '/' -f3 | wc -l) PHONE G1sms Wallets du SWARM" ;; *) diff --git a/g1sms/sms_AIDE.sh b/g1sms/sms_AIDE.sh index 0bd21ad..b03d4ab 100755 --- a/g1sms/sms_AIDE.sh +++ b/g1sms/sms_AIDE.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "X sms_AIDE.sh ($1=phone)" sms_INIT_ACCOUNT "$1" "NOSMS" diff --git a/g1sms/sms_BILLET.sh b/g1sms/sms_BILLET.sh index 0680cac..bd81fa8 100755 --- a/g1sms/sms_BILLET.sh +++ b/g1sms/sms_BILLET.sh @@ -5,8 +5,8 @@ # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ # Create and print 6 G1Billets de nn LOVE -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_BILLET.sh: ($1=phone, $2=VALbillet)" phone="$1" @@ -59,7 +59,7 @@ testmin=$( echo "${VIR} < ${MIN}" | bc -l ) log "__SUB:sms_BILLET.sh: TEST : $VIR < $MIN ? $testmin" # silkaj NODE CHANGE !!! -#SILKAJNODE=$(./shell/checknodes.sh) +#SILKAJNODE=$(./checknodes.sh) #log "NEW SILKAJ NODE: $SILKAJNODE" if [[ "$testmin" -eq "1" ]] @@ -70,17 +70,17 @@ then while [ $boucle -lt $NBbillets ] do # Creation du numéro de billet - NUMBER=$(./shell/diceware.sh 2 | xargs) + NUMBER=$(./diceware.sh 2 | xargs) bpath=$(echo $NUMBER | sed 's/ /_/g') # Cas d'un billet existant while [ -d "./billets/$bpath" ] do - NUMBER=$(./shell/diceware.sh 2 | xargs) + NUMBER=$(./diceware.sh 2 | xargs) bpath=$(echo $NUMBER | sed 's/ /_/g') done - SECRET=$(./shell/diceware.sh 4 | xargs) + SECRET=$(./diceware.sh 4 | xargs) boucle=$(bc -l <<< "$boucle + 1") @@ -92,7 +92,7 @@ then log "__SUB:sms_BILLET.sh: authfile KEY : ./billets/$bpath/note.authfile.GPGPASS.gpg" mkdir -p "./billets/$bpath" echo "${GPGPASS}" | gpg -q --output "./billets/$bpath/note.authfile.GPGPASS.gpg" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "./authfile" - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "./authfile" -o "./billets/$bpath/note.authfile.$NODE_UIDNA.crypt" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "./authfile" -o "./billets/$bpath/note.authfile.$NODE_UIDNA.crypt" rm -f "./authfile" log_history $PHONE "G1BILLET, $TRANSAC, $BILLETPUBKEY" @@ -113,8 +113,8 @@ then log "Remplissage: $TRANSAC G1... $BILLETPUBKEY = $PAY" # CREATION FICHIER IMAGE BILLET - $(./shell/sms_BILLET_MAKE.sh "$NUMBER" "$SECRET" "$VALbillet" "$UNIT" "$TRANSAC" "$BILLETPUBKEY" "$MEMBER" "$TRANSAC" "$PHONE") - log "./shell/sms_BILLET_MAKE.sh \"$NUMBER\" \"$SECRET\" \"$VALbillet\" \"$UNIT\" \"$TRANSAC\" \"$BILLETPUBKEY\" \"$MEMBER\" \"$TRANSAC\" \"$PHONE\"" + $(./sms_BILLET_MAKE.sh "$NUMBER" "$SECRET" "$VALbillet" "$UNIT" "$TRANSAC" "$BILLETPUBKEY" "$MEMBER" "$TRANSAC" "$PHONE") + log "./sms_BILLET_MAKE.sh \"$NUMBER\" \"$SECRET\" \"$VALbillet\" \"$UNIT\" \"$TRANSAC\" \"$BILLETPUBKEY\" \"$MEMBER\" \"$TRANSAC\" \"$PHONE\"" # Transaction to create Link BILLET <-> MEMBER RIB => Decrease BILLET value ! sleep 2 diff --git a/g1sms/sms_BILLETCHK.sh b/g1sms/sms_BILLETCHK.sh index b0e0c1d..13be53e 100755 --- a/g1sms/sms_BILLETCHK.sh +++ b/g1sms/sms_BILLETCHK.sh @@ -2,8 +2,8 @@ # If 4 words provided => Check if Billet exists and return BILLET AMOUNT VALUE # If 7 words provided => if Billet exists, transfer AMOUNT to PHONE & destroy BILLET # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "X sms_BILLETCHK.sh $0" PHONE="$1" diff --git a/g1sms/sms_BILLET_MAKE.sh b/g1sms/sms_BILLET_MAKE.sh index 18c1493..a3d3cf7 100755 --- a/g1sms/sms_BILLET_MAKE.sh +++ b/g1sms/sms_BILLET_MAKE.sh @@ -8,10 +8,10 @@ ############################################################################ # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) # TEST: -# ./shell/sms_BILLET_MAKE.sh "nu me ro test" "se cr et" 100 LOVE 10.04 "https://g1sms.fr" G1SMS TEST +# ./sms_BILLET_MAKE.sh "nu me ro test" "se cr et" 100 LOVE 10.04 "https://g1sms.fr" G1SMS TEST ############################################################################ -source "./shell/init.sh" -source "./shell/functions.sh" +source "./init.sh" +source "./functions.sh" NUMERO="$1" SECRET="$2" @@ -22,7 +22,7 @@ NOTERIB="$6" MEMBER="$7" TRANSAC="$8" PHONE="$9" -log "X sudo ./shell/sms_BILLET_MAKE.sh \"$1\" \"$2\" \"$3\" \"$4\" \"$5\" \"$6\" \"$7\" \"$8\"" +log "X sudo ./sms_BILLET_MAKE.sh \"$1\" \"$2\" \"$3\" \"$4\" \"$5\" \"$6\" \"$7\" \"$8\"" if [[ "$NOTERIB" == "" || "$MEMBER" == "" ]] then @@ -45,16 +45,16 @@ valid="0${valid:0:2}" # ADD VALIDITY to convert: -pointsize 20 -draw 'text 380,410 "'"A encaisser avant le 01/$valid/$year"'"' \ # ADD Avatar on G1 Logo SouthEast -if [[ $(file "./wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then - composite -compose Over -gravity East -geometry +15+0 -dissolve 33% "./wallets/$PHONE/$PHONE.avatar.png" "./shell/Oeuro.jpg" "/tmp/$NUMERO.jpg" - composite -compose Over -gravity West -geometry +15+0 -dissolve 33% "./wallets/$PHONE/$PHONE.avatar.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" +if [[ $(file "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then + composite -compose Over -gravity East -geometry +15+0 -dissolve 33% "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" "./Oeuro.jpg" "/tmp/$NUMERO.jpg" + composite -compose Over -gravity West -geometry +15+0 -dissolve 33% "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" else - composite -compose Over -gravity East -geometry +15+0 -dissolve 33% "./shell/G1Anar.png" "./shell/Oeuro.jpg" "/tmp/$NUMERO.jpg" - composite -compose Over -gravity West -geometry +15+0 -dissolve 33% "./shell/G1Anar.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" + composite -compose Over -gravity East -geometry +15+0 -dissolve 33% "./G1Anar.png" "./Oeuro.jpg" "/tmp/$NUMERO.jpg" + composite -compose Over -gravity West -geometry +15+0 -dissolve 33% "./G1Anar.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" fi # Add G1Billet_LOVE.png logo (250px) -composite -compose Over -gravity SouthWest -geometry +50+50 -dissolve 70% "./shell/G1Billet_LOVE.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" +composite -compose Over -gravity SouthWest -geometry +50+50 -dissolve 70% "./G1Billet_LOVE.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" # Prepare BILLET qrcode verification URL qrencode -s 3 -o "/tmp/$NUMERO_NOTERIB.png" "$NOTERIB" @@ -66,28 +66,28 @@ composite -compose Over -gravity NorthEast -geometry +50+25 "/tmp/$NUMERO_NOTERI # Add June logo case "$MONTANT" in 10) - convert "./shell/g1.png" -fuzz 20% -fill grey -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill grey -opaque '#e5912b' "/tmp/g1.png" ;; 20) - convert "./shell/g1.png" -fuzz 20% -fill green -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill green -opaque '#e5912b' "/tmp/g1.png" ;; 50) - convert "./shell/g1.png" -fuzz 20% -fill orange -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill orange -opaque '#e5912b' "/tmp/g1.png" ;; 100) - convert "./shell/g1.png" -fuzz 20% -fill blue -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill blue -opaque '#e5912b' "/tmp/g1.png" ;; 200) - convert "./shell/g1.png" -fuzz 20% -fill purple -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill purple -opaque '#e5912b' "/tmp/g1.png" ;; 500) - convert "./shell/g1.png" -fuzz 20% -fill red -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill red -opaque '#e5912b' "/tmp/g1.png" ;; 1000) - convert "./shell/g1.png" -fuzz 20% -fill black -opaque '#e5912b' "/tmp/g1.png" + convert "./g1.png" -fuzz 20% -fill black -opaque '#e5912b' "/tmp/g1.png" ;; *) - cp "./shell/g1.png" "/tmp/g1.png" + cp "./g1.png" "/tmp/g1.png" ;; esac composite -compose Over -gravity SouthEast -geometry +20+20 -dissolve 90% "/tmp/g1.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg" diff --git a/g1sms/sms_COUNT.sh b/g1sms/sms_COUNT.sh index db68e8c..200725f 100755 --- a/g1sms/sms_COUNT.sh +++ b/g1sms/sms_COUNT.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "X sms_COUNT.sh ($1=phone $2=NOSMS)" PHONE=$1 TODAY=$(date '+%Y%m%d') @@ -25,7 +25,7 @@ AMOUNT=${accounting[1]} UNIT=${accounting[2]} # SEARCH FOR VIREMENT -if [[ -f ./wallets/$PHONE/VIREMENTS.gpg ]]; then +if [[ -f ~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg ]]; then echo "FOUND $file decrypting with Node key" echo "${GPGPASS}" | gpg -d -q --output "/tmp/VIREMENTS.$PHONE" --yes --pinentry-mode loopback --passphrase-fd 0 "$file" declare -a LIST diff --git a/g1sms/sms_DESTROY.sh b/g1sms/sms_DESTROY.sh index 4b53d1c..03e5b69 100755 --- a/g1sms/sms_DESTROY.sh +++ b/g1sms/sms_DESTROY.sh @@ -4,18 +4,18 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "${c_yellow}__SUB:sms_DESTROY.sh: START ($1=phone, $2=uid)$c_" PHONE="$1" MEMBERUID="$2" TODAY=$(date '+%Y%m%d') -if [[ -f "./wallets/$PHONE/VIREMENTS" ]]; then +if [[ -f "~/.zen/g1sms_wallets/$PHONE/VIREMENTS" ]]; then # CHECK IF ALL DONE. - log "__SUB:sms_DESTROY.sh: FOUND "./wallets/$PHONE/VIREMENTS" decrypting with Node key" - echo "${GPGPASS}" | gpg -d -q --output "/tmp/VIREMENTS.$PHONE" --yes --pinentry-mode loopback --passphrase-fd 0 "./wallets/$PHONE/VIREMENTS.gpg" + log "__SUB:sms_DESTROY.sh: FOUND "~/.zen/g1sms_wallets/$PHONE/VIREMENTS" decrypting with Node key" + echo "${GPGPASS}" | gpg -d -q --output "/tmp/VIREMENTS.$PHONE" --yes --pinentry-mode loopback --passphrase-fd 0 "~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg" for next in $(cat /tmp/VIREMENTS.$PHONE | cut -d ' ' -f 1); do if [[ $next -ge $TODAY ]]; then log "__SUB:sms_DESTROY.sh: VIREMENT $next >= $TODAY" @@ -54,8 +54,8 @@ $ADMINPSEUDO @ $NODEUIDNA $back" sms_SEND "$PHONE" "$mess" - rm -Rf ./wallets/$PHONE; - rm -Rf ./wallets_swarm/$PHONE; + rm -Rf ~/.zen/g1sms_wallets/$PHONE; + rm -Rf ~/.zen/g1sms_wallets_swarm/$PHONE; cents=$(echo $(bc -l <<< "scale=0; $GETLIMIT * 100") | cut -d '.' -f 1) move_g1cents "$PHONE" "$MEMRIB" "$cents" cents=$(echo $(bc -l <<< "scale=0; $LIMIT * 100") | cut -d '.' -f 1) @@ -64,7 +64,7 @@ sms_SEND "$PHONE" "$mess" log "__SUB:sms_DESTROY.sh: WALLET DESTROYED : $PHONE / $UIDNA / $MEMBER : ${c_green}OK$c_" fi else - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$PHONE" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; log "${c_red}__SUB:sms_DESTROY.sh: END WITH ERRORS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~$c_" exit diff --git a/g1sms/sms_EMAIL.sh b/g1sms/sms_EMAIL.sh index f70b16b..7a690e9 100755 --- a/g1sms/sms_EMAIL.sh +++ b/g1sms/sms_EMAIL.sh @@ -8,15 +8,15 @@ # Configure in /etc/ssmtp # Send email with file attachement: mpack -s "Logo G1Tag" /home/pi/G1sms+/G1Tag.png dest@email.ext -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_EMAIL.sh.sh: START ($1=phone, $2=mail)" phone="$1" mail="$2" -MAILFILE="./wallets/$phone/$phone.email" # Contains the member EMAIL (Send BILLET) +MAILFILE="~/.zen/g1sms_wallets/$phone/$phone.email" # Contains the member EMAIL (Send BILLET) # Initialise PHONE, PIN, PUBKEY, UNIT ... sms_INIT_ACCOUNT "$phone" "NOSMS" @@ -28,7 +28,7 @@ fi if [[ "$mail" != "" ]]; then echo "$mail" > "$MAILFILE" - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "$MAILFILE" -o "$MAILFILE.node.crypt" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "$MAILFILE" -o "$MAILFILE.node.crypt" echo "" > "$MAILFILE" log "__SUB:sms_EMAIL.sh.sh: EMAIL $MEMBER ($PHONE) NOUVEAU: $mail... Publishing to IPFS" ipfs_node_wallets_add diff --git a/g1sms/sms_ERROR.sh b/g1sms/sms_ERROR.sh index 6bac774..bddd7a5 100755 --- a/g1sms/sms_ERROR.sh +++ b/g1sms/sms_ERROR.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "X sms_ERROR.sh ($1=phone, $2=message)" MESS="Commande inconnue $2." diff --git a/g1sms/sms_G1TAG.sh b/g1sms/sms_G1TAG.sh index 8e7bef9..4f4af5e 100755 --- a/g1sms/sms_G1TAG.sh +++ b/g1sms/sms_G1TAG.sh @@ -14,11 +14,11 @@ # # TAG 250 => Imprime un G1Tag rempli de 250 UNIT # TAG 2 100 => Imprime 100 G1Tag BON de 2 UNIT -# PHONE any ./wallets/IDs +# PHONE any ~/.zen/g1sms_wallets/IDs # TODO: for multi-channel -> Use HASHLINK + UIDNA + NODE_UIDNA + AMOUNT ... ########################################################################################### -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_G1TAG.sh: START ($1=PHONE, $2=AMOUNT, $3=NUMBER)" PHONE=$1 @@ -73,8 +73,8 @@ fi ##### IS G1DAB NODE? if [[ ! $PASSENGER && ! $G1DAB ]]; then - if [[ -f ./wallets/$PHONE/ipfsid.G1TAGNODE ]]; then - DABnode=$(cat ./wallets/$PHONE/ipfsid.G1TAGNODE) + if [[ -f ~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE ]]; then + DABnode=$(cat ~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE) if [[ "$DABnode" == "$IPFSNODEID" ]]; then sms_ERROR "$PHONE" "IMPRIMANTE G1Tag sur $DABnode non détectée!! Choisissez un autre G1Dab..." log "__SUB:sms_G1TAG.sh: IMPRIMANTE G1Tag non détectée!!" @@ -84,19 +84,19 @@ if [[ ! $PASSENGER && ! $G1DAB ]]; then fi # TODO: SEARCH PROXIMITY DAB LOCATION (GeoPoint + GPS)... -# for node in ./wallets_swarm/.*/*.where; do +# for node in ~/.zen/g1sms_wallets_swarm/.*/*.where; do # done ########################################################### # silkaj NODE CHANGE !!! -#SILKAJNODE=$(./shell/checknodes.sh) +#SILKAJNODE=$(./checknodes.sh) #log "NEW SILKAJ NODE: $SILKAJNODE" ########################################### # PAY VIR + PERCENT G1 ML=$(bc -l <<< "scale=2; $VIR + $PERCENT") -PAY=$(./shell/timeout.sh -t 29 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$ML" --output="$NODE_G1PUBKEY" --comment="[G1sms+] ACHAT $3 G1Tag(s) - $2 $UNIT" -y) +PAY=$(./timeout.sh -t 29 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$ML" --output="$NODE_G1PUBKEY" --comment="[G1sms+] ACHAT $3 G1Tag(s) - $2 $UNIT" -y) if [[ "$PAY" == "" || "$(echo $PAY | cut -d '|' -f 1)" == "KO" ]]; then - # new=$(./shell/checknodes.sh "BAN") + # new=$(./checknodes.sh "BAN") sms_ERROR "$PHONE" "Il est survenu un problème lors de votre virement: $PAY / Silkaj: $new"; exit else @@ -110,12 +110,12 @@ c=0 while [[ $c -lt $NUMBER ]]; do ((c++)) # Nom du G1Tag imprimé du le QRCode RJ - AA=$(./shell/diceware.sh 6 | xargs); # Nom = Diceware de 6 mots + AA=$(./diceware.sh 6 | xargs); # Nom = Diceware de 6 mots RR=$(echo ${AA} | sed s/\ //g ); # Nom concaténé PR=$(echo ${AA} | cut -d ' ' -f 1 ); # Prénom du G1Tag # Create Unique G1tag in all SWARM! - while [[ $(ls ./wallets_swarm/.Qm*/TAG/${RR}) ]]; do - AA=$(./shell/diceware.sh 6 | xargs); RR=$(echo ${AA} | sed s/\ //g ); PR=$(echo ${AA} | cut -d ' ' -f 1 ); + while [[ $(ls ~/.zen/g1sms_wallets_swarm/.Qm*/TAG/${RR}) ]]; do + AA=$(./diceware.sh 6 | xargs); RR=$(echo ${AA} | sed s/\ //g ); PR=$(echo ${AA} | cut -d ' ' -f 1 ); done # Clef de chiffrage PGP imprimée sur le QRCode BJ BB=$(date +%N | sha256sum | base64 | head -c 32) #YjY4MDc3OTVjNmUxN2JhYWVjYmU3MDcy @@ -129,7 +129,7 @@ TAGID="./TAG/${RR}/TAG_id" #Nom du TAG TAGCURRENCY="./TAG/${RR}/TAG_currency" # ZEN (0.01 G1) TAGAMOUNT="./TAG/${RR}/TAG_amount" # Tag amount. It is! TAGTYPE="./TAG/${RR}/TAG_type" # G1 Tag type -TAGPASSENGER="./TAG/${RR}/TAG_passenger" # Reference to G1Tag owner/counter put in "./wallets/.$IPFSNODEID/TAG/${J}" +TAGPASSENGER="./TAG/${RR}/TAG_passenger" # Reference to G1Tag owner/counter put in "~/.zen/ipfs/.$IPFSNODEID/TAG/${J}" # ... GESTION DE LA CLEF DE PUBLICATION IPNS ".ipfs/keystore/${RR}" ... TAGPUBLISH_B_GPG="./TAG/${RR}/TAG_publishkey.B.gpg" # ipns publish key B PGP cyphered TAGPUBLISH_PHONE_CRYPT="./TAG/${RR}/TAG_publishkey.phone.crypt" # natools.py crypt with creator G1sms Wallet PUBKEY @@ -177,13 +177,13 @@ TAGCHAIN="./TAG/${RR}/TAG_chain" # contains IPFS current ipfs hash # GIVE PHONE CREATOR G1WALLET ACCESS TO ZEN TAG # Enregistrement de la clef de publication chiffrée par $PUBKEY la clef publique du portefeuille G1 createur. - ./shell/natools.py encrypt -p $PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_PHONE_CRYPT" + ./natools.py encrypt -p $PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_PHONE_CRYPT" # GIVE NODE_UIDNA ACCESS TO ZEN TAG - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_NODE_CRYPT" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_NODE_CRYPT" # GIVE SWARM ACCESS TO ZEN TAG - ./shell/natools.py encrypt -p $SWARM_G1PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_SWARM_CRYPT" + ./natools.py encrypt -p $SWARM_G1PUBKEY -i "/home/$YOU/.ipfs/keystore/${RR}" -o "$TAGPUBLISH_SWARM_CRYPT" ########################################################### # TAG IPFS STORAGE & G1Tag IPNS PUBLISHING @@ -197,14 +197,14 @@ TAGCHAIN="./TAG/${RR}/TAG_chain" # contains IPFS current ipfs hash J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}") echo "${J}" > "$TAGIPNS" - # KEEP G1Tag J MEMORY in NODE ./wallets/.$IPFSNODEID/TAG/ (TODO: OPTIMIZE SWARM SYNC and REPUBLISH) - mkdir -p "./wallets/.$IPFSNODEID/TAG/" + # KEEP G1Tag J MEMORY in NODE ~/.zen/ipfs/.$IPFSNODEID/TAG/ (TODO: OPTIMIZE SWARM SYNC and REPUBLISH) + mkdir -p "~/.zen/ipfs/.$IPFSNODEID/TAG/" # WRITE PASSENGER to J Link (G1Tag is stick to it: PHONE, NODE, FILE ) # TODO USE SHA256 ID !!! - echo "$PHONE" > "./wallets/.$IPFSNODEID/TAG/${J}" + echo "$PHONE" > "~/.zen/ipfs/.$IPFSNODEID/TAG/${J}" if [[ $PASSENGER ]]; then HPASSENGER=$(echo -n $PASSENGER | sha256sum | cut -d ' ' -f 1) - echo "$HPASSENGER" > "./wallets/.$IPFSNODEID/TAG/${J}"; + echo "$HPASSENGER" > "~/.zen/ipfs/.$IPFSNODEID/TAG/${J}"; fi ########################################################### @@ -219,15 +219,15 @@ TAGCHAIN="./TAG/${RR}/TAG_chain" # contains IPFS current ipfs hash log "__SUB:sms_G1TAG.sh: CREATE WRITE QRCODE [] BJ: ${BB} # ipfs ls /ipns/${J}" # COMPOSE G1TAG PRINT + TAG_READ.png + TAG_WRITE.png - composite -compose Over -resize 133% -gravity West "./TAG/${RR}/TAG_READ.png" "./shell/g1tag.png" "./TAG/${RR}/${RR}.png" + composite -compose Over -resize 133% -gravity West "./TAG/${RR}/TAG_READ.png" "./g1tag.png" "./TAG/${RR}/${RR}.png" composite -compose Over -gravity SouthEast "./TAG/${RR}/TAG_WRITE.png" "./TAG/${RR}/${RR}.png" "./TAG/${RR}/${RR}.png" # ADD Avatar in the Center -# if [[ $(file "./wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then -# composite -compose Over -resize 150% -gravity Center "./wallets/$PHONE/$PHONE.avatar.png" "./TAG/${RR}/${RR}.png" "./TAG/${RR}/${RR}.png" +# if [[ $(file "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then +# composite -compose Over -resize 150% -gravity Center "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" "./TAG/${RR}/${RR}.png" "./TAG/${RR}/${RR}.png" # else -# composite -compose Over -resize 100% -gravity Center "./shell/G1Anar.png" "./TAG/${RR}/${RR}.png" "./TAG/${RR}/${RR}.png" +# composite -compose Over -resize 100% -gravity Center "./G1Anar.png" "./TAG/${RR}/${RR}.png" "./TAG/${RR}/${RR}.png" # fi @@ -241,23 +241,23 @@ TAGCHAIN="./TAG/${RR}/TAG_chain" # contains IPFS current ipfs hash # convert "./TAG/${RR}/${RR}.png" -rotate -180 "./TAG/${RR}/${RR}.png" # QL-700 PRINT PREPARE - if [[ -f "./wallets/$PHONE/ipfsid.G1TAGNODE" ]]; then - destnode=$(cat "./wallets/$PHONE/ipfsid.G1TAGNODE") + if [[ -f "~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE" ]]; then + destnode=$(cat "~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE") if [[ "$destnode" == "" || "$destnode" == "$IPFSNODEID" ]]; then log "__SUB:sms_G1TAG.sh: Local PRINT ${RR} # ipfs ls /ipns/${J}" brother_ql_create --model QL-700 "./TAG/${RR}/${RR}.png" --label-size 62 > "./TAG/${RR}/${RR}.bin" brother_ql_print "./TAG/${RR}/${RR}.bin" /dev/usb/lp0 else # PRINT ON ANOTHER G1Dab. Send files to G1Tag Printer TODO: Could use DESTNODEPUB instead of NODE_G1PUBKEY ? - log "__SUB:sms_G1TAG.sh: Remote PRINT :: ./wallets/.$destnode/PRINT/${RR}.bin " - mkdir -p "./wallets/.$destnode/PRINT/" + log "__SUB:sms_G1TAG.sh: Remote PRINT :: ~/.zen/g1sms_wallets/.$destnode/PRINT/${RR}.bin " + mkdir -p "~/.zen/g1sms_wallets/.$destnode/PRINT/" # TODO: USE $DEST_G1PUBKEY is better - ./shell/natools.py encrypt -p $NODE_G1PUBKEY -i "./TAG/${RR}/${RR}.png" -o "./wallets/.$destnode/PRINT/${RR}.bin" + ./natools.py encrypt -p $NODE_G1PUBKEY -i "./TAG/${RR}/${RR}.png" -o "~/.zen/g1sms_wallets/.$destnode/PRINT/${RR}.bin" fi else # log "__SUB:sms_G1TAG.sh: Becoming default PRINTER :: $IPFSNODEID" - echo "$IPFSNODEID" > "./wallets/$PHONE/ipfsid.G1TAGNODE" + echo "$IPFSNODEID" > "~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE" brother_ql_create --model QL-700 "./TAG/${RR}/${RR}.png" --label-size 62 > "./TAG/${RR}/${RR}.bin" brother_ql_print "./TAG/${RR}/${RR}.bin" /dev/usb/lp0 destnode="$IPFSNODEID" @@ -269,14 +269,14 @@ done # PRINT $PHONE WALLET PUBKEY #################################################### if [[ "$destnode" == "" || "$destnode" == "$IPFSNODEID" ]]; then - qrencode -s 5 -o "/tmp/G1PubQR.$PHONE.png" "$(cat ./wallets/$PHONE/$PHONE.pub)" - composite -compose Over -gravity West "/tmp/G1PubQR.$PHONE.png" "./shell/g1tag.png" "/tmp/G1PubQR.$PHONE.png" + qrencode -s 5 -o "/tmp/G1PubQR.$PHONE.png" "$(cat ~/.zen/g1sms_wallets/$PHONE/$PHONE.pub)" + composite -compose Over -gravity West "/tmp/G1PubQR.$PHONE.png" "./g1tag.png" "/tmp/G1PubQR.$PHONE.png" - if [[ $(file "./wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then - composite -compose Over -gravity Center "./wallets/$PHONE/$PHONE.avatar.png" "/tmp/G1PubQR.$PHONE.png" "/tmp/G1PubQR.$PHONE.png" + if [[ $(file "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" | grep 'PNG') ]]; then + composite -compose Over -gravity Center "~/.zen/g1sms_wallets/$PHONE/$PHONE.avatar.png" "/tmp/G1PubQR.$PHONE.png" "/tmp/G1PubQR.$PHONE.png" fi - if [[ -f ./wallets/$PHONE/$PHONE.uidrib ]]; then - qrencode -s 6 -o "/tmp/G1MemQR.$PHONE.png" "$(cat ./wallets/$PHONE/$PHONE.uidrib)"; + if [[ -f ~/.zen/g1sms_wallets/$PHONE/$PHONE.uidrib ]]; then + qrencode -s 6 -o "/tmp/G1MemQR.$PHONE.png" "$(cat ~/.zen/g1sms_wallets/$PHONE/$PHONE.uidrib)"; composite -compose Over -gravity SouthEast "/tmp/G1MemQR.$PHONE.png" "/tmp/G1PubQR.$PHONE.png" "/tmp/G1PubQR.$PHONE.png" && rm /tmp/G1MemQR.$PHONE.png fi diff --git a/g1sms/sms_NEW.sh b/g1sms/sms_NEW.sh index 4bfa424..ec7e91d 100755 --- a/g1sms/sms_NEW.sh +++ b/g1sms/sms_NEW.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "${c_yellow}X sms_NEW.sh ($1=phone, $2=uid)$c_" PHONE="$1" diff --git a/g1sms/sms_PAY.sh b/g1sms/sms_PAY.sh index d989cc9..0e082dc 100755 --- a/g1sms/sms_PAY.sh +++ b/g1sms/sms_PAY.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_PAY.sh: START ($1=PHONE, $2=PHONEDEST, $3=AMOUNT)" phone="$1" @@ -37,10 +37,10 @@ fi PHONEDEST="$COUNTRY${PHONEDEST:1:10}" # CHECK if PHONEDEST have an account in IPFS G1sms+ SWARM -if [[ -f "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub" ]] +if [[ -f "~/.zen/g1sms_wallets_swarm/$PHONEDEST/$PHONEDEST.pub" ]] then - PUBKEYDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.pub") - UNITDEST=$(cat "./wallets_swarm/$PHONEDEST/$PHONEDEST.unit") + PUBKEYDEST=$(cat "~/.zen/g1sms_wallets_swarm/$PHONEDEST/$PHONEDEST.pub") + UNITDEST=$(cat "~/.zen/g1sms_wallets_swarm/$PHONEDEST/$PHONEDEST.unit") else # NO, then create NEW Wallet sms_INIT_ACCOUNT "$PHONEDEST" @@ -50,7 +50,7 @@ else fi # Payement -PAY=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY" -y) +PAY=$(./timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$VIR" --output="$PUBKEYDEST" --comment="[G1sms+] PAY" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $PAY" @@ -64,9 +64,9 @@ fi sleep 2 # + G1SMS Commission -COM=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] Commission" -y) +COM=$(./timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$phone" -password="$pin" --amount="$PERCENT" --output="$NODE_G1PUBKEY" --comment="[G1sms+] Commission" -y) if [[ "$(echo $COM | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$phone" "Problème de payement avec silkaj (changement de serveur $new): $COM"; log "__SUB:sms_PAY.sh: Problème de payement avec silkaj $new : $COM" exit diff --git a/g1sms/sms_REC.sh b/g1sms/sms_REC.sh index 911e01d..b42f420 100755 --- a/g1sms/sms_REC.sh +++ b/g1sms/sms_REC.sh @@ -3,10 +3,10 @@ # Author: Fred (support@qo-op.com) # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) -# RECORD RECURRENT PAYEMENTS WITH "Cesium+ ID" Pubkey TODO cron ./wallets/$PHONE/VIREMENTS, Fusion avec sms_VIR.sh +# RECORD RECURRENT PAYEMENTS WITH "Cesium+ ID" Pubkey TODO cron ~/.zen/g1sms_wallets/$PHONE/VIREMENTS, Fusion avec sms_VIR.sh ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_REC.sh: START ($1=PHONE, $2=VIRDEST, $3=AMOUNT, $4=PERIOD, $5=TIME)" PHONE="$1" @@ -79,20 +79,20 @@ else log "__SUB:sms_REC.sh: SEARCH $VIRDEST related wallet!!! $DESTRIB " DESTMEM="$VIRDEST" # SEARCH IN WALLETS - LOCAL=$(grep -Rwl "$DESTMEM" ./wallets/*/*.uidname | tail -n 1 | cut -f 3 -d '/') - if [[ "$LOCAL" == "" ]]; then LOCAL=$(grep -Rwl "$DESTMEM" ./wallets/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi + LOCAL=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets/*/*.uidname | tail -n 1 | cut -f 3 -d '/') + if [[ "$LOCAL" == "" ]]; then LOCAL=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi if [[ "$LOCAL" != "" ]]; then # LOCAL G1sms account - DESTRIB=$(cat ./wallets/$LOCAL/$LOCAL.pub) + DESTRIB=$(cat ~/.zen/g1sms_wallets/$LOCAL/$LOCAL.pub) DESTPHONE=$LOCAL log "__SUB:sms_REC.sh: FOUND LOCAL ($MASTERPHONE) G1sms+ wallet: $DESTRIB ($LOCAL)" else # SEARCH IN WALLETS SWARM (MEMBER THEN UIDNA) - INSWARM=$(grep -Rwl "$DESTMEM" ./wallets_swarm/*/*.uidname | tail -n 1 | cut -f 3 -d '/') - if [[ "$INSWARM" == "" ]]; then INSWARM=$(grep -Rwl "$DESTMEM" ./wallets_swarm/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi + INSWARM=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets_swarm/*/*.uidname | tail -n 1 | cut -f 3 -d '/') + if [[ "$INSWARM" == "" ]]; then INSWARM=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets_swarm/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi if [[ "$INSWARM" != "" ]]; then - REMOTENODE=$(cat ./wallets_swarm/$INSWARM/MASTERPHONE.sms) - DESTRIB=$(cat ./wallets_swarm/$INSWARM/$INSWARM.pub) + REMOTENODE=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/MASTERPHONE.sms) + DESTRIB=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/$INSWARM.pub) DESTPHONE=$INSWARM log "__SUB:sms_REC.sh: FOUND SWARM ($REMOTENODE) G1sms+ wallet: $DESTRIB ($INSWARM)" else @@ -106,9 +106,9 @@ fi # ADD DATES TO VIREMENTS if [[ "$DESTRIB" != "" ]]; then log "__SUB:sms_REC.sh: TRAITEMENT DU VIREMENT DE $AMOUNT $UNIT = 1ER VIREMENT de $VIR G1 vers $VIRDEST ($DESTRIB) $TIME FOIS. OK..." - PAY=$(./shell/timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] REC 1/$TIME ($PERIOD)" -y) + PAY=$(./timeout.sh -t 20 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] REC 1/$TIME ($PERIOD)" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" || "$PAY" == "" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$PHONE" "Problème de payement avec silkaj (changement de serveur $new): $PAY"; log "__SUB:sms_REC.sh: END ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" exit @@ -116,12 +116,12 @@ if [[ "$DESTRIB" != "" ]]; then cents=$(echo $(bc -l <<< "scale=0; $VIR * 100") | cut -d '.' -f 1) move_g1cents "$PHONE" "$DESTRIB" "$cents" fi - log "__SUB:sms_REC.sh: UPDATE ./wallets/$PHONE/VIREMENTS with FUTURE PAYEMENTS? $PAY" + log "__SUB:sms_REC.sh: UPDATE ~/.zen/g1sms_wallets/$PHONE/VIREMENTS with FUTURE PAYEMENTS? $PAY" - ########### MAKE ./wallets/$PHONE/VIREMENTS for NEXT ONES - if [[ -f "./wallets/$PHONE/VIREMENTS.gpg" ]]; then + ########### MAKE ~/.zen/g1sms_wallets/$PHONE/VIREMENTS for NEXT ONES + if [[ -f "~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg" ]]; then # DECYPHER FILE FOR CHANGE - echo "${GPGPASS}" | gpg -d -q --output "./wallets/$PHONE/VIREMENTS" --yes --pinentry-mode loopback --passphrase-fd 0 "./wallets/$PHONE/VIREMENTS.gpg" + echo "${GPGPASS}" | gpg -d -q --output "~/.zen/g1sms_wallets/$PHONE/VIREMENTS" --yes --pinentry-mode loopback --passphrase-fd 0 "~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg" fi # WRITE NEW LINES INTO AN ARRAY FILE: VIREMENTS boucle=$((TIME - 1)) @@ -131,14 +131,14 @@ if [[ "$DESTRIB" != "" ]]; then $((num ++)) NEXT=$(date --date="$num $NEXTDATE" '+%Y%m%d') # ADD NEW LINE IN VIREMENTS - echo "$NEXT $MEMBER $PHONE $VIR $DESTRIB $DESTMEM $MEMBER#$TIME#$AMOUNT#$DESTMEM $boucle " >> ./wallets/$PHONE/VIREMENTS + echo "$NEXT $MEMBER $PHONE $VIR $DESTRIB $DESTMEM $MEMBER#$TIME#$AMOUNT#$DESTMEM $boucle " >> ~/.zen/g1sms_wallets/$PHONE/VIREMENTS done # CYPHER FILE - echo "${GPGPASS}" | gpg -q --output "./wallets/$PHONE/VIREMENTS.gpg" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "./wallets/$PHONE/VIREMENTS" + echo "${GPGPASS}" | gpg -q --output "~/.zen/g1sms_wallets/$PHONE/VIREMENTS.gpg" --yes --pinentry-mode loopback --symmetric --passphrase-fd 0 "~/.zen/g1sms_wallets/$PHONE/VIREMENTS" # EMPTY CLEAR FILE - log "__SUB:sms_REC.sh: $(cat ./wallets/$PHONE/VIREMENTS)" - echo "" > ./wallets/$PHONE/VIREMENTS + log "__SUB:sms_REC.sh: $(cat ~/.zen/g1sms_wallets/$PHONE/VIREMENTS)" + echo "" > ~/.zen/g1sms_wallets/$PHONE/VIREMENTS ########### log "__SUB:sms_REC.sh: .....................................OK!!!" diff --git a/g1sms/sms_SETUNIT.sh b/g1sms/sms_SETUNIT.sh index 145ddcf..8ce267d 100755 --- a/g1sms/sms_SETUNIT.sh +++ b/g1sms/sms_SETUNIT.sh @@ -4,13 +4,13 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "X sms_SETUNIT.sh ($1=phone, $2=unit)" phone="$1" unit="$2" -UNITFILE="./wallets/$phone/$phone.unit" +UNITFILE="~/.zen/g1sms_wallets/$phone/$phone.unit" # Initialise PHONE, PIN, PUBKEY, UNIT, HIST sms_INIT_ACCOUNT "$phone" "NOSMS" diff --git a/g1sms/sms_VIR.sh b/g1sms/sms_VIR.sh index 63bd94c..8f56e5c 100755 --- a/g1sms/sms_VIR.sh +++ b/g1sms/sms_VIR.sh @@ -4,8 +4,8 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh log "__SUB:sms_VIR.sh: START ($1=phone, $2=AMOUNT, $3=VIRDEST)" phone="$1" @@ -48,20 +48,20 @@ else log "__SUB:sms_VIR.sh: SEARCH $VIRDEST related wallet!!! $DESTRIB " DESTMEM="$VIRDEST" # SEARCH IN WALLETS - LOCAL=$(grep -Rwl "$DESTMEM" ./wallets/*/*.uidname | tail -n 1 | cut -f 3 -d '/') - if [[ "$LOCAL" == "" ]]; then LOCAL=$(grep -Rwl "$DESTMEM" ./wallets/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi + LOCAL=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets/*/*.uidname | tail -n 1 | cut -f 3 -d '/') + if [[ "$LOCAL" == "" ]]; then LOCAL=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi if [[ "$LOCAL" != "" ]]; then # LOCAL G1sms account - DESTRIB=$(cat ./wallets/$LOCAL/$LOCAL.pub) + DESTRIB=$(cat ~/.zen/g1sms_wallets/$LOCAL/$LOCAL.pub) DESTPHONE=$LOCAL log "__SUB:sms_VIR.sh: FOUND LOCAL ($MASTERPHONE) G1sms+ wallet: $DESTRIB ($LOCAL)" else # SEARCH IN WALLETS SWARM (MEMBER THEN UIDNA) - INSWARM=$(grep -Rwl "$DESTMEM" ./wallets_swarm/*/*.uidname | tail -n 1 | cut -f 3 -d '/') - if [[ "$INSWARM" == "" ]]; then INSWARM=$(grep -Rwl "$DESTMEM" ./wallets_swarm/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi + INSWARM=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets_swarm/*/*.uidname | tail -n 1 | cut -f 3 -d '/') + if [[ "$INSWARM" == "" ]]; then INSWARM=$(grep -Rwl "$DESTMEM" ~/.zen/g1sms_wallets_swarm/*/*.uidna | tail -n 1 | cut -f 3 -d '/'); fi if [[ "$INSWARM" != "" ]]; then - REMOTENODE=$(cat ./wallets_swarm/$INSWARM/MASTERPHONE.sms) - DESTRIB=$(cat ./wallets_swarm/$INSWARM/$INSWARM.pub) + REMOTENODE=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/MASTERPHONE.sms) + DESTRIB=$(cat ~/.zen/g1sms_wallets_swarm/$INSWARM/$INSWARM.pub) DESTPHONE=$INSWARM log "__SUB:sms_VIR.sh: FOUND SWARM ($REMOTENODE) G1sms+ wallet: $DESTRIB ($INSWARM)" else @@ -73,7 +73,7 @@ else fi if [[ "$DESTRIB" != "" ]]; then - PAY=$(./shell/timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] VIR $VIR G1" -y) + PAY=$(./timeout.sh -t 30 ./silkaj/silkaj transaction --auth-scrypt -salt="$PHONE" -password="$PIN" --amount="$VIR" --output="$DESTRIB" --comment="[G1sms+] VIR $VIR G1" -y) if [[ "$(echo $PAY | cut -d '|' -f 1)" != "KO" && "$PAY" != "" ]]; then log "__SUB:sms_VIR.sh: VIREMENT VERS $DESTMEM OK" mess="[G1sms+] $MEMBER @@ -90,7 +90,7 @@ $PAY" cents=$(echo $(bc -l <<< "scale=0; $VIR * 100") | cut -d '.' -f 1) move_g1cents "$PHONE" "$DESTRIB" "$cents" else - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_SEND "$ADMINPHONE" "ADMIN! Problème de payement avec silkaj (changement de serveur $new): $PAY"; fi else diff --git a/g1sms/sms_WHERE.sh b/g1sms/sms_WHERE.sh index b998159..d620b10 100755 --- a/g1sms/sms_WHERE.sh +++ b/g1sms/sms_WHERE.sh @@ -4,9 +4,9 @@ # Version: 0.1 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ################################################################################ -# is there ADMINPSEUDO-UIDNATAIL in ./wallets_swarm/.*/*.uidna ?" -source ./shell/init.sh -source ./shell/functions.sh +# is there ADMINPSEUDO-UIDNATAIL in ~/.zen/g1sms_wallets_swarm/.*/*.uidna ?" +source ./init.sh +source ./functions.sh log "__SUB:sms_WHERE.sh: START ($1=PHONE $2=askeduidna)" phone="$1" @@ -21,19 +21,19 @@ Envoyez N pour créer votre portefeuille G1sms" fi if [[ "$askeduidna" == "" ]]; then #SELF - if [[ -f "./wallets/.$IPFSNODEID/$IPFSNODEID.uidna" ]]; then - nodeuidnafile="./wallets/.$IPFSNODEID/$IPFSNODEID.uidna" + if [[ -f "~/.zen/ipfs/.$IPFSNODEID/$IPFSNODEID.uidna" ]]; then + nodeuidnafile="~/.zen/ipfs/.$IPFSNODEID/$IPFSNODEID.uidna" uidna=$(cat $nodeuidnafile) fi else - nodeuidnafile=$(grep -Rwl "$askeduidna" ./wallets_swarm/.*/*.uidna) + nodeuidnafile=$(grep -Rwl "$askeduidna" ~/.zen/g1sms_wallets_swarm/.*/*.uidna) uidna=$(cat $nodeuidnafile) fi if [[ -f $nodeuidnafile && "$uidna" != "" ]]; then ipfsnodeid=$(echo $nodeuidnafile | cut -d '/' -f 3 | cut -d '.' -f 2 ) - echo $uidna > ./wallets/$PHONE/uidna.G1TAGNODE - echo $ipfsnodeid > ./wallets/$PHONE/ipfsid.G1TAGNODE + echo $uidna > ~/.zen/g1sms_wallets/$PHONE/uidna.G1TAGNODE + echo $ipfsnodeid > ~/.zen/g1sms_wallets/$PHONE/ipfsid.G1TAGNODE log "__SUB:sms_WHERE.sh: Distributeur de G1Tag $uidna : $ipfsnodeid " I=$(ipfs_node_wallets_add) log_history $PHONE "G1TagNode, $uidna, $ipfsnodeid" @@ -47,7 +47,7 @@ fi mess="[G1sms+] $MEMBER Votre distributeur de G1Tag par défaut est $uidna ($ipfsnodeid), situé: -$(cat ./wallets_swarm/.$ipfsnodeid/$ipfsnodeid.where)" +$(cat ~/.zen/g1sms_wallets_swarm/.$ipfsnodeid/$ipfsnodeid.where)" sms_SEND "$PHONE" "$mess" diff --git a/g1sms/sms_received.sh b/g1sms/sms_received.sh new file mode 100644 index 0000000..2ee488d --- /dev/null +++ b/g1sms/sms_received.sh @@ -0,0 +1,217 @@ +#!/bin/bash +################################################################################ +# SWARM de développement G1sms+. +# PUBKEY G1 DU SWARMMASTER: 8qs69HriAdytcCLzvQGJ15XBwpjAVFx8JoVM2ahue1y7 +# ipfs ls /ipns/QmZHTne3bjtMgaXWRqSbdKchJbgq2NaAeVSzFUN7ceYpif +# +# G1sms+ est totalement décentralisé! Il peut être fait de multiples SWARM de Services dont les codes évoluent de façon décentralisé. +# Puis se mettent à jour autour des $ADMINPHONE par consensus d'utilisateurs ;) +# +# Log => tail -f /tmp/g1sms.log -n 200 +# gammu => tail -f /tmp/smsd.log -n 200 +# +# 2 commands needed to make the ramdisk if planning to run from ramdisk to gain some speed +# sudo mkdir /mnt/ramdisk +# sudo mount -t tmpfs -o size=50m tmpfs /mnt/ramdisk +# +# Utiliser la commande ./search fournie pour fouiller dans le code, mais tout est ordonnancé d'ici, donc vous êtes au bon endroit pour commencer à farfouiller. +############################################################################### +# EN FAISANT PARTIE DU SWARM G1sms+ VOUS VOUS ENGAGEZ A ASSURER LA SECURITE +# PHYSIQUE ET INFORMATIQUE DE VOTRE NOEUD ET NE PAS INTRODUIRE DE CODE MALVEILLANT +# DANS LE GROUPE SI VOUS ETES AMENES A EN PROPOSER UNE MISE A JOUR. +# UNE COMMISSION EST PERCU SUR CERTAINS TRANSFERTS. +# ELLE EST PROVISION EN CAS DE FRAUDE ET SA REATRIBUTION POURRA EVOLUER... +# +# Author: Fred (support@qo-op.com) +# Version: 0.1 +# License: GPL (http://www.google.com/search?q=GPL) +################################################################################ + +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized + +# Execute Kalkun daemon +[[ -f /var/www/kalkun/scripts/daemon.sh ]] && /var/www/kalkun/scripts/daemon.sh + +export YOU=$(ps aux --sort=+utime | grep ipfs | tail -n 1 | cut -d " " -f 1) +cd $MY_PATH +source $MY_PATH/shell/init.sh +source $MY_PATH/shell/functions.sh + +################################################################## +# Get global variables from gammu-smsd +PHONE="$SMS_1_NUMBER" +TEXT="$SMS_1_TEXT" +# Extract Received Command (PUBLISH OFFICIALS in file sms_AIDE.sh) +CMD=$(echo "$TEXT" | awk '{print toupper($1)}') + +log "##########################################################################################" +log "#############################################" +log "#############################################" +log "$(date)" +log "SMS received $PHONE $TEXT" +log "#############################################" +log "NODE: ALL WALLETS: ipfs ls /ipns/$IPFSNODEID" +log "NODE: G1wallet: cat ~/.zen/ipfs/.$IPFSNODEID/NODE.pub" +log "#############################################" + +################################################################## +# BASIC SECURITY & ANTI SPAM +################################################################## +security + +################################################################## +# Refresh All peers SWARM Wallets. +################################################################## +ipfs_swarm_wallets_refresh + +################################################################## +# Check if PHONE is already registred in G1sms+ SWARM +################################################################## +if [[ ! -f "~/.zen/g1sms_wallets/$PHONE/MASTERPHONE.sms" && "$CMD" != "ADMIN" ]] +then + NODEPHONE=$(cat "~/.zen/g1sms_wallets_swarm/$PHONE/MASTERPHONE.sms") + if [[ "$NODEPHONE" != "$MASTERPHONE" && "$NODEPHONE" != "" ]]; then + sms_SEND "$PHONE" "[G1sms+] Vous avez déjà un compte portefeuille sur $NODEPHONE (Envoyez lui RAZ si vous voulez fermer votre compte)" + log "ALERT!! $PHONE compte existant sur le NODE G1sms+ ($NODEPHONE)" + exit + fi +else + # Refresh MasterPhone (usefull in case of MASTERPHONE SIM number change) + echo "$MASTERPHONE" > "~/.zen/g1sms_wallets/$PHONE/MASTERPHONE.sms" +fi + +################################################################## +# Handle commands CMD +################################################################## +case "$CMD" in + DESTROY|RAZ) + # SEND DESTROY Member or DESTROY DON to empty you PHONE wallet and remove it + MEMBERUID=$(echo "$TEXT" | awk '{print $2}' | grep -E "([A-Za-z0-9\-\_]+$)") + ./sms_DESTROY.sh "$PHONE" "$MEMBERUID"& + ;; + A|AIDE) + ./sms_AIDE.sh "$PHONE" & + ;; + N|D) + # SEND DESTROY Member or DESTROY DON to empty you PHONE wallet and remove it + MEMBERUID=$(echo "$TEXT" | awk '{print $2}' | grep -E "([A-Za-z0-9\-\_]+$)") + ./sms_NEW.sh "$PHONE" "$MEMBERUID" & + ;; + P|PAY) + DEST=$(echo "$TEXT" | awk '{print $2}' | grep -E "^\-?[0-9]+$") + MONEY=$(echo "$TEXT" | awk '{print $3}' | grep -E "^\-?[0-9]+$") + if [[ ${#DEST} == 10 && "$DEST" != "" && "$MONEY" != "" ]]; then + ./sms_PAY.sh "$PHONE" "$DEST" "$MONEY" & + else + ./sms_ERROR.sh "$PHONE" "ex:: P 0612345678 100 = Envoyer 100 $UNIT au portefeuille G1sms+ +33612345678" & + fi + ;; + VIR) + montant=$(echo "$TEXT" | awk '{print $2}' | grep -E "^\-?[0-9]+$") + membre=$(echo "$TEXT" | awk '{print $3}' | grep -E "([A-Za-z0-9\-\_]+$)") + if [[ "$montant" != "" && "$membre" != "" ]]; then + ./sms_VIR.sh "$PHONE" "$montant" "$membre" & + else + ./sms_ERROR.sh "$PHONE" "ex:: VIR 100 mot5678 = Envoyer 100 $UNIT au portefeuille G1sms+ 'mot5678' (On peut aussi utiliser le pseudo d'un Membre)" & + fi + ;; + REC) + # ex: "REC 2000 John J 12" (Virer 2000 UNIT au G1sms+ wallet de John pour les 12 prochains jours) + AMOUNT=$(echo "$TEXT" | awk '{print $2}' | grep -E "^\-?[0-9]+$") + VIRDEST=$(echo "$TEXT" | awk '{print $3}' | grep -E "([A-Za-z0-9\-\_]+$)") + PERIOD=$(echo "$TEXT" | awk '{print toupper($4)}' | grep -E "([A-Za-z0-9\-\_]+$)") + TIME=$(echo "$TEXT" | awk '{print $5}' | grep -E "^\-?[0-9]+$") + if [[ "$VIRDEST" != "" && "$AMOUNT" != "" && "$PERIOD" != "" && "$TIME" != "" ]]; then + ./sms_REC.sh "$PHONE" "$VIRDEST" "$AMOUNT" "$PERIOD" "$TIME" & + else + ./sms_ERROR.sh "$PHONE" "ex:: REC 20 Fred M 12 => Virer 20 $UNIT au portefeuille G1sms+ de Fred pendant 12 Mois (Choisir la période: J,S,M,A)." & + fi + ;; + C|S|SOLDE) + ./sms_COUNT.sh "$PHONE" & + ;; + EMAIL) + # RECUPERE EMAIL ASSOCIE AU G1SMS WALLET + MAIL=$(echo "$TEXT" | awk '{print tolower($2)}' | grep -E "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}") + if [[ "$MAIL" != "" ]]; then + ./sms_EMAIL.sh "$PHONE" "$MAIL" & + else + ./sms_ERROR.sh "$PHONE" "$TEXT votre adresse est incorrecte..." & + fi + ;; + BILL) + # PREMIERS G1billets (à gratter)... COLLECTOR ;) ONLY FOR A4 PRINTER !! + VAL=$(echo "$TEXT" | awk '{print $2}' | grep -E "^\-?[0-9]+$") + if [[ "$VAL" != "" ]]; then + ./sms_BILLET.sh "$PHONE" "$VAL" & + else + ./sms_ERROR.sh "$PHONE" "ex:: BILL 20 => Créer et imprimer 6 G1Billets de '20 LOVE' sur une feuille A4 (cout 120 $UNIT + $BILLCOM )" & + fi + ;; + CHK) + W1=$(echo "$TEXT" | awk '{print tolower($2)}' | grep -E "^[a-z0-9]+$") + W2=$(echo "$TEXT" | awk '{print tolower($3)}' | grep -E "^[a-z0-9]+$") + W3=$(echo "$TEXT" | awk '{print tolower($4)}' | grep -E "^[a-z0-9]+$") + W4=$(echo "$TEXT" | awk '{print tolower($5)}' | grep -E "^[a-z0-9]+$") + W5=$(echo "$TEXT" | awk '{print tolower($6)}' | grep -E "^[a-z0-9]+$") + W6=$(echo "$TEXT" | awk '{print tolower($7)}' | grep -E "^[a-z0-9]+$") + W7=$(echo "$TEXT" | awk '{print tolower($8)}' | grep -E "^[a-z0-9]+$") + if [[ "$W1" != "" && "$W2" != "" ]]; then + ./sms_BILLETCHK.sh "$PHONE" "$W1" "$W2" "$W3" "$W4" "$W5" "$W6" "$W7" & + else + ./sms_ERROR.sh "$PHONE" "Mauvais Format. Le code doit comporter 2 mots minimum pour vérifier la valeur du billet, + code secret pour l'encaisser..." & + fi + ;; + TAG) + # NOUVEAU TAG (pubkey, BI) pour terminaux DAB et TX sur IPFS. + # ex: TAG 200 (Create & Print One 200 "PubKey / BI" Qrcode Notes) + VAL=$(echo "$TEXT" | awk '{print $2}' | grep -E "^\-?[0-9]+$") + NUM=$(echo "$TEXT" | awk '{print $3}' | grep -E "^\-?[0-9]+$") + if [[ "$VAL" != "" ]]; then + ./sms_G1TAG.sh "$PHONE" "$VAL" "$NUM" & + else + ./sms_ERROR.sh "$PHONE" "ex:: TAG 2 12 => Créer 12 G1Tag de 2 G1" & + fi + ;; + U|UNIT) + # Choisir son UNIT préférée (G1, DU, LOVE) + UNIT=$(echo "$TEXT" | awk '{print toupper($2)}'| grep -E "^[A-Za-z0-9]+$") + ./sms_SETUNIT.sh "$PHONE" "$UNIT" & + ;; + OU) + # CHOISIR SON DISTRIBUTEUR DE G1Tag + NODEUIDNA=$(echo "$TEXT" | awk '{print $2}'| grep -E "([A-Za-z0-9\-\_]+$)") + ./sms_WHERE.sh "$PHONE" "$NODEUIDNA" & + ;; + ABO) + # GERER SES ABONNEMENT CANAUX INFO SMS + SERVICE=$(echo "$TEXT" | awk '{print toupper($2)}'| grep -E "([A-Za-z0-9\-\_]+$)") + ./sms_ABO.sh "$PHONE" "$SERVICE" & + ;; + DELIVERED|PENDING|FAILED) + # If delivered/pending notification come back (gammu/phone config) + exit + ;; + ADMIN) + # If Phone is ADMIN + if [[ "$PHONE" == "$ADMINPHONE" ]]; then + CMD=$(echo "$TEXT" | awk '{print toupper($2)}') + PARAM=$(echo "$TEXT" | awk '{print substr($0,index($0,$3))}') + ./sms_ADMIN.sh "$CMD" "$PARAM" & + fi + ;; + *) + #./sms_ERROR.sh "$PHONE" "$TEXT" & + log "SMS forward to $ADMINPHONE" + sms_SEND "$ADMINPHONE" "ADMIN! BAD SMS FROM $PHONE +$TEXT" + ;; +esac + +# MONITORING: SEND INCOMING MESSAGE COPY TO ADMINPHONE +if [[ "$PHONE" != "$ADMINPHONE" && "$CPERROR" == "YES" ]]; then sms_SEND "$ADMINPHONE" "ADMIN! MONITOR: $PHONE : $TEXT"; fi + +echo $PUBKEY +exit + diff --git a/g1sms/tag_LOAD_passenger.sh b/g1sms/tag_LOAD_passenger.sh index fdde8d7..74fd725 100755 --- a/g1sms/tag_LOAD_passenger.sh +++ b/g1sms/tag_LOAD_passenger.sh @@ -42,7 +42,7 @@ # } # ############################################################################################################# -# ./shell/tag_LOAD_passenger.sh G1TagIPNS FileID MusicFile MASTERKEY +# ./tag_LOAD_passenger.sh G1TagIPNS FileID MusicFile MASTERKEY JSOURCE=$1 TUBEID=$2 MUSICFILE=$3 @@ -58,7 +58,7 @@ if [[ ! -f "$KEYFILE" || ! -f "$MUSICFILE" || ! -f "./g1sms.pub.key" ]]; then "D ############## INIT & root check NANODATE=$(date -u +%s%N) echo "__SUB:tag_LOAD_passenger.sh: LOAD \"$MUSICFILE\" into REC G1Tag $JSOURCE indexed by $TUBEID (using $KEYFILE)... $NANODATE" -if [[ "$USER" != "root" ]]; then echo "__SUB:tag_LOAD_passenger.sh: Hey, $USER you must be root. 'sudo ./shell/tag_LOAD_passenger.sh ...' ?"; exit; fi +if [[ "$USER" != "root" ]]; then echo "__SUB:tag_LOAD_passenger.sh: Hey, $USER you must be root. 'sudo ./tag_LOAD_passenger.sh ...' ?"; exit; fi ############################################# ############## CHECK ipfs daemon user @@ -100,7 +100,7 @@ fi ############################################# ############## EXTRACT $JSOURCERR PUBLISH KEY if [[ -f "$KEYFILE" ]]; then - ./shell/natools.py decrypt -k "$KEYFILE" -i "$JSOURCEPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JSOURCERR" + ./natools.py decrypt -k "$KEYFILE" -i "$JSOURCEPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JSOURCERR" else echo "__SUB:tag_LOAD_passenger.sh: KO. La clef $KEYFILE fournie pour ce G1Tag $JSOURCERR est inexistante. Procurez-vous un portefeuille monnaie libre sur https://g1sms.fr" exit @@ -126,7 +126,7 @@ if [[ ! $IFILE ]]; then exit; fi echo "$IFILE" > $TAGPASSENGER # ONLY SWARM KEY CAN DECRYPT IPFS LINK TO FILE (TODO: Glue better) NODE_G1PUBKEY=$(cat "./g1sms.pub.key") -./shell/natools.py encrypt -p "$NODE_G1PUBKEY" -i "$TAGPASSENGER" -o "$TAGPASSENGERCRYPT" +./natools.py encrypt -p "$NODE_G1PUBKEY" -i "$TAGPASSENGER" -o "$TAGPASSENGERCRYPT" echo "LOADED" > $TAGPASSENGER echo "$DEB" > $TAGPASSENGERDEBIT @@ -143,17 +143,17 @@ J=$(su $YOU -c "ipfs name publish -k ${JSOURCERR} --quieter /ipfs/${I}") # TODO rm "/home/$YOU/.ipfs/keystore/$JSOURCERR" # WRITE FILE REC INDEX IN NODE G1TAG REF. -mkdir -p ./wallets/.$IPFSNODEID/TAG/ -echo "$TUBEID" > "./wallets/.$IPFSNODEID/TAG/${J}.youtubeid" +mkdir -p ~/.zen/ipfs/.$IPFSNODEID/TAG/ +echo "$TUBEID" > "~/.zen/ipfs/.$IPFSNODEID/TAG/${J}.youtubeid" ########################## # REFRESH SWARM ########################## -IWALLETS=$(su $YOU -c "ipfs add -rHq './wallets' | tail -n 1") +IWALLETS=$(su $YOU -c "ipfs add -rHq '~/.zen/g1sms_wallets' | tail -n 1") # CHAIN STATE FOR $IPFSNODEID -echo $IWALLETS > ./wallets/.$IPFSNODEID.wallets.chain -echo "__SUB:tag_LOAD_passenger.sh: NEW './wallets' HASH ipfs ls $IWALLETS" +echo $IWALLETS > ~/.zen/ipfs/.$IPFSNODEID.wallets.chain +echo "__SUB:tag_LOAD_passenger.sh: NEW '~/.zen/g1sms_wallets' HASH ipfs ls $IWALLETS" # PUBLISH IPNS NODE WALLETS NODEWALLETS=$(su $YOU -c "ipfs name publish --quieter /ipfs/$IWALLETS") diff --git a/g1sms/tag_OP.sh b/g1sms/tag_OP.sh index 59ccb2a..6977287 100755 --- a/g1sms/tag_OP.sh +++ b/g1sms/tag_OP.sh @@ -67,7 +67,7 @@ if [[ $FINALSOURCE -lt 0 ]]; then echo "__SUB:tag_OP.sh: KO. La valeur de ce G1T ############################################# ############## EXTRACT $JSOURCERR PUBLISH KEY if [[ -f $KEYFILE && ! -f "/home/$YOU/.ipfs/keystore/$JSOURCERR" ]]; then - ./shell/natools.py decrypt -k "$KEYFILE" -i "$JSOURCEPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JSOURCERR" + ./natools.py decrypt -k "$KEYFILE" -i "$JSOURCEPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JSOURCERR" else if [[ ! -f $KEYFILE ]]; then echo "__SUB:tag_OP.sh: KO. La clef de dévérouillage pour $JSOURCERR est inexistante. Contact: https://g1sms.fr" @@ -88,7 +88,7 @@ FINALDEST=$(echo "${JDESTVALUE} + ${VALUE}" | bc -l) # EXTRACT $JSOURCERR PUBLISH KEY to "/home/$YOU/.ipfs/keystore/JSOURCE" # EXTRACT PUBLISH KEY if [[ -f $KEYFILE && ! -f "/home/$YOU/.ipfs/keystore/$JDESTRR" ]]; then - ./shell/natools.py decrypt -k "$KEYFILE" -i "$JDESTPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JDESTRR" + ./natools.py decrypt -k "$KEYFILE" -i "$JDESTPUBLISHKEY" -o "/home/$YOU/.ipfs/keystore/$JDESTRR" else if [[ ! -f $KEYFILE ]]; then echo "__SUB:tag_OP.sh: KO. La clef de dévérouillage pour $JDESTRR est inexistante. Contact: https://g1sms.fr" diff --git a/g1sms/tag_PLAY_passenger.sh b/g1sms/tag_PLAY_passenger.sh index 39a42a9..1ea19ee 100755 --- a/g1sms/tag_PLAY_passenger.sh +++ b/g1sms/tag_PLAY_passenger.sh @@ -6,7 +6,7 @@ ########################################################################################### # Find and PLAY (cat) passenger File OF G1Tag / REC TAG # sudo pip3 install duniterpy -# READERID is PHONE or IPFSNODEID (G1 ./wallets/* ) +# READERID is PHONE or IPFSNODEID (G1 ~/.zen/g1sms_wallets/* ) # JSOURCE is G1Tag IPNS link with PASSENGER ########################################################################################### READERID=$1 @@ -16,10 +16,10 @@ NODE_G1PUBKEY=$(cat "./g1sms.pub.key") if [[ ! $READERID || ! $JSOURCE || ! -f "$KEYFILE" || ! $NODE_G1PUBKEY ]]; then "Something is wrong! Do you know what you are doing?"; exit; fi -NODEG1TAG=$(cat "./wallets_swarm/.$READERID/TAG/$READERID") # Contains IPNS link to Node G1Tag +NODEG1TAG=$(cat "~/.zen/g1sms_wallets_swarm/.$READERID/TAG/$READERID") # Contains IPNS link to Node G1Tag if [[ ! $NODEG1TAG ]]; then # INIT NODE G1TAG WITH 1000 zen - echo "__SUB:tag_PLAY_passenger.sh: $READERID ne possède pas de G1Tag sudo ./shell/sms_G1TAG.sh \"$READERID\" \"10\" \"1\" \"NODE\" \"$READERID\" " + echo "__SUB:tag_PLAY_passenger.sh: $READERID ne possède pas de G1Tag sudo ./sms_G1TAG.sh \"$READERID\" \"10\" \"1\" \"NODE\" \"$READERID\" " exit fi @@ -50,14 +50,14 @@ CRED=$(cat "./TAG/${JSOURCERR}/TAG_passenger_credit") ############################################## # MAKE TRANSACTIONS -NODEZEN=$(cat "./wallets/$READERID/$READERID.g1cents") -uidna=$(cat "./wallets/$READERID/$READERID.uidna") +NODEZEN=$(cat "~/.zen/g1sms_wallets/$READERID/$READERID.g1cents") +uidna=$(cat "~/.zen/g1sms_wallets/$READERID/$READERID.uidna") if [[ $ZEN -gt $CRED ]]; then REZ=$((TAGZEN + CRED)) #echo "$REZ" > "./TAG/${JSOURCERR}/TAG_amount" # TODO READER NEEDS ITS G1TAG - #./shell/tag_OP.sh "$READERIDTAG" "J2TAG" "$CRED" $KEYFILE + #./tag_OP.sh "$READERIDTAG" "J2TAG" "$CRED" $KEYFILE else echo "Désolé ;( $READERID vous manquez de ZEN ($ZEN) pour vous payer la lecture de $JSOURCE ($CRED)" echo "Rechargez avec un VIREMENT vers $uidna" diff --git a/g1sms/tag_READ.sh b/g1sms/tag_READ.sh index 1f4a2a7..6c1b6f1 100755 --- a/g1sms/tag_READ.sh +++ b/g1sms/tag_READ.sh @@ -6,17 +6,17 @@ ########################################################################################### ########################################################################################### echo "__SUB:tag_READ.sh: QRCODE READER : START" -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh # DOUCHETTE ES TU LA? -if [ ! $G1TX ]; then ./shell/parle.sh "Branchez votre lecteur de QR code!"; exit; fi +if [ ! $G1TX ]; then ./parle.sh "Branchez votre lecteur de QR code!"; exit; fi # TABLEAU MEMOIRE DE SCAN declare -a act declare -a obj declare -a val -./shell/parle.sh "Lecteur de G1 Tag. OK. Prêt" +./parle.sh "Lecteur de G1 Tag. OK. Prêt" cat /dev/ttyACM0 | while read line; do lon=${#line} @@ -26,14 +26,14 @@ cat /dev/ttyACM0 | while read line; do case $pref in RJ) - ./shell/parle.sh "R J" + ./parle.sh "R J" R=$(echo $qrvalue | cut -d '#' -f 1) J=$(echo $qrvalue | cut -d '#' -f 2) log "__SUB:tag_READ.sh: Lecture G1Tag $R $J" # ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); if [[ "$ID" == "" ]]; then - ./shell/parle.sh "G1 Tag déjà capturé, veuillez le détruire!"; + ./parle.sh "G1 Tag déjà capturé, veuillez le détruire!"; sms_SEND "$ADMINPHONE" "ADMIN! FRAUDE G1Tag RJ $R $J" # TODO: ENQUETER auprès du CREATEUR de ce G1 Tag !! continue @@ -45,11 +45,11 @@ cat /dev/ttyACM0 | while read line; do if [[ "$CURRENCY" == "zen" ]]; then CUR="zène"; else CUR=$CURRENCY; fi # Correction du défaut de prononciation. PASSENGER=$(su $YOU -c "ipfs cat /ipns/$J/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/parle.sh "Rec Tag Machine $PASSENGER! Valeur $RVALUE $CUR"; + ./parle.sh "Rec Tag Machine $PASSENGER! Valeur $RVALUE $CUR"; else G1VAL=$(bc -l <<< "scale=2; $RVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ.sh: G1Tag $FID. Valeur $RVALUE $CURRENCY = $G1VAL G1" - ./shell/parle.sh "G1 Tag $FID. Valeur $RVALUE $CUR convertible en $G1VAL June" + ./parle.sh "G1 Tag $FID. Valeur $RVALUE $CUR convertible en $G1VAL June" fi cmd="RJ" CASHBACK="" @@ -57,7 +57,7 @@ cat /dev/ttyACM0 | while read line; do ;; BJ) - ./shell/parle.sh "B J" + ./parle.sh "B J" BB=$(echo $qrvalue | cut -d '#' -f 1) J=$(echo $qrvalue | cut -d '#' -f 2) log "__SUB:tag_READ.sh: Ouverture G1Tag $BB $J" @@ -65,7 +65,7 @@ cat /dev/ttyACM0 | while read line; do ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); FID=$(echo $ID | awk '{print toupper($1)}') if [[ "$ID" == "" ]]; then - ./shell/parle.sh "G1 Tag inconnu! veuillez le détruire!"; + ./parle.sh "G1 Tag inconnu! veuillez le détruire!"; # sms_SEND "$ADMINPHONE" "ADMIN! FRAUDE G1Tag BJ $B $J" # TODO: ENQUETER auprès du CREATEUR de ce G1 Tag !! continue @@ -84,20 +84,20 @@ cat /dev/ttyACM0 | while read line; do # CHECK IF OK gpg -d --output /tmp/ipns.key --pinentry-mode=loopback --passphrase $BB /tmp/TAG_publishkey.B.gpg if [[ ! -f /tmp/ipns.key ]]; then - ./shell/parle.sh "Erreur. Problème de déchiffrage PGP ${FID}! Vérifiez vos logs"; + ./parle.sh "Erreur. Problème de déchiffrage PGP ${FID}! Vérifiez vos logs"; log "__SUB:tag_READ.sh: ERROR! gpg -d --output /tmp/ipns.key --pinentry-mode=loopback --passphrase $BB /tmp/TAG_publishkey.B.gpg" continue fi mv /tmp/ipns.key /home/$YOU/.ipfs/keystore/$RR log "__SUB:tag_READ.sh: Récupération de la clef de publication $RR" - ./shell/parle.sh "Récupération clef de publication du G1 Tag ${FID}" + ./parle.sh "Récupération clef de publication du G1 Tag ${FID}" fi if [[ "$PASSENGER" != "" ]]; then log "__SUB:tag_READ.sh: !!!! REC Tag = $BVALUE $CURRENCY" - ./shell/parle.sh "Rec Tag Machine! Valeur $BVALUE $CUR"; + ./parle.sh "Rec Tag Machine! Valeur $BVALUE $CUR"; else log "__SUB:tag_READ.sh: Ce G1 Tag contient $BVALUE $CURRENCY" - ./shell/parle.sh "Ce G1 Tag contient $BVALUE $CUR" + ./parle.sh "Ce G1 Tag contient $BVALUE $CUR" fi cmd="BJ" val+=("$BVALUE") @@ -105,34 +105,34 @@ cat /dev/ttyACM0 | while read line; do *) if [[ $lon -eq 44 ]]; then - ./shell/parle.sh "Portefeuille G1?" + ./parle.sh "Portefeuille G1?" J=$qrvalue if [[ "$J" != "${obj[0]}" ]]; then - VALUE=$(./shell/timeout.sh -t 15 ./silkaj/silkaj amount $J) + VALUE=$(./timeout.sh -t 15 ./silkaj/silkaj amount $J) if [[ "$(echo $VALUE | cut -d ':' -f 1)" != "Error" && "$VALUE" != "" ]]; then log "__SUB:tag_READ.sh: Ce compte monnaie libre contient $VALUE G1" - ./shell/parle.sh "Ce compte monnaie libre contient $VALUE G1" + ./parle.sh "Ce compte monnaie libre contient $VALUE G1" CASHBACK="$J" cmd="G1" val+=("$VALUE") else log "__SUB:tag_READ.sh: ERREUR QR code illisible. longueur $J = ${#J}" if [[ "$VALUE" == "" ]]; then - DUNITER=$(./shell/checknodes.sh 'BAN') + DUNITER=$(./checknodes.sh 'BAN') echo "TIMEOUT. CHANGE SILKAJ SERVER: $DUNITER" - ./shell/parle.sh "Temps dépassé. Changement de serveur $DUNITER" + ./parle.sh "Temps dépassé. Changement de serveur $DUNITER" CASHBACK="" else - ./shell/parle.sh "QR code inconnu." + ./parle.sh "QR code inconnu." CASHBACK="" fi fi else - ./shell/parle.sh "Ce compte monnaie libre contient ${val[0]} G1" + ./parle.sh "Ce compte monnaie libre contient ${val[0]} G1" fi else - ./shell/parle.sh "QR code de type inconnu" + ./parle.sh "QR code de type inconnu" fi ;; @@ -142,16 +142,16 @@ cat /dev/ttyACM0 | while read line; do ############################################################### # APRES G1 CASHBACK : G1 Tag BJ WRITE => ENCAISSEMENT if [[ "${cmd}" == "BJ" && "$CASHBACK" != "" && -f /home/$YOU/.ipfs/keystore/${RR} ]]; then - ./shell/parle.sh "Encaissement du G1 Tag" + ./parle.sh "Encaissement du G1 Tag" log "__SUB:tag_READ.sh: G1 tag de $BVALUE G1 ! /ipns/$J Virement vers $CASHBACK? " - ./shell/parle.sh "vers portefeuille G1" + ./parle.sh "vers portefeuille G1" # ipfs get G1Tag vers ./TAG/${RR} mkdir -p ./TAG/${RR}; rm -f ./TAG/${RR}/*; chown -R $YOU ./TAG/${RR}/ log "__SUB:tag_READ.sh: ipfs get --output=./TAG/${RR} /ipns/$J" su $YOU -c "ipfs get --output=./TAG/${RR} /ipns/$J" - if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./shell/parle.sh "Impossible à encaisser. REC Tag ${FID}. $(cat ./TAG/${RR}/TAG_passenger) de Valeur $BVALUE "; continue; fi + if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./parle.sh "Impossible à encaisser. REC Tag ${FID}. $(cat ./TAG/${RR}/TAG_passenger) de Valeur $BVALUE "; continue; fi # Make Silkaj TX G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) @@ -160,12 +160,12 @@ cat /dev/ttyACM0 | while read line; do log "__SUB:tag_READ.sh: Silkaj output = $PAY" if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$ADMINPHONE" "Il est survenu un problème avec un virement. Retour silkaj: $PAY ... $new"; - ./shell/parle.sh "Erreur de virement. Changement de serveur Duniter. Veuillez recommencer" + ./parle.sh "Erreur de virement. Changement de serveur Duniter. Veuillez recommencer" else # ENCAISSEMENT G1Tag - ./shell/parle.sh "Transfert du Tag ${FID} de $G1VAL G1 vers portefeuille OK" + ./parle.sh "Transfert du Tag ${FID} de $G1VAL G1 vers portefeuille OK" # CAPTURE / DESTRUCTION du G1 Tag echo "0" > "./TAG/${RR}/TAG_amount" echo "${J}" > "./TAG/${RR}/TAG_ipns" @@ -191,7 +191,7 @@ cat /dev/ttyACM0 | while read line; do J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}") log "__SUB:tag_READ.sh: Destruction de ce G1 Tag publish -k ${RR} --quieter /ipfs/${I} :: ipfs ls /ipns/$J" - ./shell/parle.sh "${FID} G1 Tag vide. Merci de détruire ce G1 Tag!" + ./parle.sh "${FID} G1 Tag vide. Merci de détruire ce G1 Tag!" # CLEAN IPFS keystore: remove NOT created NODE keys SOURCENODEID=$(cat "./TAG/${RR}/TAG_nodeid") @@ -201,7 +201,7 @@ cat /dev/ttyACM0 | while read line; do fi else # AJOUT MEMOIRE SCAN - ./shell/parle.sh "Mémorisation" + ./parle.sh "Mémorisation" act+=("$cmd") obj+=("$J") fi @@ -217,11 +217,11 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "RJ" && "${act[1]}" == "BJ" && "${obj[0]}" != "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[1]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/parle.sh "Rec Tag Machine non transférable!"; + ./parle.sh "Rec Tag Machine non transférable!"; else log "__SUB:tag_READ.sh: Transfert de G1 Tag à G1 Tag. $BVALUE $CUR" - ./shell/parle.sh "Transfert de ${val[1]} $CUR vers le G1 Tag ${FID}" - log "__SUB:tag_READ.sh: $(./shell/tag_OP.sh ${obj[1]} ${obj[0]} ${val[1]} $SWARM_G1AUTHFILE)" + ./parle.sh "Transfert de ${val[1]} $CUR vers le G1 Tag ${FID}" + log "__SUB:tag_READ.sh: $(./tag_OP.sh ${obj[1]} ${obj[0]} ${val[1]} $SWARM_G1AUTHFILE)" fi CASHBACK="" fi @@ -230,11 +230,11 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "BJ" && "${act[1]}" == "BJ" && "${obj[0]}" == "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[0]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/parle.sh "Déjà Rec Tag Machine!"; + ./parle.sh "Déjà Rec Tag Machine!"; else log "__SUB:tag_READ.sh: Transformation du G1 Tag en Rec Tag. ${val[0]} = ${val[1]}" - ./shell/parle.sh "Transformation du G1 Tag ${val[0]} $CUR en Rec Tag chargé de ${FID}..." - log "__SUB:tag_READ.sh: $(./shell/tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" + ./parle.sh "Transformation du G1 Tag ${val[0]} $CUR en Rec Tag chargé de ${FID}..." + log "__SUB:tag_READ.sh: $(./tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" fi CASHBACK="" fi @@ -242,9 +242,9 @@ cat /dev/ttyACM0 | while read line; do act=() obj=() val=() - ./shell/parle.sh "Nouveau cycle de lecture." + ./parle.sh "Nouveau cycle de lecture." fi - ./shell/parle.sh "Flasher un QR code" + ./parle.sh "Flasher un QR code" done diff --git a/g1sms/tag_READ_X.sh b/g1sms/tag_READ_X.sh index d783b0e..46b1fe6 100755 --- a/g1sms/tag_READ_X.sh +++ b/g1sms/tag_READ_X.sh @@ -10,8 +10,8 @@ # Saisie du montant à transférer par pavé numérique ########################################################################################### echo "__SUB:tag_READ_X.sh: QRCODE READER : START" -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized @@ -26,8 +26,8 @@ if [ ! -f $SWARM_G1AUTHFILE ]; then echo "ERREUR CLEF DECHIFFRAGE!"; exit; fi # DOUCHETTE ES TU LA? if [ ! $G1TX ]; then echo "Branchez votre lecteur de QR code!"; exit; fi -./shell/tools/4LETTER.scroll.py "G1TX START" -./shell/tools/4LETTER.clock.py & +./tools/4LETTER.scroll.py "G1TX START" +./tools/4LETTER.clock.py & clockpid=$! # TABLEAU MEMOIRE DE SCAN declare -a act @@ -50,24 +50,24 @@ cat /dev/ttyACM0 | while read line; do # IPFS READ ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); if [[ "$ID" == "" ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD G1TAG <<" + ./tools/4LETTER.scroll.py ">> BAD G1TAG <<" continue fi # Get First R Tag name word and remove space for RR FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "${#act[@]} $FID > " + ./tools/4LETTER.scroll.py "${#act[@]} $FID > " RVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount"); CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') PASSENGER=$(su $YOU -c "ipfs cat /ipns/$J/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "G1TAG PASSENGER $RVALUE ZEN" + ./tools/4LETTER.scroll.py "G1TAG PASSENGER $RVALUE ZEN" else G1VAL=$(bc -l <<< "scale=2; $RVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: G1Tag $FID. Valeur $RVALUE $CURRENCY = $G1VAL G1" - ./shell/tools/4LETTER.scroll.py "$RVALUE ZEN *** $G1VAL G1" + ./tools/4LETTER.scroll.py "$RVALUE ZEN *** $G1VAL G1" fi cmd="RJ" CASHBACK="" @@ -81,13 +81,13 @@ cat /dev/ttyACM0 | while read line; do # ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); if [[ "$ID" == "" ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD G1TAG <<" + ./tools/4LETTER.scroll.py ">> BAD G1TAG <<" continue fi FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "${#act[@]} $FID TX >>" + ./tools/4LETTER.scroll.py "${#act[@]} $FID TX >>" BVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount") CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') @@ -98,11 +98,11 @@ cat /dev/ttyACM0 | while read line; do else rm /tmp/TAG_publishkey.B.gpg su $YOU -c "ipfs get -o /tmp/ /ipns/$J/TAG_publishkey.B.gpg" - ./shell/tools/4LETTER.scroll.py "** GPG **" + ./tools/4LETTER.scroll.py "** GPG **" gpg -d --output /tmp/ipns.key --pinentry-mode=loopback --passphrase $BB /tmp/TAG_publishkey.B.gpg # CHECK IF OK if [[ ! -f /tmp/ipns.key ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD GPG KEY <<" + ./tools/4LETTER.scroll.py ">> BAD GPG KEY <<" continue fi mv /tmp/ipns.key /home/$YOU/.ipfs/keystore/$RR @@ -110,11 +110,11 @@ cat /dev/ttyACM0 | while read line; do fi if [[ "$PASSENGER" != "" ]]; then log "__SUB:tag_READ_X.sh: !!!! $FID REC Tag = $BVALUE $CURRENCY" - ./shell/tools/4LETTER.scroll.py "G1TAG PASSENGER $BVALUE ZEN" + ./tools/4LETTER.scroll.py "G1TAG PASSENGER $BVALUE ZEN" else G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: Ce G1 Tag $FID contient $BVALUE $CURRENCY" - ./shell/tools/4LETTER.scroll.py "$BVALUE ZEN *** $G1VAL G1 MAX" + ./tools/4LETTER.scroll.py "$BVALUE ZEN *** $G1VAL G1 MAX" fi cmd="BJ" val+=("$BVALUE") @@ -122,37 +122,37 @@ cat /dev/ttyACM0 | while read line; do *) if [[ $lon -eq 44 ]]; then - ./shell/tools/4LETTER.scroll.py "PORTEFEUILLE G1 >>>>>>>> ${#act[@]}" & + ./tools/4LETTER.scroll.py "PORTEFEUILLE G1 >>>>>>>> ${#act[@]}" & J=$qrvalue if [[ "$J" != "${obj[0]}" ]]; then - VALUE=$(./shell/timeout.sh -t 25 ./silkaj/silkaj amount $J) + VALUE=$(./timeout.sh -t 25 ./silkaj/silkaj amount $J) if [[ "$(echo $VALUE | cut -d ':' -f 1)" != "Error" && "$VALUE" != "" ]]; then log "__SUB:tag_READ_X.sh: Ce compte monnaie libre contient $VALUE G1" NOPOINT=$(echo $VALUE | cut -d '.' -f 1) - ./shell/tools/4LETTER.scroll.py " $NOPOINT G1 *** $NOPOINT G1 " + ./tools/4LETTER.scroll.py " $NOPOINT G1 *** $NOPOINT G1 " CASHBACK="$J" cmd="G1" val+=("$VALUE") else if [[ "$VALUE" == "" ]]; then - DUNITER=$(./shell/checknodes.sh 'BAN') + DUNITER=$(./checknodes.sh 'BAN') log "__SUB:tag_READ_X.sh: ERREUR TIMEOUT. CHANGE SILKAJ SERVER: $DUNITER" - ./shell/tools/4LETTER.scroll.py "ERREUR TIMEOUT SILKAJ" - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./tools/4LETTER.scroll.py "ERREUR TIMEOUT SILKAJ" + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py CASHBACK="" else log "__SUB:tag_READ_X.sh: ERREUR QRCODE ILLISIBLE. longueur $J = ${#J}" - ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py CASHBACK="" fi fi else - ./shell/tools/4LETTER.scroll.py " 2 X " + ./tools/4LETTER.scroll.py " 2 X " fi else - ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" + ./tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" fi ;; @@ -162,10 +162,10 @@ cat /dev/ttyACM0 | while read line; do ############################################################### # APRES G1 CASHBACK : G1 Tag BJ WRITE => ENCAISSEMENT if [[ "${cmd}" == "BJ" && "$CASHBACK" != "" && -f /home/$YOU/.ipfs/keystore/${RR} ]]; then - ./shell/tools/4LETTER.scroll.py "ZEN -> G1" + ./tools/4LETTER.scroll.py "ZEN -> G1" log "__SUB:tag_READ_X.sh: G1 tag de $BVALUE G1 ! /ipns/$J Virement vers $CASHBACK? " - ./shell/tools/4LETTER.spinner.py & + ./tools/4LETTER.spinner.py & spinnerpid=$! # ipfs get G1Tag vers ./TAG/${RR} @@ -173,7 +173,7 @@ cat /dev/ttyACM0 | while read line; do log "__SUB:tag_READ_X.sh: ipfs get --output=./TAG/${RR} /ipns/$J" su $YOU -c "ipfs get --output=./TAG/${RR} /ipns/$J" - if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./shell/tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER $BVALUE ZEN"; continue; fi + if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER $BVALUE ZEN"; continue; fi # Make Silkaj TX G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) @@ -185,12 +185,12 @@ cat /dev/ttyACM0 | while read line; do kill $spinnerpid if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" && "$PAY" != "" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$ADMINPHONE" "Il est survenu un problème avec un virement. Retour silkaj: $PAY ... $new"; - ./shell/tools/4LETTER.scroll.py "ERREUR SILKAJ ERREUR" + ./tools/4LETTER.scroll.py "ERREUR SILKAJ ERREUR" else # ENCAISSEMENT G1Tag - ./shell/tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 -> OK " + ./tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 -> OK " # CAPTURE / DESTRUCTION du G1 Tag echo "0" > "./TAG/${RR}/TAG_amount" echo "${J}" > "./TAG/${RR}/TAG_ipns" @@ -216,7 +216,7 @@ cat /dev/ttyACM0 | while read line; do J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}") log "__SUB:tag_READ_X.sh: Destruction de ce G1 Tag publish -k ${RR} --quieter /ipfs/${I} :: ipfs ls /ipns/$J" - ./shell/tools/4LETTER.scroll.py "DETRUIRE G1TAG ${FID}" + ./tools/4LETTER.scroll.py "DETRUIRE G1TAG ${FID}" # CLEAN IPFS keystore: remove NOT created NODE keys SOURCENODEID=$(cat "./TAG/${RR}/TAG_nodeid") @@ -226,7 +226,7 @@ cat /dev/ttyACM0 | while read line; do fi else # AJOUT MEMOIRE SCAN - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py act+=("$cmd") obj+=("$J") fi @@ -242,19 +242,19 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "RJ" && "${act[1]}" == "BJ" && "${obj[0]}" != "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[1]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER"; + ./tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER"; else ########################################################### # READ KEYBOARD VALUE !!! 4 DIGIT REMOVING LEADING 0 - COMBIEN=$(./shell/tools/matrixKeypad.py | sed 's/^0*//') + COMBIEN=$(./tools/matrixKeypad.py | sed 's/^0*//') if [[ $COMBIEN -le ${val[1]} ]]; then COMBIENZEN=$(bc -l <<< "$COMBIEN * 100") log "__SUB:tag_READ_X.sh: Transfert de G1 Tag à G1 Tag. $COMBIEN" - ./shell/tools/4LETTER.scroll.py "G1TAG ${FID} -> TX $COMBIENZEN ZEN *** $COMBIEN G1" - log "__SUB:tag_READ_X.sh: ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN $SWARM_G1AUTHFILE" - ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN "$SWARM_G1AUTHFILE" + ./tools/4LETTER.scroll.py "G1TAG ${FID} -> TX $COMBIENZEN ZEN *** $COMBIEN G1" + log "__SUB:tag_READ_X.sh: ./tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN $SWARM_G1AUTHFILE" + ./tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN "$SWARM_G1AUTHFILE" else - ./shell/tools/4LETTER.scroll.py "ERREUR $COMBIEN > VALEUR DE ${FID} *** ${val[1]} ZEN" + ./tools/4LETTER.scroll.py "ERREUR $COMBIEN > VALEUR DE ${FID} *** ${val[1]} ZEN" fi fi CASHBACK="" @@ -264,11 +264,11 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "BJ" && "${act[1]}" == "BJ" && "${obj[0]}" == "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[0]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "DEJA TAG PASSENGER"; + ./tools/4LETTER.scroll.py "DEJA TAG PASSENGER"; else log "__SUB:tag_READ_X.sh: Transformation du G1 Tag en Rec Tag. ${val[0]} = ${val[1]}" - ./shell/tools/4LETTER.scroll.py "TRASNFORMATION G1TAG ${val[0]} ZEN EN PASSENGER ${FID}"; - log "__SUB:tag_READ_X.sh: $(./shell/tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" + ./tools/4LETTER.scroll.py "TRASNFORMATION G1TAG ${val[0]} ZEN EN PASSENGER ${FID}"; + log "__SUB:tag_READ_X.sh: $(./tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" fi CASHBACK="" fi @@ -277,10 +277,10 @@ cat /dev/ttyACM0 | while read line; do obj=() val=() # END OF 2-PASS READ - ./shell/timeout.sh -t 2 ./shell/tools/4LETTER.spinner.py + ./timeout.sh -t 2 ./tools/4LETTER.spinner.py fi - ./shell/tools/4LETTER.blink.py - ./shell/tools/4LETTER.clock.py & + ./tools/4LETTER.blink.py + ./tools/4LETTER.clock.py & clockpid=$! done diff --git a/g1sms/tag_READ_XY.sh b/g1sms/tag_READ_XY.sh index da8c145..06de939 100644 --- a/g1sms/tag_READ_XY.sh +++ b/g1sms/tag_READ_XY.sh @@ -14,14 +14,14 @@ function log () { echo "$line $1" >> /tmp/tag_READ_XY.log } -source ./shell/init.sh -source ./shell/functions.sh +source ./init.sh +source ./functions.sh ############################################## # NODE ENVIRONEMENT DETECTION ############################################## YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); IPFSNODEID=$(su $YOU -c "ipfs id -f='\n'") -NODE_UIDNA=$(cat "./wallets/.$IPFSNODEID/_uidna") +NODE_UIDNA=$(cat "~/.zen/ipfs/.$IPFSNODEID/_uidna") MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized @@ -39,8 +39,8 @@ if [[ ! -e "/dev/ttyACM0" ]]; then echo "Branchez votre lecteur de QR code!"; ex ############################################## # DOUCHETTE ES TU LA? -./shell/tools/4LETTER.scroll.py "G1TX START" -./shell/tools/4LETTER.clock.py & +./tools/4LETTER.scroll.py "G1TX START" +./tools/4LETTER.clock.py & clockpid=$! # TABLEAU MEMOIRE DE SCAN @@ -64,24 +64,24 @@ cat /dev/ttyACM0 | while read line; do # IPFS READ ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); if [[ "$ID" == "" ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD G1TAG <<" + ./tools/4LETTER.scroll.py ">> BAD G1TAG <<" continue fi # Get First R Tag name word and remove space for RR FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "${#act[@]} $FID > " + ./tools/4LETTER.scroll.py "${#act[@]} $FID > " RVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount"); CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') PASSENGER=$(su $YOU -c "ipfs cat /ipns/$J/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "G1TAG PASSENGER $RVALUE ZEN" + ./tools/4LETTER.scroll.py "G1TAG PASSENGER $RVALUE ZEN" else G1VAL=$(bc -l <<< "scale=2; $RVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: G1Tag $FID. Valeur $RVALUE $CURRENCY = $G1VAL G1" - ./shell/tools/4LETTER.scroll.py "$RVALUE ZEN *** $G1VAL G1" + ./tools/4LETTER.scroll.py "$RVALUE ZEN *** $G1VAL G1" fi cmd="RJ" CASHBACK="" @@ -95,13 +95,13 @@ cat /dev/ttyACM0 | while read line; do # ID=$(su $YOU -c "ipfs cat /ipns/$J/TAG_id"); if [[ "$ID" == "" ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD G1TAG <<" + ./tools/4LETTER.scroll.py ">> BAD G1TAG <<" continue fi FID=$(echo $ID | awk '{print toupper($1)}') RR=$(echo $ID | sed s/\ //g) - ./shell/tools/4LETTER.scroll.py "${#act[@]} $FID TX >>" + ./tools/4LETTER.scroll.py "${#act[@]} $FID TX >>" BVALUE=$(su $YOU -c "ipfs cat /ipns/$J/TAG_amount") CURRENCY=$(su $YOU -c "ipfs cat /ipns/$J/TAG_currency" | awk '{print tolower($1)}') @@ -112,11 +112,11 @@ cat /dev/ttyACM0 | while read line; do else rm /tmp/TAG_publishkey.B.gpg su $YOU -c "ipfs get -o /tmp/ /ipns/$J/TAG_publishkey.B.gpg" - ./shell/tools/4LETTER.scroll.py "** GPG **" + ./tools/4LETTER.scroll.py "** GPG **" gpg -d --output /tmp/ipns.key --pinentry-mode=loopback --passphrase $BB /tmp/TAG_publishkey.B.gpg # CHECK IF OK if [[ ! -f /tmp/ipns.key ]]; then - ./shell/tools/4LETTER.scroll.py ">> BAD GPG KEY <<" + ./tools/4LETTER.scroll.py ">> BAD GPG KEY <<" continue fi mv /tmp/ipns.key /home/$YOU/.ipfs/keystore/$RR @@ -124,11 +124,11 @@ cat /dev/ttyACM0 | while read line; do fi if [[ "$PASSENGER" != "" ]]; then log "__SUB:tag_READ_X.sh: !!!! $FID REC Tag = $BVALUE $CURRENCY" - ./shell/tools/4LETTER.scroll.py "G1TAG PASSENGER $BVALUE ZEN" + ./tools/4LETTER.scroll.py "G1TAG PASSENGER $BVALUE ZEN" else G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) log "__SUB:tag_READ_X.sh: Ce G1 Tag $FID contient $BVALUE $CURRENCY" - ./shell/tools/4LETTER.scroll.py "$BVALUE ZEN *** $G1VAL G1 MAX" + ./tools/4LETTER.scroll.py "$BVALUE ZEN *** $G1VAL G1 MAX" fi cmd="BJ" val+=("$BVALUE") @@ -136,37 +136,37 @@ cat /dev/ttyACM0 | while read line; do *) if [[ $lon -eq 44 ]]; then - ./shell/tools/4LETTER.scroll.py "PORTEFEUILLE G1 >>>>>>>> ${#act[@]}" & + ./tools/4LETTER.scroll.py "PORTEFEUILLE G1 >>>>>>>> ${#act[@]}" & J=$qrvalue if [[ "$J" != "${obj[0]}" ]]; then - VALUE=$(./shell/timeout.sh -t 25 ./silkaj/silkaj amount $J) + VALUE=$(./timeout.sh -t 25 ./silkaj/silkaj amount $J) if [[ "$(echo $VALUE | cut -d ':' -f 1)" != "Error" && "$VALUE" != "" ]]; then log "__SUB:tag_READ_X.sh: Ce compte monnaie libre contient $VALUE G1" NOPOINT=$(echo $VALUE | cut -d '.' -f 1) - ./shell/tools/4LETTER.scroll.py " $NOPOINT G1 *** $NOPOINT G1 " + ./tools/4LETTER.scroll.py " $NOPOINT G1 *** $NOPOINT G1 " CASHBACK="$J" cmd="G1" val+=("$VALUE") else if [[ "$VALUE" == "" ]]; then - DUNITER=$(./shell/checknodes.sh 'BAN') + DUNITER=$(./checknodes.sh 'BAN') log "__SUB:tag_READ_X.sh: ERREUR TIMEOUT. CHANGE SILKAJ SERVER: $DUNITER" - ./shell/tools/4LETTER.scroll.py "ERREUR TIMEOUT SILKAJ" - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./tools/4LETTER.scroll.py "ERREUR TIMEOUT SILKAJ" + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py CASHBACK="" else log "__SUB:tag_READ_X.sh: ERREUR QRCODE ILLISIBLE. longueur $J = ${#J}" - ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py CASHBACK="" fi fi else - ./shell/tools/4LETTER.scroll.py " 2 X " + ./tools/4LETTER.scroll.py " 2 X " fi else - ./shell/tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" + ./tools/4LETTER.scroll.py "ERREUR QRCODE INCONNU" fi ;; @@ -176,10 +176,10 @@ cat /dev/ttyACM0 | while read line; do ############################################################### # APRES G1 CASHBACK : G1 Tag BJ WRITE => ENCAISSEMENT if [[ "${cmd}" == "BJ" && "$CASHBACK" != "" && -f /home/$YOU/.ipfs/keystore/${RR} ]]; then - ./shell/tools/4LETTER.scroll.py "ZEN -> G1" + ./tools/4LETTER.scroll.py "ZEN -> G1" log "__SUB:tag_READ_X.sh: G1 tag de $BVALUE G1 ! /ipns/$J Virement vers $CASHBACK? " - ./shell/tools/4LETTER.spinner.py & + ./tools/4LETTER.spinner.py & spinnerpid=$! # ipfs get G1Tag vers ./TAG/${RR} @@ -187,7 +187,7 @@ cat /dev/ttyACM0 | while read line; do log "__SUB:tag_READ_X.sh: ipfs get --output=./TAG/${RR} /ipns/$J" su $YOU -c "ipfs get --output=./TAG/${RR} /ipns/$J" - if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./shell/tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER $BVALUE ZEN"; continue; fi + if [[ $(cat ./TAG/${RR}/TAG_passenger) != "" ]]; then ./tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER $BVALUE ZEN"; continue; fi # Make Silkaj TX G1VAL=$(bc -l <<< "scale=2; $BVALUE / 100" | cut -d '.' -f 1) @@ -199,12 +199,12 @@ cat /dev/ttyACM0 | while read line; do kill $spinnerpid if [[ "$(echo $PAY | cut -d '|' -f 1)" == "KO" && "$PAY" != "" ]]; then - new=$(./shell/checknodes.sh "BAN") + new=$(./checknodes.sh "BAN") sms_ERROR "$ADMINPHONE" "Il est survenu un problème avec un virement. Retour silkaj: $PAY ... $new"; - ./shell/tools/4LETTER.scroll.py "ERREUR SILKAJ ERREUR" + ./tools/4LETTER.scroll.py "ERREUR SILKAJ ERREUR" else # ENCAISSEMENT G1Tag - ./shell/tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 -> OK " + ./tools/4LETTER.scroll.py "VIR ${FID} $G1VAL G1 -> OK " # CAPTURE / DESTRUCTION du G1 Tag echo "0" > "./TAG/${RR}/TAG_amount" echo "${J}" > "./TAG/${RR}/TAG_ipns" @@ -230,7 +230,7 @@ cat /dev/ttyACM0 | while read line; do J=$(su $YOU -c "ipfs name publish -k ${RR} --quieter /ipfs/${I}") log "__SUB:tag_READ_X.sh: Destruction de ce G1 Tag publish -k ${RR} --quieter /ipfs/${I} :: ipfs ls /ipns/$J" - ./shell/tools/4LETTER.scroll.py "DETRUIRE G1TAG ${FID}" + ./tools/4LETTER.scroll.py "DETRUIRE G1TAG ${FID}" # CLEAN IPFS keystore: remove NOT created NODE keys SOURCENODEID=$(cat "./TAG/${RR}/TAG_nodeid") @@ -240,7 +240,7 @@ cat /dev/ttyACM0 | while read line; do fi else # AJOUT MEMOIRE SCAN - ./shell/timeout.sh -t 1 ./shell/tools/4LETTER.spinner.py + ./timeout.sh -t 1 ./tools/4LETTER.spinner.py act+=("$cmd") obj+=("$J") fi @@ -256,19 +256,19 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "RJ" && "${act[1]}" == "BJ" && "${obj[0]}" != "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[1]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER"; + ./tools/4LETTER.scroll.py "IMPOSSIBLE TAG PASSENGER"; else ########################################################### # READ KEYBOARD VALUE !!! 4 DIGIT REMOVING LEADING 0 - COMBIEN=$(./shell/tools/matrixKeypad.py | sed 's/^0*//') + COMBIEN=$(./tools/matrixKeypad.py | sed 's/^0*//') if [[ $COMBIEN -le ${val[1]} ]]; then COMBIENZEN=$(bc -l <<< "$COMBIEN * 100") log "__SUB:tag_READ_X.sh: Transfert de G1 Tag à G1 Tag. $COMBIEN" - ./shell/tools/4LETTER.scroll.py "G1TAG ${FID} -> TX $COMBIENZEN ZEN *** $COMBIEN G1" - log "__SUB:tag_READ_X.sh: ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN $SWARM_G1AUTHFILE" - ./shell/tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN "$SWARM_G1AUTHFILE" + ./tools/4LETTER.scroll.py "G1TAG ${FID} -> TX $COMBIENZEN ZEN *** $COMBIEN G1" + log "__SUB:tag_READ_X.sh: ./tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN $SWARM_G1AUTHFILE" + ./tag_OP.sh ${obj[1]} ${obj[0]} $COMBIENZEN "$SWARM_G1AUTHFILE" else - ./shell/tools/4LETTER.scroll.py "ERREUR $COMBIEN > VALEUR DE ${FID} *** ${val[1]} ZEN" + ./tools/4LETTER.scroll.py "ERREUR $COMBIEN > VALEUR DE ${FID} *** ${val[1]} ZEN" fi fi CASHBACK="" @@ -278,11 +278,11 @@ cat /dev/ttyACM0 | while read line; do if [[ "${act[0]}" == "BJ" && "${act[1]}" == "BJ" && "${obj[0]}" == "${obj[1]}" ]]; then PASSENGER=$(su $YOU -c "ipfs cat /ipns/${obj[0]}/TAG_passenger"); if [[ "$PASSENGER" != "" ]]; then - ./shell/tools/4LETTER.scroll.py "DEJA TAG PASSENGER"; + ./tools/4LETTER.scroll.py "DEJA TAG PASSENGER"; else log "__SUB:tag_READ_X.sh: Transformation du G1 Tag en Rec Tag. ${val[0]} = ${val[1]}" - ./shell/tools/4LETTER.scroll.py "TRASNFORMATION G1TAG ${val[0]} ZEN EN PASSENGER ${FID}"; - log "__SUB:tag_READ_X.sh: $(./shell/tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" + ./tools/4LETTER.scroll.py "TRASNFORMATION G1TAG ${val[0]} ZEN EN PASSENGER ${FID}"; + log "__SUB:tag_READ_X.sh: $(./tag_OP.sh ${obj[0]} ${obj[0]} 0 $SWARM_G1AUTHFILE)" fi CASHBACK="" fi @@ -291,10 +291,10 @@ cat /dev/ttyACM0 | while read line; do obj=() val=() # END OF 2-PASS READ - ./shell/timeout.sh -t 2 ./shell/tools/4LETTER.spinner.py + ./timeout.sh -t 2 ./tools/4LETTER.spinner.py fi - ./shell/tools/4LETTER.blink.py - ./shell/tools/4LETTER.clock.py & + ./tools/4LETTER.blink.py + ./tools/4LETTER.clock.py & clockpid=$! done diff --git a/zen/nextcloud_SWARM_share.sh b/zen/nextcloud_SWARM_share.sh new file mode 100755 index 0000000..e28215b --- /dev/null +++ b/zen/nextcloud_SWARM_share.sh @@ -0,0 +1,100 @@ +#!/bin/bash +################################################################################ +# Author: Fred (support@qo-op.com) +# Version: 0.1 +# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) +################################################################################ +# Extract last ads +# Thank you @kimamila for cesium & gchange +# ES backend http://www.elasticsearchtutorial.com/spatial-search-tutorial.html +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +ME="${0##*/}" + +ipfsnodeid=$(ipfs id -f='\n') +[[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh +g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2) + +CESIUM="https://g1.data.le-sou.org" + +curl -sk ${CESIUM}/user/profile/${g1pub} -o ~/.zen/cache/cesium_profile.json +LON=$(cat ~/.zen/cache/cesium_profile.json | jq '._source.geoPoint.lon') +LAT=$(cat ~/.zen/cache/cesium_profile.json | jq '._source.geoPoint.lat') + +RAD="$1" +[[ ! $RAD ]] && RAD="10km" + +if [[ "$LON" != "null" ]]; then +curl -sk -XPOST 'https://data.gchange.fr/market/record/_search?pretty&_source=title' -d ' + { + "size": 200, + "query": { + "bool": { + "filter": [{ + "geo_distance": { + "distance": "'$RAD'", + "geoPoint": { + "lat": '$LAT', + "lon": '$LON' + } + } + }] + } + } + }' > /tmp/gchange.json || exit 1 +else + echo "Aucune coordonnées geoPoint pour $g1pub" && exit 1 +fi +TIMEBEFORE=$(date -u --date="-$DELAY" +"%s") +TIMESTAMP=$(date -u +"%s") +TOTAL=$(cat /tmp/gchange.json | jq .hits.total) +echo 'tail -f ~/.zen/cache/gchange.txt' +echo '# #GCHANGE-Market' > ~/.zen/cache/gchange.txt +echo "Le profil géolocalisé de ce [portefeuille](https://demo.cesium.app/#/app/wot/$g1pub/)" >> ~/.zen/cache/gchange.txt +echo "reçoit les annonces [situées dans un rayon de $RAD](https://www.openstreetmap.org/#map=10/$LAT/$LON) " >> ~/.zen/cache/gchange.txt +chunk=0 +fullcount=0 + +DUNITERNODE=$($MY_PATH/tools/duniter_getnode.sh) +DUNITERURL="https://$DUNITERNODE" +LASTDU=$(curl -s ${DUNITERURL}/blockchain/with/ud | jq '.result.blocks[]' | tail -n 1); +[[ $LASTDU != "" ]] && LASTDU=$(curl -s ${DUNITERURL}/blockchain/block/${LASTDU} | jq '.dividend') +echo "DU = $LASTDU G1" + +for gID in $(cat /tmp/gchange.json | jq -r .hits.hits[]._id); do + + NEW="" + + #[[ ! -f ~/.zen/cache/gchange/$gID.json ]] && + NEW="true" \ + && curl -s --create-dirs -o ~/.zen/cache/gchange/$gID.json -s https://data.gchange.fr/market/record/$gID?_source=category,title,description,issuer,time,creationTime,location,address,city,price,unit,currency,thumbnail._content_type,thumbnail._content,picturesCount,type,stock,fees,feesCurrency,geoPoint \ + && sleep $((1 + RANDOM % 3)) + + type=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.type) + # [[ $type == "need" ]] && continue + creationTime=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.creationTime) + title=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.title) + + currency=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.currency) + price=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.price) + + categoryname=$(cat ~/.zen/cache/gchange/$gID.json | jq -r ._source.category.name) + + [[ $price == null ]] && price="0" + [[ $currency == "g1" ]] && love=$(bc -l <<< "scale=2; $price / $LASTDU * 100") || love="?.??" + love="$love LOVE" + price=$(bc -l <<< "scale=2; $price / 100") + + fullcount=$((fullcount+1)) && echo "DEBUG : $fullcount - $type - $price $currency - $title " + [[ $price == "0" ]] && love="OFFERT !?" && price="A débattre " + + + [[ $NEW == "true" ]] \ + && echo "- [$title](https://data.gchange.fr/market/record/$gID/_share) :heart: $love" >> ~/.zen/cache/gchange.txt \ + && chunk=$((chunk+1)) && echo $chunk + +done +echo "$chunk nouvelles annonces ($TOTAL)" >> ~/.zen/cache/gchange.txt + +## LOG INTO SSB ??? TODO +# sbotc publish '{"type":"zenlog","text":"'"$ME"'"}' diff --git a/zen/tools/make_G1SSB_secret.sh b/zen/tools/make_G1SSB_secret.sh index 1ffaa58..951a5ea 100755 --- a/zen/tools/make_G1SSB_secret.sh +++ b/zen/tools/make_G1SSB_secret.sh @@ -122,8 +122,6 @@ echo ' \__, /\____/\__,_/\__/\__,_/_.___/\___/ \__,_/_/ /____/ - - youtube-dl Swarm audio and video source... ' if [[ ! $(which youtube-dl) ]]; then