diff --git a/G1BILLETS.sh b/G1BILLETS.sh index 5f0b0dd..8785b72 100755 --- a/G1BILLETS.sh +++ b/G1BILLETS.sh @@ -10,7 +10,7 @@ ME="${0##*/}" ################################################################################ # Create different king of G1BILLET(s) with $MONTANT DU or TW IPNS -# ${MY_PATH}/G1BILLETS.sh 5 986397643 ticket # MONTANT # STYLE # +# ${MY_PATH}/G1BILLETS.sh 5 986397643 ticket # MONTANT # STYLE # SECURITE ################################################################################ MONTANT="$1" [[ $MONTANT == "0" ]] && MONTANT="" @@ -18,132 +18,132 @@ MONTANT="$1" ### COMMAND MODE ### if [[ $MONTANT != "daemon" ]]; then -[[ $MONTANT == "" ]] && MONTANT="___" + [[ $MONTANT == "" ]] && MONTANT="___" -STYLE="$2" + STYLE="$2" -DICE=$(cat $MY_PATH/DICE 2>/dev/null) ## HOW MANY WORDS SECRETS -[[ $DICE != ?(-)+([0-9]) ]] && DICE=4 -# echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)" + DICE="$3" + [[ $DICE != ?(-)+([0-9]) ]] && DICE=$(cat $MY_PATH/DICE 2>/dev/null) ## HOW MANY WORDS SECRETS + [[ $DICE != ?(-)+([0-9]) ]] && DICE=4 + # echo "$DICE WORDS SECRETS (Define length in $MY_PATH/DICE)" - ## CHECK IF STYLE IS EMAIL => astro IPFS G1BILLET - if [[ "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then - echo "ASTROPORT PLAYER OFFERED G1BILLET" - # echo "PLAYER : $STYLE" - EMAIL=${STYLE} - STYLE="xbian" - DICE=3 - fi + ## CHECK IF STYLE IS EMAIL => astro IPFS G1BILLET + if [[ "${STYLE}" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then + echo "ASTROPORT PLAYER OFFERED G1BILLET" + # echo "PLAYER : $STYLE" + EMAIL=${STYLE} + STYLE="xbian" + fi -## STYLE SELECTED: PDF DE 6 BILLETS OR SINGLE -NBbillets=6 -[[ "${STYLE}" != "" ]] && NBbillets=1 + ## STYLE SELECTED: PDF DE 6 BILLETS OR SINGLE + NBbillets=6 + [[ "${STYLE}" != "" ]] && NBbillets=1 -echo "CREATION $NBbillets x G1BILLET - $STYLE - " + echo "CREATION $NBbillets x G1BILLET - $STYLE - " -# CHECK IF $STYLE IMAGES EXIST -[[ ! -f ${MY_PATH}/images/g1${STYLE}.png ]] && echo "AJOUTER : ./images/g1${STYLE}.jpg" && exit 1 -[[ ! -f ${MY_PATH}/images/fond${STYLE}.jpg ]] && echo "STYLE INCONNU ? ./images/fond${STYLE}.jpg" && exit 1 -[[ ! -f ${MY_PATH}/images/logo${STYLE}.png ]] && echo "AJOUTER : ./images/logo${STYLE}.jpg" && exit 1 + # CHECK IF $STYLE IMAGES EXIST + [[ ! -f ${MY_PATH}/images/g1${STYLE}.png ]] && echo "AJOUTER : ./images/g1${STYLE}.jpg" && exit 1 + [[ ! -f ${MY_PATH}/images/fond${STYLE}.jpg ]] && echo "STYLE INCONNU ? ./images/fond${STYLE}.jpg" && exit 1 + [[ ! -f ${MY_PATH}/images/logo${STYLE}.png ]] && echo "AJOUTER : ./images/logo${STYLE}.jpg" && exit 1 -UNIQID=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7) + UNIQID=$(echo "${RANDOM}${RANDOM}${RANDOM}${RANDOM}" | tail -c-7) -# CREATION DE $NBbillets BILLETS DE $MONTANT DU -boucle=0; -while [ $boucle -lt $NBbillets ] -do - boucle=$((boucle+1)) - mkdir -p "${MY_PATH}/tmp/g1billet/${UNIQID}" + # CREATION DE $NBbillets BILLETS DE $MONTANT DU + boucle=0; + while [ $boucle -lt $NBbillets ] + do + boucle=$((boucle+1)) + mkdir -p "${MY_PATH}/tmp/g1billet/${UNIQID}" - ## ADAPT SECURITY LEVEL - SALT=$(${MY_PATH}/diceware.sh $DICE | xargs) - #~ [[ $EMAIL != "" ]] && SALT="$EMAIL $SALT" - SECRET=$(${MY_PATH}/diceware.sh $DICE | xargs) - #~ [[ $EMAIL != "" ]] && SECRET="$EMAIL $SECRET" + ## ADAPT SECURITY LEVEL + SALT=$(${MY_PATH}/diceware.sh $DICE | xargs) + #~ [[ $EMAIL != "" ]] && SALT="$EMAIL $SALT" + SECRET=$(${MY_PATH}/diceware.sh $DICE | xargs) + #~ [[ $EMAIL != "" ]] && SECRET="$EMAIL $SECRET" - # CREATION CLEF BILLET - BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$SALT" "$SECRET") - rm -f /tmp/secret.dunikey - echo "$boucle : $BILLETPUBKEY " + # CREATION CLEF BILLET + BILLETPUBKEY=$(python3 ${MY_PATH}/key_create_dunikey.py "$SALT" "$SECRET") + rm -f /tmp/secret.dunikey + echo "$boucle : $BILLETPUBKEY " - ${MY_PATH}/keygen -t ipfs -o ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key "$SALT" "$SECRET" - ASTRONAUTENS=$(ipfs key import ${UNIQID} -f pem-pkcs8-cleartext ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key) - rm -f ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key - ipfs key rm ${UNIQID} && echo "/ipns/$ASTRONAUTENS" + ${MY_PATH}/keygen -t ipfs -o ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key "$SALT" "$SECRET" + ASTRONAUTENS=$(ipfs key import ${UNIQID} -f pem-pkcs8-cleartext ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key) + rm -f ${MY_PATH}/tmp/g1billet.${UNIQID}.ipns.key + ipfs key rm ${UNIQID} && echo "/ipns/$ASTRONAUTENS" - ### GRAPHISM ##### - # CREATION FICHIER IMAGE BILLET dans ${MY_PATH}/tmp/g1billet/${UNIQID} - ${MY_PATH}/MAKE_G1BILLET.sh "${SALT}" "${SECRET}" "${MONTANT}" "${BILLETPUBKEY}" "${UNIQID}" "${STYLE}" "${ASTRONAUTENS}" "${EMAIL}" + ### GRAPHISM ##### + # CREATION FICHIER IMAGE BILLET dans ${MY_PATH}/tmp/g1billet/${UNIQID} + ${MY_PATH}/MAKE_G1BILLET.sh "${SALT}" "${SECRET}" "${MONTANT}" "${BILLETPUBKEY}" "${UNIQID}" "${STYLE}" "${ASTRONAUTENS}" "${EMAIL}" -done + done -if [[ ${NBbillets} == 1 ]] -then + if [[ ${NBbillets} == 1 ]] + then - # ONE FILE ONLY - cp ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg + # ONE FILE ONLY + cp ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg - # CLEANING TEMP FILES - echo rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID} - # ALLOWS ANY USER TO DELETE - chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg - export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.jpg" + # CLEANING TEMP FILES + echo rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID} + # ALLOWS ANY USER TO DELETE + chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.jpg + export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.jpg" -else + else - # MONTAGE DES IMAGES DES BILLETS VERS ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf - montage ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg -tile 2x3 -geometry 964x459 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf - # NB!! if "not autorized" then edit /etc/ImageMagick-6/policy.xml and comment - [[ ! -s ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf ]] && echo "Please Correct PDF policy /etc/ImageMagick-6/policy.xml " && exit 1 - # - # CLEANING TEMP FILES - rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID} - # ALLOWS ANY USER TO DELETE - chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf - export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.pdf" - -fi - - -########################################################################### - ## ASTRO : FIND TW ADDRESS + EMAIL = CREATE PLAYER on 1234 API - - if [[ ${EMAIL} ]]; then - - UN=$(echo ${SALT} | jq -Rr @uri) ## URL ENCODED - DE=$(echo ${SECRET} | jq -Rr @uri) ## URL ENCODED - echo 'curl -s https://astroport.copylaradio.com/?salt='$UN'&pepper='$DE'&g1pub=on&email='$EMAIL - # && curl -s 'https://astroport.copylaradio.com/?salt='$UN'&pepper='$DE'&g1pub=on&email='$EMAIL + # MONTAGE DES IMAGES DES BILLETS VERS ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf + montage ${MY_PATH}/tmp/g1billet/${UNIQID}/*.jpg -tile 2x3 -geometry 964x459 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf + # NB!! if "not autorized" then edit /etc/ImageMagick-6/policy.xml and comment + [[ ! -s ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf ]] && echo "Please Correct PDF policy /etc/ImageMagick-6/policy.xml " && exit 1 + # + # CLEANING TEMP FILES + rm -Rf ${MY_PATH}/tmp/g1billet/${UNIQID} + # ALLOWS ANY USER TO DELETE + chmod 777 ${MY_PATH}/tmp/g1billet/${UNIQID}.pdf + export ZFILE="${MY_PATH}/tmp/g1billet/${UNIQID}.pdf" fi -########################################################################### -[[ $XDG_SESSION_TYPE == 'x11' ]] && xdg-open "$ZFILE" -echo "$ZFILE" # IMPORTANT ## LAST LINE : INFORM DAEMON + ########################################################################### + ## ASTRO : FIND TW ADDRESS + EMAIL = CREATE PLAYER on 1234 API + + if [[ ${EMAIL} ]]; then + + UN=$(echo ${SALT} | jq -Rr @uri) ## URL ENCODED + DE=$(echo ${SECRET} | jq -Rr @uri) ## URL ENCODED + echo 'curl -s https://astroport.copylaradio.com/?salt='$UN'&pepper='$DE'&g1pub=on&email='$EMAIL + # && curl -s 'https://astroport.copylaradio.com/?salt='$UN'&pepper='$DE'&g1pub=on&email='$EMAIL + + fi + ########################################################################### + + [[ $XDG_SESSION_TYPE == 'x11' ]] && xdg-open "$ZFILE" + + echo "$ZFILE" # IMPORTANT ## LAST LINE : INFORM DAEMON else -################################################################################ -################################################################################ -## MAKE IT A NETWORK MICRO SERVICE -- PORTS : INPUT=33101 OUTPUT=33102 -############## CLEAN START DAEMON MODE ### -pidportinuse=$(ps axf --sort=+utime | grep -w "nc -l -p 33101" | grep -v -E 'color=auto|grep' | awk '{gsub(/^ +| +$/,"")} {print $0}' | tail -n 1 | cut -d " " -f 1) -[[ $pidportinuse ]] && echo "KILLING OLD DEAMON 33101 $pidportinuse" && kill -9 $pidportinuse && killall G1BILLETS.sh && exit 1 + ################################################################################ + ################################################################################ + ## MAKE IT A NETWORK MICRO SERVICE -- PORTS : INPUT=33101 OUTPUT=33102 + ############## CLEAN START DAEMON MODE ### + pidportinuse=$(ps axf --sort=+utime | grep -w "nc -l -p 33101" | grep -v -E 'color=auto|grep' | awk '{gsub(/^ +| +$/,"")} {print $0}' | tail -n 1 | cut -d " " -f 1) + [[ $pidportinuse ]] && echo "KILLING OLD DEAMON 33101 $pidportinuse" && kill -9 $pidportinuse && killall G1BILLETS.sh && exit 1 -pidportinuse=$(ps axf --sort=+utime | grep -w "nc -l -p 33102" | grep -v -E 'color=auto|grep' | awk '{gsub(/^ +| +$/,"")} {print $0}' | tail -n 1 | cut -d " " -f 1) -[[ $pidportinuse ]] && kill -9 $pidportinuse && echo "KILLING NOT COLLECTED THREAD $pidportinuse" -##################################################################### -myIP=$(hostname -I | awk '{print $1}' | head -n 1) -isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") + pidportinuse=$(ps axf --sort=+utime | grep -w "nc -l -p 33102" | grep -v -E 'color=auto|grep' | awk '{gsub(/^ +| +$/,"")} {print $0}' | tail -n 1 | cut -d " " -f 1) + [[ $pidportinuse ]] && kill -9 $pidportinuse && echo "KILLING NOT COLLECTED THREAD $pidportinuse" + ##################################################################### + myIP=$(hostname -I | awk '{print $1}' | head -n 1) + isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") -if [[ $isLAN ]]; then - HNAME="http://g1billet.localhost" -else - HNAME="http://$(hostname -I | awk '{print $1}' | head -n 1)" -fi -RNAME="$HNAME:33102" + if [[ $isLAN ]]; then + HNAME="http://g1billet.localhost" + else + HNAME="http://$(hostname -I | awk '{print $1}' | head -n 1)" + fi + RNAME="$HNAME:33102" -HTTPWELLCOME='HTTP/1.1 200 OK + HTTPWELLCOME='HTTP/1.1 200 OK Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET @@ -152,6 +152,7 @@ Content-Type: text/html; charset=UTF-8 + [G1BILLET] HTTP MICRO SERVICE - 33101 - 33102 -