G1BILLET/MAKE_G1BILLET.sh

246 lines
10 KiB
Bash
Executable File

#!/bin/bash
################################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
################################################################################
# INSTALLER convert et qrencode: sudo apt install imagemagick qrencode
################################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
ME="${0##*/}"
############################################################################################################################################################
# ${MY_PATH}/G1BILLET_MAKE.sh "nu me ro test" "se cr et" 100 7sn9dKeCNEsHmqm1gMWNREke4YAWtNw8KG1YBSN8CmSh 97968583
############################################################################
## SEND LOG TO ~/.zen/tmp/_12345.log
exec 2>&1 >> ~/.zen/G1BILLET/tmp/G1BILLETS.log
## LOAD PERSONAL OR DEFAULT STYLES
[[ -d ${MY_PATH}/_images/_/ ]] \
&& IMAGES="_images" \
|| IMAGES="images"
SECRET1="$1"
echo SECRET1=${SECRET1}
SECRET2="$2"
echo SECRET2=${SECRET2}
MONTANT="$3"
echo MONTANT=${MONTANT}
NOTERIB="$4"
echo NOTERIB=${NOTERIB}
UNIQID="$5"
echo UNIQID=${UNIQID}
STYLE="$6"
echo STYLE=${STYLE}
ASTRONS="$7"
echo ASTRONS=${ASTRONS}
EMAIL="$8"
echo EMAIL=${EMAIL}
if [[ "${SECRET1}" == "" || "$SECRET2" == "" || "$MONTANT" == "" || "$NOTERIB" == "" || "$UNIQID" == "" ]]
then
echo "ERROR MISSING PARAM"
exit 1
fi
TAB=(${SECRET1} $SECRET2)
FULLDICE=${#TAB[@]}
mkdir -p ${MY_PATH}/tmp/g1billet/$UNIQID
BILLETNAME=$(echo ${SECRET1} | sed 's/ /_/g')
# Prepare June logo color
case "$MONTANT" in
1)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill grey -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
2)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill green -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
5)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill orange -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
10)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill blue -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
20)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill purple -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
50)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill red -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
100)
convert "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" -fuzz 20% -fill black -opaque '#e5912b' "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
*)
cp "${MY_PATH}/${IMAGES}/${STYLE}/fond.jpg" "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
;;
esac
## UPPER RIGHT SIGN (g1.png)
cp "${MY_PATH}/${IMAGES}/${STYLE}/g1.png" "${MY_PATH}/tmp/g1billet/${UNIQID}/g1.png"
## ♥Box :: G1PASS or G1ASTRO
BOTTOM="$(date) :: ♥Box :: _G1BILLET_ :: $(hostname) ::"
XZUID="__________@__________"
## PGP @PASS QRCODE
## NOT G1BILLET v1 : Create EXTRA PGP QR
if [[ "${STYLE:0:1}" != "_" ]]; then
USALT=$(echo "${SECRET1}" | jq -Rr @uri)
UPEPPER=$(echo "$SECRET2" | jq -Rr @uri)
## SECURED RANDOM salt : pepper GPG SEQUENCE
s=$(${MY_PATH}/diceware.sh 1 | xargs)
p=$(${MY_PATH}/diceware.sh 1 | xargs)
echo "(≖‿‿≖) PGP /?${s}=${USALT}&${p}=${UPEPPER} (PASS=$UNIQID)"
echo "/?${s}=${USALT}&${p}=${UPEPPER}" > ~/.zen/tmp/topgp
cat ~/.zen/tmp/topgp | gpg --symmetric --armor --batch --passphrase "$UNIQID" -o ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc
rm ~/.zen/tmp/topgp ## CLEANING CACHE
DISCO="$(cat ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc | tr '-' '~' | tr '\n' '-' | tr '+' '_' | jq -Rr @uri )"
echo "$DISCO"
## Put astrologo_nb in QRCode
cp ${MY_PATH}/${IMAGES}/astrologo_nb.png ${MY_PATH}/tmp/fond.png
## MAKE amzqr WITH astro:// LINK
amzqr -d ${MY_PATH}/tmp \
-l H \
-p ${MY_PATH}/tmp/fond.png \
"$DISCO"
## ADD PLAYER EMAIL
convert -gravity southeast -pointsize 28 -fill black -draw "text 5,3 \"${EMAIL}\"" ${MY_PATH}/tmp/fond_qrcode.png ${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.G1PASS.png
convert ${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.G1PASS.png -resize 300 ${MY_PATH}/tmp/g1billet/${UNIQID}/300.png
rm ${MY_PATH}/tmp/gpg.${BILLETNAME}.asc
fi
if [[ ${ASTRONS} != "" ]] ; then
amzqr "https://ipfs.copylaradio.com/ipns/${ASTRONS}" \
-l H -p "$MY_PATH/${IMAGES}/moa_net.png" \
-c -n QRTWavatar.png \
-d ${MY_PATH}/tmp/g1billet/${UNIQID}/
convert ${MY_PATH}/tmp/g1billet/${UNIQID}/QRTWavatar.png -resize 260 ${MY_PATH}/tmp/g1billet/${UNIQID}/TW.png
fi
[[ "${EMAIL}" != "" ]] && XZUID="${EMAIL}"
## ♥Box :: G1BILLET+ :: G1PASS :: G1(TW)
# GIBILLET dice > 3 => G1BILLET+
[[ "${STYLE:0:1}" == "_" && ${FULLDICE} -gt 6 && ${MONTANT} == "___" ]] \
&& mv ${MY_PATH}/tmp/g1billet/${UNIQID}/TW.png ${MY_PATH}/tmp/g1billet/${UNIQID}/LEFT.png \
&& BOTTOM="$(date) :: ♥Box :: G1BILLET+ :: $(hostname) ::" && XZUID="G1BILLET +"
[[ "${STYLE:0:1}" != "_" ]] \
&& mv ${MY_PATH}/tmp/g1billet/${UNIQID}/300.png ${MY_PATH}/tmp/g1billet/${UNIQID}/LEFT.png \
&& BOTTOM="$(date) :: ♥Box :: G1PASS :: $(hostname) ::" && XZUID="G1PASS"
[[ "${STYLE:0:1}" == "x" ]] \
&& mv ${MY_PATH}/tmp/g1billet/${UNIQID}/TW.png ${MY_PATH}/tmp/g1billet/${UNIQID}/CENTER.png \
&& BOTTOM="$(date) :: ♥Box :: G1ASTRO :: $(hostname) ::" && XZUID="G1ASTRO"
########################## G1Voeu _ G1BILLET linking TEST ## DEV
#~ ## Astroport.ONE THERE :: STYLE=EMAIL :: G1BILLET+
#~ if [[ -s ~/.zen/Astroport.ONE/tools/VOEUX.print.sh && "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
#~ # CREATE @PASS (Connect G1BILLET+ TO current PLAYER)
#~ MOATS=$(date -u +"%Y%m%d%H%M%S%4N")
#~ SRCMAIL=$(cat ~/.zen/game/players/.current/.player 2>/dev/null)
#~ G1PUB=$(cat ~/.zen/game/players/.current/.g1pub 2>/dev/null)
#~ ## GET current PLAYER G1PUB
#~ [[ -d ~/.zen/game/players/${STYLE} ]] \
#~ && SRCMAIL=${STYLE} && G1PUB=$(cat ~/.zen/game/players/${STYLE}/.g1pub 2>/dev/null)
#~ BILLETFULLNAME=$(echo "${SRCMAIL} ${SECRET1} ${SECRET2}" | sed 's/ /_/g') # EMAIL_dice_words
#~ #### VOEUX.print.sh G1BILLET+
#~ echo ~/.zen/Astroport.ONE/tools/VOEUX.print.sh "${BILLETFULLNAME}" "G1BILLET+" "${MOATS}" "${G1PUB}"
#~ NEWIMAGIC=$(~/.zen/Astroport.ONE/tools/VOEUX.print.sh "${BILLETFULLNAME}" "G1BILLET+" "${MOATS}" "${G1PUB}" | tail -n 1)
#~ convert ~/.zen/tmp/${MOATS}/START.png -resize 300 ${MY_PATH}/tmp/g1billet/${UNIQID}/300.png
#~ ## MODIFY fond with "moa" ( TODO : Extract from TAG = moa + G1Voeu )
#~ [[ -s ~/.zen/game/players/${SRCMAIL}/moa.jpg ]] \
#~ && convert ~/.zen/game/players/${SRCMAIL}/moa.jpg -resize 964x459 -background grey -gravity center -extent 964x459 ${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg
#~ fi
# ADD G1ASTRO LINK
# OVERLAY LOGO over FOND (logo.png)
composite -compose Over -dissolve 60% \
"${MY_PATH}/${IMAGES}/${STYLE}/logo.png" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg" \
"${MY_PATH}/tmp/${BILLETNAME}.jpg"
## NOT TO BE IN FINAL PDF (getting all jpg)
rm "${MY_PATH}/tmp/g1billet/${UNIQID}/fond.jpg"
### TEXT OVERLAY
#~ -pointsize 22 -draw 'text 50,100 "'"Secret 1: ${SECRET1}"'"' \
#~ -pointsize 22 -fill black -draw 'text 50,130 "'"Secret 2: $SECRET2"'"' \
if [[ "${STYLE:0:1}" != "_" && "${STYLE:0:1}" != "x" && ${MONTANT} != "___" ]]; then
convert -font 'Liberation-Sans' \
-pointsize 40 -fill black -draw 'text 70,50 "'"$XZUID"'"' \
-pointsize 150 -fill black -draw 'text 120,380 "'"$MONTANT"'"' \
-pointsize 20 -fill black -draw 'text 340,22 "'"${NOTERIB}"'"' \
-pointsize 25 -fill black -draw 'text 50,440 "'"$BOTTOM"'"' \
"${MY_PATH}/tmp/${BILLETNAME}.jpg" "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
else
convert -font 'Liberation-Sans' \
-pointsize 35 -fill black -draw 'text 50,56 "'"$XZUID"'"' \
-pointsize 22 -fill black -draw 'text 340,26 "'"${NOTERIB}"'"' \
-pointsize 22 -fill black -draw 'text 50,85 "'"Secret 1: ${SECRET1}"'"' \
-pointsize 22 -fill black -draw 'text 50,105 "'"Secret 2: $SECRET2"'"' \
-pointsize 25 -fill white -draw 'text 50,440 "'"$BOTTOM"'"' \
"${MY_PATH}/tmp/${BILLETNAME}.jpg" "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
fi
rm -f ${MY_PATH}/tmp/${BILLETNAME}.jpg
## ADD SouthWEST
[[ -s "${MY_PATH}/tmp/g1billet/${UNIQID}/LEFT.png" ]] && \
composite -compose Over -gravity SouthWest -geometry +50+50 \
"${MY_PATH}/tmp/g1billet/${UNIQID}/LEFT.png" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
## ADD CENTER QRCODE
[[ -s "${MY_PATH}/tmp/g1billet/${UNIQID}/CENTER.png" ]] && \
composite -compose Over -gravity Center -geometry +30+40 \
"${MY_PATH}/tmp/g1billet/${UNIQID}/CENTER.png" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
# G1PUB QR CODE RIGHT
qrencode -s 6 -o "${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" "$NOTERIB"
# AJOUT DU G1PUB QRCODE A DROITE DU BILLET
composite -compose Over -gravity SouthEast -geometry +35+50 \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.QR.png" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
# Add g1.png SIGLE
composite -compose Over -dissolve 90% \
"${MY_PATH}/tmp/g1billet/${UNIQID}/g1.png" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg" \
"${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg"
## BILLET READY in ${MY_PATH}/tmp/g1billet/${UNIQID}/${BILLETNAME}.BILLET.jpg
exit 0