G1sms/shell/sms_BILLET_MAKE.sh

130 lines
4.7 KiB
Bash
Executable File

#!/bin/bash
# Make Billet fabrique l'image de 6 billets de monnaie libre
# Date de validité de 6 mois à compter du premier jour du mois courant
############################################################################
# INSTALLER convert et qrencode: sudo apt install imagemagick qrencode
# IMPRIMANTE (http://smspi:631/) : sudo apt install printer-driver-all cups
# https://junise.wordpress.com/2015/04/12/install-online-cups-printer-in-raspberry-pi/
############################################################################
# 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
############################################################################
source "./shell/init.sh"
source "./shell/functions.sh"
NUMERO="$1"
SECRET="$2"
MONTANT="$3"
UNIT="$4"
JUNE="$5"
NOTERIB="$6"
MEMBER="$7"
TRANSAC="$8"
PHONE="$9"
log "X sudo ./shell/sms_BILLET_MAKE.sh \"$1\" \"$2\" \"$3\" \"$4\" \"$5\" \"$6\" \"$7\" \"$8\""
if [[ "$NOTERIB" == "" || "$MEMBER" == "" ]]
then
log "ERROR MAKE BILLET"
exit
fi
# VALIDITY? Calculate 6 month period dates
cm=$(date +%m)
cy=$(date +%Y)
valid=$(bc <<< "$cm + 6")
if [ $valid -gt 12 ]
then
valid=$(bc <<< "$valid - 12")
year=$(bc <<< "$cy + 1")
else
year=$cy
fi
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"
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"
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"
# Prepare BILLET qrcode verification URL
qrencode -s 3 -o "/tmp/$NUMERO_NOTERIB.png" "$NOTERIB"
# BILL PUBKEY means Someone can Add amount to it !!!
# Add verification QRCode
composite -compose Over -gravity NorthEast -geometry +50+25 "/tmp/$NUMERO_NOTERIB.png" "/tmp/$NUMERO.jpg" "/tmp/$NUMERO.jpg"
# Add June logo
case "$MONTANT" in
10)
convert "./shell/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"
;;
50)
convert "./shell/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"
;;
200)
convert "./shell/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"
;;
1000)
convert "./shell/g1.png" -fuzz 20% -fill black -opaque '#e5912b' "/tmp/g1.png"
;;
*)
cp "./shell/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"
DUPART=$(bc -l <<< "scale=2; $MONTANT / 100")
# ADD 0 to <1 DUPART
testdu=$( echo "${DUPART} < 1" | bc -l )
if [[ "$testdu" -eq "1" ]]; then
DUPART="0${DUPART}"
fi
SIMPLEPHONE=$(echo $MASTERPHONE | sed 's/\+33/0/g')
convert -font 'Liberation-Sans' \
-pointsize 120 -fill black -draw 'text 200,220 "'"$DUPART DU"'"' \
-pointsize 45 -draw 'text 550,270 "'"$MONTANT $UNIT"'"' \
-pointsize 35 -draw 'text 50,60 "'"https://g1sms.fr _ G1Billet _ $JUNE G1"'"' \
-pointsize 30 -draw 'text 60,100 "'"Identifiant: $NUMERO"'"' \
-pointsize 22 -fill black -draw 'text 380,340 "'"Code Secret: $SECRET"'"' \
-pointsize 22 -fill black -draw 'text 260,408 "'"Porte Monnaie Libre!! A utiliser avant le 01/$valid/$year"'"' \
-pointsize 20 -draw 'text 15,442 "'"Utilisation: CHK $NUMERO (+ code secret) par SMS au $SIMPLEPHONE ou https://cesium.app"'"' \
"/tmp/$NUMERO.jpg" "/tmp/BILL.$year.$valid.$NUMERO.$MONTANT.$UNIT.jpg"
# Payable par SMS en envoyant les codes grattant la case comportant le SECRET
# "CHK $NUMERO $SECRET"
if [[ "$TRANSAC" == "TEST" ]]; then
exit
else
# Move billet to MEMBER folder 6 month later
mkdir -p "./billets/MEMBERS/$MEMBER/"
mv "/tmp/BILL.$year.$valid.$NUMERO.$MONTANT.$UNIT.jpg" "./billets/MEMBERS/$MEMBER/"
# Clean TEMP files
rm "/tmp/$NUMERO_NOTERIB.png"
rm "/tmp/$NUMERO.jpg"
fi
log "END sms_BILLET_MAKE.sh"
log "~~~~~~~~~~~~~~~~~~~~~~~~~~~~"