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 ##*/ } "
echo " EXECUTE $ME ( $1 =phone, $2 =uid) "
phone = " $1 "
groupe = " $2 "
avis = " $( cat /tmp/${ phone } _message) "
########################################################################
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
echo " ${ phone } ; ${ groupe } ; ${ avis } " >> /home/${ YOU } /.zen/SMS/received.log
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-06-21 18:43:23 +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-06-21 18:43:23 +02:00
xzuid = $( cat " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /xzuid " )
2021-06-30 21:22:33 +02:00
echo " $phone already registered it is $xzuid "
2021-06-21 18:24:58 +02:00
fi
2021-06-21 18:43:23 +02:00
mkdir -p /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /
2021-06-21 18:24:58 +02:00
if [ [ ! $xzuid ] ] ; then
########################################################################
echo "## GESTION IDENTITES: G1 + NEXTCLOUD + QRCODE"
########################################################################
## MAKE UNIQ xzuid
xzuid = $( $MY_PATH /diceware.sh 1 | xargs) ${ RANDOM : 0 : 5 }
while [ [ " $( cat /home/${ YOU } /.zen/SMS/PHONE/*/xzuid) " = = " ${ xzuid } " ] ]
do
xzuid = $( $MY_PATH /diceware.sh 1 | xargs) ${ RANDOM : 0 : 5 }
done
2021-06-21 18:43:23 +02:00
echo " $xzuid " > /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /xzuid
2021-06-21 18:24:58 +02:00
echo " => $xzuid + NOUVEAU + "
########################################################################
echo " ## $xzuid / $phone => NEW DUNIKEY & QRCODE "
########################################################################
########################################################################
echo "## MAKE /tmp/secret.dunikey"
########################################################################
$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-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
########################################################################
echo "GETTING AVATAR"
########################################################################
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
if [ [ -f /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /avatar.jpg ] ] ; then
########################################################################
echo "CREATING GCHANGE+ PROFILE"
########################################################################
$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+
########################################################################
echo "CREATING CESIUM+ PROFILE"
########################################################################
$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+
fi
2021-06-21 18:24:58 +02:00
if [ [ -f /var/www/nextcloud/occ ] ] ; then
########################################################################
2021-06-21 19:26:04 +02:00
echo " ## REGISTER Nextcloud : ${ xzuid } / ${ phone } "
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-23 01:58:18 +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=\" ${ groupe } \" --display-name=\" ${ xzuid } \" ${ xzuid } "
2021-06-21 18:24:58 +02:00
fi
########################################################################
echo "## MAKING QRCODE"
########################################################################
2021-06-21 18:43:23 +02:00
qrencode -s 6 -o " /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } /qrcode.png " " $g1pub "
########################################################################
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-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-06-23 01:58:18 +02:00
echo " ## GESTION MESSAGE PHONE VERS GUILDE : ${ groupe } "
2021-06-21 18:24:58 +02:00
########################################################################
2021-06-23 01:58:18 +02:00
mkdir -p /home/${ YOU } /.zen/SMS/GUILDES/${ groupe } /INPUT/
## Ajout à la liste "avis" de PHONE à la GUILDE
echo " ${ avis } " >> /home/${ YOU } /.zen/SMS/GUILDES/${ groupe } /INPUT/${ phone }
## Ajout à la liste "guildes" de PHONE
echo " ${ groupe } " >> /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /guildes
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
########################################################################
ts = $( date -u +%s%N | cut -b1-13)
echo " #!/bin/bash
2021-06-23 01:58:18 +02:00
sudo gammu sendsms TEXT \" $phone \" -text \" Message pour ${ groupe } bien reçu.\" " > /home/ ${ YOU } /.zen/SMS/PHONE/ ${ phonehash } / ${ ts } .tosend.sh
chmod 775 /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /${ ts } .tosend.sh
2021-06-22 04:52:10 +02:00
2021-06-22 05:37:25 +02:00
########################################################################
## PRINT ID + MESSAGE
# 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-06-23 00:19:21 +02:00
convert -background White label:" $xzuid ${ phone } " -append /tmp/${ ts } _message.png
brother_ql_create --model QL-700 /tmp/${ ts } _message.png --label-size 62 > /tmp/${ ts } _message.bin
brother_ql_print /tmp/${ ts } _qrcode.bin /dev/usb/lp0
brother_ql_create --model QL-700 /home/${ YOU } /.zen/SMS/PHONE/${ phonehash } /qrcode.png --label-size 62 > /tmp/${ ts } _qrcode.bin
2021-06-22 05:49:43 +02:00
brother_ql_print /tmp/${ ts } _qrcode.bin /dev/usb/lp0
## TODO RESIZE IMAGE
2021-06-23 00:19:21 +02:00
sms = $( echo " ${ groupe } ${ avis } " | cut -b160- | fold -w 40 )
convert -background White label:" $sms " -append /tmp/${ ts } _message.png
2021-06-22 05:49:43 +02:00
brother_ql_create --model QL-700 /tmp/${ ts } _message.png --label-size 62 > /tmp/${ ts } _message.bin
brother_ql_print /tmp/${ ts } _message.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