2021-06-21 18:24:58 +02:00
#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
MY_PATH = " `dirname \" $0 \"` " # relative
MY_PATH = " `( cd \" $MY_PATH \" && pwd )` " # absolutized and normalized
ME = " ${ 0 ##*/ } "
2021-07-02 05:01:55 +02:00
echo " EXECUTE $ME ( $1 =phone, $2 =guilde) "
2021-06-21 18:24:58 +02:00
phone = " $1 "
2021-07-02 05:01:55 +02:00
guilde = " $2 "
2021-06-21 18:24:58 +02:00
2021-07-02 03:54:33 +02:00
message = " $( cat /tmp/${ phone } _message) "
2021-06-21 18:24:58 +02:00
########################################################################
echo "## GET STATION G1PUB"
########################################################################
2021-06-21 19:20:19 +02:00
YOU = $( ps auxf --sort= +utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er += " ipfs daemon not running"
2021-06-21 18:24:58 +02:00
[ [ ! -f /home/${ YOU } /.zen/secret.dunikey ] ] && echo " Crypto is missing... please provide /home/ ${ YOU } /.zen/secret.dunikey by installing 'astrXbian' TestNet " && exit 1
G1PUB = $( cat /home/${ YOU } /.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
2021-06-21 19:30:41 +02:00
## LOG
2021-07-02 05:01:55 +02:00
echo " ${ phone } ; ${ guilde } ; ${ message } " >> /home/${ YOU } /.zen/SMS/received.log
2021-06-21 19:30:41 +02:00
2021-06-21 18:24:58 +02:00
########################################################################
echo " ## sha256sum( $phone ) "
########################################################################
2021-06-21 18:43:23 +02:00
phonehash = $( echo $phone | sha256sum | cut -d ' ' -f1)
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-21 18:43:23 +02:00
echo " => ${ phonehash } "
2021-06-21 18:24:58 +02:00
########################################################################
2021-07-05 00:02:59 +02:00
htest = $( ls /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } 2>/dev/null)
2021-06-21 18:24:58 +02:00
if [ [ $htest ] ] ; then
2021-07-02 03:54:33 +02:00
NEW = 0
xzuid = $( cat " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /xzuid.txt " )
echo " OK $phone already registered it is $xzuid "
else
mkdir -p /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /
2021-06-21 18:24:58 +02:00
fi
if [ [ ! $xzuid ] ] ; then
2021-07-02 03:54:33 +02:00
NEW = 1
2021-06-21 18:24:58 +02:00
########################################################################
echo "## GESTION IDENTITES: G1 + NEXTCLOUD + QRCODE"
########################################################################
## MAKE UNIQ xzuid
xzuid = $( $MY_PATH /diceware.sh 1 | xargs) ${ RANDOM : 0 : 5 }
2021-07-02 03:54:33 +02:00
while [ [ " $( cat /home/${ YOU } /.zen/SMS/PHONE/*/xzuid.txt) " = = " ${ xzuid } " ] ]
2021-06-21 18:24:58 +02:00
do
xzuid = $( $MY_PATH /diceware.sh 1 | xargs) ${ RANDOM : 0 : 5 }
done
2021-07-02 03:54:33 +02:00
echo " $xzuid " > /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /xzuid.txt
2021-06-21 18:24:58 +02:00
echo " => $xzuid + NOUVEAU + "
2021-07-02 03:54:33 +02:00
2021-06-21 18:24:58 +02:00
########################################################################
echo " ## $xzuid / $phone => NEW DUNIKEY & QRCODE "
########################################################################
2021-07-02 03:54:33 +02:00
echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Heureux de vous accueillir. $xzuid est votre nouvelle Identité Interplanétaire MadeInZion/Astroport.\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
2021-06-21 18:24:58 +02:00
########################################################################
2021-07-02 03:54:33 +02:00
echo "## MAKE secret.dunikey"
2021-06-21 18:24:58 +02:00
########################################################################
$MY_PATH /key_create_dunikey.py " $xzuid " " $phone "
[ [ ! $? = = 0 ] ] && echo "FAILED" && exit 1
g1pub = $( cat /tmp/secret.dunikey | grep "pub" | cut -d ' ' -f 2)
g1sec = $( cat /tmp/secret.dunikey | grep "sec" | cut -d ' ' -f 2)
2021-07-02 03:54:33 +02:00
echo $g1pub > /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /g1pub.txt
echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Votre identifiant est $xzuid , votre mot de passe sera ce numéro de téléphone : $phone ' .\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
2021-07-02 03:54:33 +02:00
########################################################################
echo "## QRCODES"
########################################################################
qrencode -s 6 -o " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /QR.png " " $g1pub "
echo "# CREATE 4 DIGIT PASS"
PASS = $( echo " ${ RANDOM } ${ RANDOM } ${ RANDOM } " | tail -c-5) && echo " $PASS " > /tmp/${ xzuid } .pin
echo "# SSLSEC QR CODE"
echo " $g1sec " > /tmp/${ xzuid } .sec
openssl enc -aes-256-cbc -salt -in /tmp/${ xzuid } .sec -out " /tmp/ ${ xzuid } .sec.ssl " -k $PASS
sslsec = $( cat /tmp/${ xzuid } .sec.ssl | base58)
qrencode -s 6 -o " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /QRSEC.png " " $sslsec "
echo " ## $sslsec ( $PASS ) => /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /QRSEC.png "
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-21 18:43:23 +02:00
echo " ## SAVING /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /secret.dunikey.encrypt "
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-21 18:43:23 +02:00
$MY_PATH /natools.py encrypt -p $G1PUB -i /tmp/secret.dunikey -o /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /secret.dunikey.encrypt
2021-06-21 18:24:58 +02:00
[ [ ! $? = = 0 ] ] && echo "FAILED" && exit 1
########################################################################
2021-07-02 03:54:33 +02:00
echo "CREATING FAKE AVATAR"
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-22 05:37:25 +02:00
$MY_PATH /timeout.sh -t 10 curl -s https://thispersondoesnotexist.com/image -o /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /avatar.jpg
2021-07-05 00:02:59 +02:00
[ [ $? = = 0 ] ] && echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Une photo anonyme a été associée à votre identifiant ${ xzuid } et mot de passe: ${ phone } ) \" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
2021-06-22 05:37:25 +02:00
if [ [ -f /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /avatar.jpg ] ] ; then
########################################################################
2021-07-02 03:54:33 +02:00
echo "GCHANGE+ PROFILE"
2021-06-22 05:37:25 +02:00
########################################################################
$MY_PATH /timeout.sh -t 10 $MY_PATH /jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" set --name " ${ xzuid } " --avatar " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /avatar.jpg " #GCHANGE+
2021-07-05 00:02:59 +02:00
[ [ $? = = 0 ] ] && echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Utilisez https://gchange.fr Quittez les Banques et échangez gratuitement en JUNE - https://monnaie-libre.fr - \" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
2021-06-22 05:37:25 +02:00
########################################################################
2021-07-02 03:54:33 +02:00
echo "CESIUM+ PROFILE"
2021-06-22 05:37:25 +02:00
########################################################################
$MY_PATH /timeout.sh -t 10 $MY_PATH /jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://g1.data.e-is.pro" set --name " ${ xzuid } " --avatar " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /avatar.jpg " #CESIUM+
2021-07-05 00:02:59 +02:00
[ [ $? = = 0 ] ] && echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Les primes de vos missions vont sur le portefeuille libre https://cesium.app - $g1pub -\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
2021-07-02 03:54:33 +02:00
2021-06-22 05:37:25 +02:00
fi
2021-06-21 18:24:58 +02:00
if [ [ -f /var/www/nextcloud/occ ] ] ; then
2021-07-05 00:02:59 +02:00
########################################################################
echo " ## NEXTCLOUD : ${ xzuid } / ${ phone } "
########################################################################
2021-07-02 05:01:55 +02:00
sudo su -s /bin/sh www-data -c " export OC_PASS=\" ${ phone } \" && php /var/www/nextcloud/occ user:add --password-from-env --group=\" ${ guilde } \" --display-name=\" ${ xzuid } \" ${ xzuid } "
2021-07-05 00:02:59 +02:00
[ [ $? = = 0 ] ] && echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Quittez les GAFAM! Synchronisez votre smartphone avec NEXTCloud chez l' un des amis du réseau de %MAKER https://copylaradio.com - DEMO - https://taurus.copylaradio.com\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
sudo mkdir /var/www/nextcloud/data/${ xzuid } /astroport/MadeInZion
sudo cp /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /* /var/www/nextcloud/data/${ xzuid } /astroport/MadeInZion
sudo chown -R www-data:pi /var/www/nextcloud/data/${ xzuid } /astroport
2021-06-21 18:43:23 +02:00
2021-07-02 03:54:33 +02:00
fi
2021-06-21 18:43:23 +02:00
########################################################################
echo " ## Encrypt ${ phone } into /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /passwd.encrypt "
########################################################################
2021-06-21 19:18:43 +02:00
echo ${ phone } > /tmp/${ phone } _phone
2021-06-21 18:43:23 +02:00
$MY_PATH /natools.py encrypt -p $G1PUB -i /tmp/${ phone } _phone -o /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /passwd.encrypt
[ [ ! $? = = 0 ] ] && echo "FAILED" && exit 1
2021-07-02 03:54:33 +02:00
########################################################################
echo " ## Encrypt ${ xzuid } .pin into /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /pin.encrypt "
########################################################################
$MY_PATH /natools.py encrypt -p $G1PUB -i /tmp/${ xzuid } .pin -o /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /pin.encrypt
[ [ ! $? = = 0 ] ] && echo "FAILED" && exit 1
2021-06-21 18:24:58 +02:00
else
2021-06-21 18:43:23 +02:00
echo " => $xzuid OK "
2021-06-21 18:24:58 +02:00
fi
########################################################################
2021-07-02 05:01:55 +02:00
echo " ## GESTION RELATION PHONE / GUILDE : ${ phone } / ${ guilde } "
2021-06-21 18:24:58 +02:00
########################################################################
2021-07-02 05:01:55 +02:00
## NOUVELLE INSCRIPTION
[ [ ! -f /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /INPUT/${ phone } ] ] && echo " #!/bin/bash
2021-07-06 18:42:44 +02:00
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Bienvenue ${ xzuid } . Partagez notre Escape Game vers le Libre sur https://oasis.astroport.com\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /0000000000000.tosend.sh
########################################################################
## CAPTE LES ETOILES GCHANGE STARS.
G1 = $( cat /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /g1pub.txt)
$MY_PATH /timeout.sh -t 10 $MY_PATH /jaklis/jaklis.py -k /tmp/secret.dunikey -n "https://data.gchange.fr" stars -p $G1 > /tmp/$g1pub .stars
XUIDSCORE = $( cat /tmp/$g1pub .stars | jq .score)
## SCORE > 4 DONNE DROIT DE CREER ET DIALOGUER AVEC LES GUILDES.
SCORE = $( echo $XUIDSCORE | cut -d '.' -f 1) || SCORE = 0
SMSADMIN = " $( cat /home/${ YOU } /.zen/SMSADMIN) " ## FRENCH NUMBER
## MESSAGE DU GUIDE DE LA GUILDE OU DE L'ADMIN DE LA STATION ?
if [ [ $SCORE -ge 4 || ${ phone } = = $SMSADMIN ] ] ; then
mkdir -p /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /INPUT/
mkdir -p /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /OUTPUT/
## PREPARATION DU MESSAGE POUR LA GUILDE
[ [ ${ message } != "" ] ] && echo " #!/bin/bash
sudo gammu sendsms TEXT \" _PHONE_\" -text \" $xzuid : ${ message } \" " > /home/ ${ YOU } /.zen/SMS/GUILDES/ ${ guilde } /OUTPUT/ $( date -u +%s%N | cut -b1-13) .tosend.sh
fi
## MEMORISATION INPUT ET LIENS PHONE <-> GUILDE
########################################################################
if [ [ -d /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /INPUT ] ] ; then
## MEMORISATION DU MESSAGE dans GUILDES/${guilde}/INPUT/
echo " ${ message } " >> /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /INPUT/${ phone }
2021-06-23 01:58:18 +02:00
2021-07-06 18:42:44 +02:00
## LIEN vers GUILDES/${guilde} dans PHONE/${phonehash}/GUILDES/
mkdir -p /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /GUILDES/
ln -s /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /GUILDES/${ guilde }
2021-07-02 03:54:33 +02:00
2021-07-06 18:42:44 +02:00
## LIEN vers PHONE/${phonehash} dans GUILDES/${guilde}/MEMBERS/
mkdir -p mkdir -p /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /MEMBERS/
ln -s /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /home/${ YOU } /.zen/SMS/GUILDES/${ guilde } /MEMBERS/${ phone }
2021-07-02 03:54:33 +02:00
2021-07-06 18:42:44 +02:00
## CREATION REPERTOIRE PERSO GUILDE DANS ESPACE NEXTCLOUD (POUR PARTAGE DE DOCUMENTS)
sudo mkdir /var/www/nextcloud/data/${ xzuid } /astroport/${ guilde } /${ xzuid }
sudo chown -R www-data:pi /var/www/nextcloud/data/${ xzuid } /astroport
else
## GUILDE INCONNUE
echo " #!/bin/bash
sudo gammu sendsms TEXT \" _PHONE_\" -text \" Guilde inconnue. Trouvez ou créez la votre sur https://oasis.astroport.com\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / $( date -u +%s%N | cut -b1-13) .tosend.sh
fi
2021-06-22 04:52:10 +02:00
2021-06-22 05:37:25 +02:00
########################################################################
2021-06-23 01:58:18 +02:00
## BUG: gammu-smsd HACK (must be stop to send response sms)
## Création de script d'envoi de SMS après gammu-smsd stop
2021-06-22 05:37:25 +02:00
########################################################################
2021-07-02 03:54:33 +02:00
chmod 775 /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /*.tosend.sh
2021-06-22 04:52:10 +02:00
2021-06-22 05:37:25 +02:00
########################################################################
2021-07-02 03:54:33 +02:00
## TAURUS LIVE DEMO PRINT ID + MESSAGE
2021-06-22 05:37:25 +02:00
# Disable power off = https://github.com/pklaus/brother_ql/issues/50
# echo -n -e '\x1b\x69\x55\x41\x00\x00' | brother_ql -m QL-700 -p /dev/usb/lp0 send -
2021-06-30 21:22:33 +02:00
## IMAGE MAGICK https://legacy.imagemagick.org/Usage/layers/#append
2021-06-22 05:37:25 +02:00
########################################################################
if [ [ -e /dev/usb/lp0 ] ] ; then
2021-07-02 03:54:33 +02:00
ts = $( date -u +%s%N | cut -b1-13)
# PRINT QR.png CREDENTIALS AND QR CODES
brother_ql_create --model QL-700 /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /QR.png --label-size 62 > /tmp/${ ts } _QR.bin
brother_ql_print /tmp/${ ts } _QR.bin /dev/usb/lp0
# PRINT ${xzuid} ${phone}
convert -background White label:" ${ xzuid } ${ phone } " -append /tmp/${ ts } _ID.png
brother_ql_create --model QL-700 /tmp/${ ts } _ID.png --label-size 62 > /tmp/${ ts } _ID.bin
brother_ql_print /tmp/${ ts } _ID.bin /dev/usb/lp0
# PRINT QRSEC.png
brother_ql_create --model QL-700 /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /QRSEC.png --label-size 62 > /tmp/${ ts } _QRSEC.bin
brother_ql_print /tmp/${ ts } _QRSEC.bin /dev/usb/lp0
2021-07-06 18:42:44 +02:00
# PRINT $PASS
convert -background White label:" CODE SECRET : ${ PASS } " -append /tmp/${ ts } _PASS.png
brother_ql_create --model QL-700 /tmp/${ ts } _PASS.png --label-size 62 > /tmp/${ ts } _PASS.bin
brother_ql_print /tmp/${ ts } _PASS.bin /dev/usb/lp0
2021-06-22 05:37:25 +02:00
fi
2021-06-22 04:52:10 +02:00
2021-06-21 18:24:58 +02:00
exit 0