def determineMessage(receivedMessage: str, phoneNum: str): receivedMessage = receivedMessage.strip() if receivedMessage.lower() == 'new': groupNum = generateCode() if not DataBase.MakeNewGroup(phoneNum, groupNum): messageToSend = 'You are already in a group. Please check out that group before you create a new one.' send_sms(messageToSend, phoneNum) return 'ERRORONNEW' messageToSend = 'You have successfully created a group. The code of the group is ' + str(groupNum) + '. Share this code with your friends and have them send it to (949) 835-5128 within 10 minutes.' send_sms(messageToSend, phoneNum) return groupNum elif (typeisint(receivedMessage) and len(receivedMessage) == 6): if DataBase.AddMember(phoneNum, int(receivedMessage)): messageToSend = 'You have successfully entered the group ' + str(receivedMessage) + '. To request money from this group, simply reply the amount of it.' else: messageToSend = 'Sorry, the group code you entered ({}) is invalid.'.format(receivedMessage) send_sms(messageToSend, phoneNum) elif re.match(r'^\$?(\d+(\.\d{1,2})?)$', receivedMessage) != None: messageToSend = 'We have got your split request of ${} in this group. All the friends in this group will be notified.'.format(receivedMessage) DataBase.AddTrans(phoneNum, re.match(r'^\$?(\d+(\.\d{1,2})?)$', receivedMessage).group(1)) send_sms(messageToSend, phoneNum) receiver = DataBase.getMembers(phoneNum) receiver.remove(phoneNum) comfirm = '{} just requested a ${} bill split from the group. Reply \'N\' within 10 minutes to withdraw from the split.'.format(phoneNum, receivedMessage) for num in receiver: send_sms(comfirm, num) elif re.match(r'^\d+[+\-\*//]\d+([+\-\*//]\d+)*$',receivedMessage) != None: total = str(round(eval(receivedMessage), 2)) messageToSend = 'We have got your split request of ${} in this group. All the friends in this group will be notified.'.format(total) DataBase.AddTrans(phoneNum, total) send_sms(messageToSend, phoneNum) receiver = DataBase.getMembers(phoneNum) receiver.remove(phoneNum) comfirm = '{} just requested a ${} bill split from the group. Reply \'N\' within 10 minutes to withdraw from the split.'.format(phoneNum, total) for num in receiver: send_sms(comfirm, num) elif receivedMessage.lower() == 'n': messageToSend = 'You have successfully quit from the last bill split.' if DataBase.Deny(phoneNum): send_sms(messageToSend, phoneNum) else: messageToSend = 'The 10-minute time limit has been exeeded and you are unable to quit from the last bill split.' send_sms(messageToSend, phoneNum) elif receivedMessage.lower() == 'checkout': result = DataBase.summary(phoneNum) if result == False: messageToSend = 'Your check out request is not accepted: only the creater of the group ({}) can make the check out request.'.format(DataBase.getMaster(phoneNum)) send_sms(messageToSend, phoneNum) else: for payer, topay in result.items(): messageToSend = 'User {} need pay to follwing person(s):\n'.format(payer) for receiver, amount in topay.items(): messageToSend += '{}: ${}\n'.format(receiver, amount) send_sms(messageToSend, payer) DataBase.clear(phoneNum) messageToSend = 'Group Deleted. See you next time!' send_sms(messageToSend, phoneNum) else: messageToSend = 'We are unable to recognize this command. To request money from this group, reply the amount of it.' send_sms(messageToSend, phoneNum)