146 lines
4.5 KiB
Bash
Executable File
146 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
source .env # import credentials, tg api, cookie path, bml api
|
|
|
|
login(){
|
|
echo ""
|
|
echo ""
|
|
echo ===========
|
|
echo LOGGING IN
|
|
curl -s -c $COOKIE $BML_URL/login --data-raw username=$BML_USERNAME --data-raw password=${BML_PASSWORD} # attempt to login and generate cookie
|
|
echo ""
|
|
echo ""
|
|
echo ===========
|
|
echo SELECTING PROFILE
|
|
PROFILE=$(curl -s -b $COOKIE $BML_URL/profile | jq -r '.payload | .profile | .[] | .profile' | head -n 1) ; echo $PROFILE # get Personal Profile
|
|
curl -s -b $COOKIE $BML_URL/profile --data-raw profile=$PROFILE # select Personal Profile
|
|
echo ""
|
|
echo ""
|
|
}
|
|
|
|
getnumberofaccounts(){
|
|
NUMBEROFACCOUNTS=$(cat .env | grep BML_ACCOUNTID | cut --complement -d "'" -f 1 | cut -f1 -d "'" | wc -l)
|
|
NUMBEROFACCOUNTS=$(expr $NUMBEROFACCOUNTS - 1)
|
|
echo ""
|
|
echo $NUMBEROFACCOUNTS Accounts loaded
|
|
}
|
|
|
|
getaccountdetails(){
|
|
REQACCOUNTDETAILS=$(curl -s -b $COOKIE $BML_URL/account/$BML_ACCOUNTID | jq -r .payload)
|
|
ACCOUNTTYPE=$(echo $REQACCOUNTDETAILS | jq -r .product)
|
|
ACCOUNTNUMBER=$(echo $REQACCOUNTDETAILS | jq -r .accountNumber)
|
|
CURRENCY=$(echo $REQACCOUNTDETAILS | jq -r .currency)
|
|
}
|
|
|
|
send_tg(){
|
|
TGTEXT=$(echo $ACCOUNTTYPE%0A$ACCOUNTNUMBER%0A%0A$DESCRIPTION%0A$FROMTOAT: $ENTITY%0A$CURRENCY: $AMOUNT | sed "s/ /%20/g") ; echo $TGTEXT # format text for telegram
|
|
echo ""
|
|
echo ""
|
|
echo SENDING TO TG
|
|
|
|
curl -s $TG_BOTAPI$TG_BOT_TOKEN/sendMessage?chat_id=$TG_CHATID'&'text=$TGTEXT #send to telegram
|
|
echo ""
|
|
echo ""
|
|
|
|
}
|
|
|
|
req_history(){
|
|
echo ""
|
|
echo ""
|
|
echo ===========
|
|
echo Requesting History for: $BML_ACCOUNTID
|
|
REQ_HISTORY=$(curl -s -b $COOKIE $BML_URL/account/$BML_ACCOUNTID/history/today) ; echo $REQ_HISTORY
|
|
#LOGIN_STATUS=$(echo $REQ_HISTORY | jq -r .success) ; echo $LOGIN_STATUS
|
|
echo ""
|
|
echo ""
|
|
echo ===========
|
|
|
|
}
|
|
|
|
check_diff(){
|
|
CHECKDIFF1=$(echo $HISTORY | wc -c) ; echo $CHECKDIFF1 # check intial and previous history
|
|
#HISTORY=$(curl -s -b $COOKIE $BML_URL/account/$BML_ACCOUNTID/history/today | jq -r '.payload | .history | .[]') ; echo $HISTORY # request history
|
|
HISTORY=$(echo $REQ_HISTORY | jq -r '.payload | .history | .[]') ; echo $HISTORY
|
|
CHECKDIFF2=$(echo $HISTORY | wc -c) ; echo $CHECKDIFF2 # check new history
|
|
}
|
|
|
|
read_delay(){
|
|
DELAY=$(cat delay) ; echo $NORMAL_DELAY # read delay file and get value
|
|
}
|
|
|
|
|
|
init
|
|
login
|
|
loop(){
|
|
i=0
|
|
# if [ "$LOGIN_STATUS" != "true" ]
|
|
# then
|
|
# echo ""
|
|
# echo ""
|
|
# echo " LOGGED OUT - SLEEPING
|
|
# sleep 200
|
|
# login
|
|
# infinite_loop
|
|
# fi
|
|
|
|
for account in `cat .env | grep BML_ACCOUNTID | cut --complement -d "'" -f 1 | cut -f1 -d "'"`
|
|
do
|
|
accountid[$i]=$account;
|
|
i=$(($i+1));
|
|
BML_ACCOUNTID=$(cat .env | grep BML_ACCOUNTID | cut --complement -d "'" -f 1 | cut -f1 -d "'" | head -n$i | tail -n1)
|
|
echo ""
|
|
echo $BML_ACCOUNTID Selected
|
|
echo ""
|
|
getaccountdetails
|
|
req_history
|
|
check_diff
|
|
read_delay
|
|
|
|
if [ "$CHECKDIFF1" != "$CHECKDIFF2" ] # if previous history do not match with new history
|
|
then
|
|
if [ "$CHECKDIFF2" = "1" ]
|
|
then
|
|
echo "=============" ; echo NEW DAY ; echo "============="
|
|
# curl -s $TG_BOTAPI$TG_BOT_TOKEN/sendMessage?chat_id=$TG_CHATID'&'text=GO%20TO%20SLEEP%0AITS%0000
|
|
else
|
|
echo ""
|
|
echo ""
|
|
echo ==============
|
|
echo History of $ACCOUNTTYPE - $ACCOUNTNUMBER
|
|
echo $HISTORY | jq
|
|
echo ""
|
|
echo ""
|
|
DESCRIPTION=$(echo $HISTORY | jq -r .description | head -n1) ; echo $DESCRIPTION # get last trascation description
|
|
AMOUNT=$(echo $HISTORY | jq -r .amount | head -n1) ; echo $AMOUNT # get last trascation amount
|
|
if [ "$DESCRIPTION" = "Transfer Credit" ] # if last trascation is description is Transfer Credit
|
|
then
|
|
FROMTOAT=From
|
|
ENTITY=$(echo $HISTORY | jq -r .narrative3 | head -n1) ; echo $ENTITY # get last persona or place name
|
|
elif [ "$DESCRIPTION" = "Transfer Debit" ] # if last trascation descripton is Transfer Debit
|
|
then
|
|
FROMTOAT=To
|
|
ENTITY=$(echo $HISTORY | jq -r .narrative3 | head -n1) ; echo $ENTITY # get last person or place name
|
|
elif [ "$DESCRIPTION" = "Cash Deposit-ATM" ] || [ "$DESCRIPTION" = "ATM Withdrawal" ] || [ "$DESCRIPTION" = "Purchase" ] # if last trascation descripton is ATM Withdrawal
|
|
then
|
|
FROMTOAT=At
|
|
ENTITY=$(echo $HISTORY | jq -r .narrative3 | head -n1) ; echo $ENTITY #get last ATM name
|
|
elif [ "$DESCRIPTION" = "Salary" ] # if last trascation descripton is Salary
|
|
then
|
|
FROMTOAT=From
|
|
ENTITY=$(echo $HISTORY | jq -r .narrative2 | head -n1) ; echo $ENTITY # get last trascation company name
|
|
fi
|
|
send_tg
|
|
fi
|
|
else
|
|
echo "Nothing new....Next check in $NORMAL_DELAY seconds"
|
|
fi
|
|
done
|
|
}
|
|
|
|
infinite_loop(){
|
|
while true; do
|
|
loop
|
|
sleep $NORMAL_DELAY
|
|
done
|
|
}
|
|
infinite_loop
|