2020-03-20 02:32:33 +01:00
|
|
|
#!/bin/bash
|
|
|
|
########################################################################
|
|
|
|
# Author: Fred (support@qo-op.com)
|
|
|
|
# Version: 0.3
|
2020-03-20 04:06:36 +01:00
|
|
|
# License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/)
|
2020-03-20 02:32:33 +01:00
|
|
|
########################################################################
|
|
|
|
# ASTROPORT COMMAND RECEIVER & DISPACHER
|
|
|
|
# Rise Up by unid@chan && Run corresponding command.sh
|
|
|
|
########################################################################
|
|
|
|
# NOT WORKING YET
|
|
|
|
# TODO! CONVERT G1SMS+ FROM PHONE TO MULTICHANNEL
|
|
|
|
########################################################################
|
|
|
|
MY_PATH="`dirname \"$0\"`" # relative
|
|
|
|
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
2020-05-10 23:54:57 +02:00
|
|
|
source ./g1sms/functions.sh
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
# REWRITING .... NEEDED
|
2020-03-20 02:32:33 +01:00
|
|
|
|
|
|
|
SOURCE="$1" # id@channel
|
|
|
|
COMMAND="$2" # command received (message, comment, ...)
|
|
|
|
|
|
|
|
[[ $SOURCE == "" ]] && SOURCE="unid@channel"
|
|
|
|
[[ $COMMAND == "" ]] && COMMAND="cmd arg1 arg2 ..."
|
|
|
|
|
|
|
|
SOURCEH=$(echo -n $SOURCE | sha512sum | cut -d ' ' -f 1) # Hash SOURCE
|
|
|
|
|
|
|
|
SRC=$(echo "$SOURCE" | cut -d '@' -f 1)
|
|
|
|
CHAN=$(echo "$SOURCE" | cut -d '@' -f 2)
|
|
|
|
CMD=$(echo "$COMMAND" | awk '{print toupper($1)}') # CMD is first word
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
# ANTI SPAM
|
|
|
|
##################################################################
|
|
|
|
NOspam
|
|
|
|
|
|
|
|
##################################################################
|
|
|
|
# Handle commands CMD
|
|
|
|
##################################################################
|
|
|
|
case "$CMD" in
|
|
|
|
# RAZ MEMERUID?
|
|
|
|
RAZ)
|
|
|
|
MEMBERUID=$(echo "$COMMAND" | awk '{print $2}' | grep -E "([A-Za-z0-9\-\_]+$)")
|
|
|
|
./shell/chan_RAZ.sh "$SOURCE" "$MEMBERUID"&
|
|
|
|
;;
|
|
|
|
|
|
|
|
# HELP
|
|
|
|
HELP)
|
|
|
|
./shell/chan_HELP.sh "$SOURCE" &
|
|
|
|
;;
|
|
|
|
|
|
|
|
# NEW MEMERUID?
|
|
|
|
NEW)
|
|
|
|
MEMBERUID=$(echo "$COMMAND" | awk '{print $2}' | grep -E "([A-Za-z0-9\-\_]+$)")
|
|
|
|
./shell/chan_NEW.sh "$SOURCE" "$MEMBERUID" &
|
|
|
|
;;
|
|
|
|
|
|
|
|
# PAY DESTINATION! MONEY!
|
|
|
|
PAY)
|
|
|
|
DESTINATION=$(echo "$COMMAND" | awk '{print tolower($2)}' | grep -E "[a-z0-9._%+-]+@[a-z0-9._%+-]")
|
|
|
|
MONEY=$(echo "$COMMAND" | awk '{print $3}' | grep -E "^\-?[0-9]+$")
|
|
|
|
if [[ "$DEST" != "" && "$MONEY" != "" ]]; then
|
|
|
|
./shell/chan_PAY.sh "$SOURCE" "$DEST" "$MONEY" &
|
|
|
|
else
|
|
|
|
./shell/chan_ERROR.sh "$SOURCE" "PAY DESTINATION! MONEY!" &
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
# VIR AMOUNT! VIRDEST! PERIOD? TIME?
|
|
|
|
VIR)
|
|
|
|
AMOUNT=$(echo "$COMMAND" | awk '{print $2}' | grep -E "^\-?[0-9]+$")
|
|
|
|
VIRDEST=$(echo "$COMMAND" | awk '{print $3}' | grep -E "([A-Za-z0-9\-\_]+$)")
|
|
|
|
PERIOD=$(echo "$COMMAND" | awk '{print toupper($4)}' | grep -E "([A-Za-z0-9\-\_]+$)")
|
|
|
|
TIME=$(echo "$COMMAND" | awk '{print $5}' | grep -E "^\-?[0-9]+$")
|
|
|
|
if [[ "$VIRDEST" != "" && "$AMOUNT" != "" && "$PERIOD" != "" && "$TIME" != "" ]]; then
|
|
|
|
./shell/chan_VIR.sh "$SOURCE" "$VIRDEST" "$AMOUNT" "$PERIOD" "$TIME" &
|
|
|
|
else
|
|
|
|
./shell/chan_ERROR.sh "$SOURCE" "VIR AMOUNT! VIRDEST! PERIOD? TIME?" &
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
# BAL
|
|
|
|
BAL)
|
|
|
|
./shell/chan_COUNT.sh "$SOURCE" &
|
|
|
|
;;
|
|
|
|
|
|
|
|
# EMAIL MAIL!
|
|
|
|
EMAIL)
|
|
|
|
MAIL=$(echo "$COMMAND" | awk '{print tolower($2)}' | grep -E "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}")
|
|
|
|
if [[ "$MAIL" != "" ]]; then
|
|
|
|
./shell/chan_EMAIL.sh "$SOURCE" "$MAIL" &
|
|
|
|
else
|
|
|
|
./shell/chan_ERROR.sh "$SOURCE" "EMAIL MAIL!" &
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
# BILL VAL!
|
|
|
|
BILL)
|
|
|
|
VAL=$(echo "$COMMAND" | awk '{print $2}' | grep -E "^\-?[0-9]+$")
|
|
|
|
if [[ "$VAL" != "" ]]; then
|
|
|
|
./shell/chan_BILLET.sh "$SOURCE" "$VAL" &
|
|
|
|
else
|
|
|
|
./shell/chan_ERROR.sh "$SOURCE" "BILL VAL!" &
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
# CHK W1! W2! W3? W4? W5? W6? W7?
|
|
|
|
CHK)
|
|
|
|
W1=$(echo "$COMMAND" | awk '{print tolower($2)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W2=$(echo "$COMMAND" | awk '{print tolower($3)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W3=$(echo "$COMMAND" | awk '{print tolower($4)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W4=$(echo "$COMMAND" | awk '{print tolower($5)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W5=$(echo "$COMMAND" | awk '{print tolower($6)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W6=$(echo "$COMMAND" | awk '{print tolower($7)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
W7=$(echo "$COMMAND" | awk '{print tolower($8)}' | grep -E "^[a-z0-9]+$")
|
|
|
|
if [[ "$W1" != "" && "$W2" != "" ]]; then
|
|
|
|
./shell/chan_BILLETCHK.sh "$SOURCE" "$W1" "$W2" "$W3" "$W4" "$W5" "$W6" "$W7" &
|
|
|
|
else
|
|
|
|
./shell/chan_ERROR.sh "$SOURCE" "CHK W1! W2! W3? W4? W5? W6? W7?" &
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
CMD)
|
|
|
|
echo "==================================================="
|
|
|
|
echo "HELLO $SOURCE your ASTROPORT suit is $SOURCEH"
|
|
|
|
echo "RUN ./command_received.sh \"$SOURCE\" \"$COMMAND\""
|
|
|
|
;;
|
|
|
|
|
|
|
|
ACK|DELIVERED|PENDING|FAILED)
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
echo "$SOURCE :: UNKNOWN $COMMAND"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
exit 0
|