Example #1
0
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())
Example #2
0
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))
Example #3
0
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')
Example #4
0
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')
Example #5
0
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')
Example #6
0
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')
Example #7
0
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')	
Example #8
0
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')
Example #9
0
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')
Example #10
0
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')
Example #11
0
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')
Example #12
0
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')
Example #13
0
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')
Example #14
0
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')
Example #15
0
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###')
Example #16
0
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"