def start_help_handler(message): dynamodb = boto3.resource('dynamodb', region_name="us-east-1") table = dynamodb.Table(get_current_event()) response = table.query( KeyConditionExpression=Key('number').eq(message['From'])) name = "" # On the off chance we have someone who isn't registered at the event but still needs help. if response['Count'] == 0: table.put_item( Item={ 'number': message['From'], 'name': name, 'arrived': get_arrival_time(), 'help_flag': True, 'help_flag_raised': get_arrival_time() }) else: name = response['Items'][0]['name'] table.put_item( Item={ 'number': response['Items'][0]['number'], 'name': response['Items'][0]['name'], 'arrived': response['Items'][0]['arrived'], 'help_flag': True, 'help_flag_raised': get_arrival_time() }) SMSHandler.sendsms(message['From'], immediate_help_message()) notify_parties(name, message['From']) SMSHandler.sendsms(message['From'], whats_next_message())
def notify_parties(name, number, message="nomessage"): if message == "nomessage": # SMSHandler.send_sms_exec(alert_message(name, number)) # SMSHandler.send_sms_soberbros(alert_message(name, number)) SMSHandler.sendsms("+17085578202", alert_message(name, number)) else: # SMSHandler.send_sms_exec("Message from " + name + " (" + number + "): " + process_message(message)) # SMSHandler.send_sms_soberbros("Message from " + name + " (" + number + "): " + process_message(message)) SMSHandler.sendsms("+17085578202", alert_message(name, number))
def update(sms): Helper.writeLog('#Begin: Update function') Helper.writeLog('-Password in sms is '+sms.password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In UPD Pass Condition') update(sms.number,MessageIndex) else : Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'UPD 2')
def update(sms): Helper.writeLog('#Begin: Update function') Helper.writeLog('-Password in sms is ' + sms.password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In UPD Pass Condition') update(sms.number, MessageIndex) else: Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'UPD 2')
def setPwd(sms): global SavedPassword Helper.writeLog('#Begin: SetPwd function') Helper.writeLog('-Password in sms is '+sms.password) if sms.password != '' and SavedPassword == 0 : Helper.writeLog('-In Password Condition') SavedPassword = sms.password Helper.writeLog('-Number is '+sms.sender) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS(sms.sender,'Password set successfully') elif MessageIndex != '1' : Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'SETPWD') Helper.writeLog('##Left: setPwd function')
def setPwd(sms): global SavedPassword Helper.writeLog('#Begin: SetPwd function') Helper.writeLog('-Password in sms is ' + sms.password) if sms.password != '' and SavedPassword == 0: Helper.writeLog('-In Password Condition') SavedPassword = sms.password Helper.writeLog('-Number is ' + sms.sender) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS(sms.sender, 'Password set successfully') elif MessageIndex != '1': Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'SETPWD') Helper.writeLog('##Left: setPwd function')
def stopEngine(sms): Helper.writeLog('#Begin: StopEngine function') Helper.writeLog('-Password in sms is '+sms.password) if Password == SavedPassword and SavedPassword != 0 : Helper.writeLog('-In Stop engine Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= '+GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= '+GPSLon) Number = sms.number GPIO.setIOvalue(8,0) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS(Number,'Your car was last seen in this location http://maps.google.com/?q='+GPSLat.rstrip().lstrip()+','+GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'STP') else : Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'STP 2')
def getLocation(sms): global SavedPassword Helper.writeLog('#Begin: getLocation function') Helper.writeLog('-Password in sms is '+sms.password) if Password == SavedPassword and SavedPassword != 0 : Helper.writeLog('-In Password Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= '+GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= '+GPSLon) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS(sms.number,'http://maps.google.com/?q='+GPSLat.rstrip().lstrip()+','+GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'GL') else : Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'GL 2') Helper.writeLog('##Left: getLocation function')
def startEngine(sms): Helper.writeLog('#Begin: StartEngine function') Helper.writeLog('-Password in sms is ' + sms.password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In Start engine Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= ' + GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= ' + GPSLon) GPIO.setIOvalue(8, 1) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS( Number, 'Your car now is ready to start at this location http://maps.google.com/?q=' + GPSLat.rstrip().lstrip() + ',' + GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'STRT') else: Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'STRT 2')
def getLocation(sms): global SavedPassword Helper.writeLog('#Begin: getLocation function') Helper.writeLog('-Password in sms is ' + sms.password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In Password Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= ' + GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= ' + GPSLon) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS( sms.number, 'http://maps.google.com/?q=' + GPSLat.rstrip().lstrip() + ',' + GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'GL') else: Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'GL 2') Helper.writeLog('##Left: getLocation function')
def stopEngine(sms): Helper.writeLog('#Begin: StopEngine function') Helper.writeLog('-Password in sms is ' + sms.password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In Stop engine Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= ' + GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= ' + GPSLon) Number = sms.number GPIO.setIOvalue(8, 0) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS( Number, 'Your car was last seen in this location http://maps.google.com/?q=' + GPSLat.rstrip().lstrip() + ',' + GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'STP') else: Helper.writeLog('Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'STP 2')
def deleteAllMessages(sms): Helper.writeLog('#Begin: DeleteAllMessages function') Helper.writeLog('-Password in sms is '+Password) if Password == SavedPassword and SavedPassword != 0 : Helper.writeLog('-In Delete All Condition') Number = sms.number Helper.writeLog('-Before Sending the SMS') Helper.writeLog('-Deleting SMS') AllSMS = SMSHandler.check4SMS() if len(AllSMS) > 1: for i in range(1,len(AllSMS)): SMSHandler.deleteSMS(AllSMS[i].msgindex,'DELALL') SavedPassword = 0 SMSHandler.sendSMS(Number,'All messages has been deleted!') else : Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'DELALL 2')
def deleteAllMessages(sms): Helper.writeLog('#Begin: DeleteAllMessages function') Helper.writeLog('-Password in sms is ' + Password) if Password == SavedPassword and SavedPassword != 0: Helper.writeLog('-In Delete All Condition') Number = sms.number Helper.writeLog('-Before Sending the SMS') Helper.writeLog('-Deleting SMS') AllSMS = SMSHandler.check4SMS() if len(AllSMS) > 1: for i in range(1, len(AllSMS)): SMSHandler.deleteSMS(AllSMS[i].msgindex, 'DELALL') SavedPassword = 0 SMSHandler.sendSMS(Number, 'All messages has been deleted!') else: Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex, 'DELALL 2')
def startEngine(sms): Helper.writeLog('#Begin: StartEngine function') Helper.writeLog('-Password in sms is '+sms.password) if Password == SavedPassword and SavedPassword != 0 : Helper.writeLog('-In Start engine Condition') GPSLat = getGPSLocation('Lat') Helper.writeLog('-Latitude= '+GPSLat) GPSLon = getGPSLocation('Lon') Helper.writeLog('-Longitude= '+GPSLon) GPIO.setIOvalue(8,1) Helper.writeLog('-Before Sending the SMS') SMSHandler.sendSMS(Number,'Your car now is ready to start at this location http://maps.google.com/?q='+GPSLat.rstrip().lstrip()+','+GPSLon.rstrip().lstrip()) Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'STRT') else : Helper.writeLog('-Deleting SMS') SMSHandler.deleteSMS(MessageIndex,'STRT 2')
import MDM import MOD import SER import GPS import md5 import GPIO import SMSHandler import Helper WEBSVC_UPD_INTERVAL = 2 SLEEP_INTERVAL = 30 COUNTER = WEBSVC_UPD_INTERVAL try: Helper.SavedPassword = SMSHandler.getSavedPassword() except Exception, e: Helper.writeLog('###GetSavedPassword Exception###') Helper.writeLog(str(e)) while 1: try: Helper.writeLog('#Begin: While loop') Helper.writeLog('-Saved pass is ' + str(Helper.SavedPassword)) SMSListResult = SMSHandler.check4SMS() if len(SMSListResult) > 0: for i in range(0, len(SMSListResult)): SMSHandler.processSingleSMS(SMSListResult[i]) Helper.writeLog('-Finished While Loop') except Exception, e: Helper.writeLog('###While Loop Exception###')
def handler(data): data['body'] = data['body'].encode() # We have to decode the message as its sent in base 64. message_parsed = (base64.b64decode(data['body'])) message_parsed = message_parsed.decode().split('&') message = dictify_message(message_parsed) current_event = get_current_event() # No event going on rn. if current_event == "none": SMSHandler.sendsms(message['From'], no_event_message()) return "200 OK" else: # Trigger for help flag raising. if message['Body'].lower().find('help') != -1: start_help_handler(message) return "200 OK" dynamodb = boto3.resource('dynamodb', region_name="us-east-1") table = dynamodb.Table(current_event) response = table.query( KeyConditionExpression=Key('number').eq(message['From'])) # If the number exists in our db and their flag is raised, let's forward their messages if response['Count'] != 0 and response['Items'][0]['help_flag']: notify_parties(response['Items'][0]['name'], message['Body']) SMSHandler.sendsms(response['Items'][0]['number'], "Successfully forwarded.") return "200 OK" # If the sender didn't have the keyword correct. if get_keyword() != "none": if not validate_keyword(message['Body']): SMSHandler.sendsms(message['From'], incorrect_keyword_message()) return "200 OK" # Ensuring the number doesn't exist in the DB yet. if response['Count'] == 0: SMSHandler.sendsms(message['From'], welcome_number_message(message['Body'])) table.put_item( Item={ 'number': message['From'], 'name': get_name(message['Body']), 'arrived': get_arrival_time(), 'help_flag': False, 'help_flag_raised': "n/a" }) current_guests = increment_guests(current_event) # Number of people attending the event. if current_guests % 50 == 0: wooglin.sendmessage("The current event: " + current_event + " has " + str(current_guests) + " guests registered.") else: SMSHandler.sendsms(message['From'], number_exists_message()) return "200 OK"