Beispiel #1
0
def store_SMS(message):
    print >> sys.stderr, "within store SMS"
    number = create_Number(message) # gets number from incoming SMS
    numberID = store_Number(number) # creates and stores number as Number object
    newSMS = SMS(sms_id = message['_id'], body = message['body'].lower(), date = message['date'], number = numberID)
    newSMS.save()
    return newSMS
Beispiel #2
0
def sms():
    if request.method == 'POST':
        print >> sys.stderr, "Received POST request to /plivo/sms/" # this is how you write messages to yourself in the Apache /var/log/apache2/error.log
        try:
            s = SMS(timeAnswered = datetime.datetime.now(),
                                action = 'super text',
                                direction = 'incoming',
                                smsTo = request.form['To'],
                                smsType = request.form['Type'],
                                smsMessageUUID = request.form['MessageUUID'],
                                smsFrom = request.form['From'],
                                smsText = request.form['Text'],
                                )
            print >> sys.stderr, s.direction
            s.save()
            message = request.form['Text'].lower()
            #response = showtimeandloc(message)
            #Dispatcher for the various commands
            try:
                response = commands[message[0]](message)
            except:
                response = "This was not a valid command.  Try @,!,g, or h.  H for help."

            print >> sys.stderr, response
            caller = request.form['From']
            if User.query.filter(User.number == caller).first():
                if type(response) == type(dict()):
                    regisUser = User.query.filter(User.number == caller).first()
                    location = response['location']
                    print >> sys.stderr, location
                    hours = int(response['hours'])
                    print >> sys.stderr, hours
                    timeExpired = datetime.datetime.now() + datetime.timedelta(hours=hours)
                    print >> sys.stderr, timeExpired
                    condition = 'safe'
                    newStatus = Status(location=location,timeEntered=datetime.datetime.now(),timeExpired=timeExpired,condition=condition)
                    newStatus.save()
                    regisUser.status = newStatus
                    regisUser.save()
                    yourStatus = 'We know you are at ' + location + ' for ' + str(hours) + ' hours. Now we are watching you.'
                    send_txt(caller,yourStatus.upper())
                elif type(response) == type(str()):
                    send_txt(caller,response.upper(), src=MASTER_NUMBER)
                else:
                    oops = 'Sorry. Please make sure you enter your status in this format: @ location 4 numberofhours.'
                    send_txt(caller,oops.upper())
            else:
                response = "Welcome to Panoptincon, where we aren't always watching. Your default location is Speke Apartments."
                timeExpired = datetime.datetime.now() + datetime.timedelta(hours=24)
                newStatus = Status(location='Speke Apartments',timeEntered=datetime.datetime.now(),timeExpired=timeExpired,condition='safe')
                newStatus.save()
                newUser = User(number=caller, status=newStatus, createdAt=datetime.datetime.now(), name=message, isChin=False)
                newUser.save()
                send_txt(caller,response.upper(), src=MASTER_NUMBER)
        except:
            print >> sys.stderr, str(sys.exc_info()[0])
            print >> sys.stderr, str(sys.exc_info()[1])
            #entering the gateway where stuff happens!
    else:
        return "These aren't the droids you're looking for. Move along, move along."
Beispiel #3
0
def send_sms(number, text):
    sms = SMS()
    sms.number = number
    sms.text = text
    sms.state = SMS.STATE_NEW
    sms.received = False
    sms.save()
    add_processor_jobs(sms)
Beispiel #4
0
def recv_sms():
    new = False
    for message in device.get_message_list():
        number = message.number
        date = message.date
        text = message.text
        if not SMS.objects.filter(date=date, number=number, text=text).exists():
            sms = SMS()
            sms.number = number
            sms.text = text
            sms.date = date
            sms.state = SMS.STATE_NEW
            sms.received = False
            sms.save()
            add_processor_jobs(sms)
            new = True
            device.del_message(message)
    return new
Beispiel #5
0
def sms():
    if request.method == 'POST':
        print >> sys.stderr, "Received POST request to /plivo/sms/" # this is how you write messages to yourself in the Apache /var/log/apache2/error.log
        try:
            s = SMS(timeAnswered = datetime.datetime.now(),
                    direction = 'incoming',
                    smsTo = request.form['To'],
                    smsType = request.form['Type'],
                    smsMessageUUID = request.form['MessageUUID'],
                    smsFrom = request.form['From'],
                    smsText = request.form['Text'],
                    )
            s.save()
            send_txt(s.smsFrom,s.smsText.upper())
        except:
            print >> sys.stderr, str(sys.exc_info()[0]) # These write the nature of the error
            print >> sys.stderr, str(sys.exc_info()[1]) 
    else:
        return "These aren't the droids you're looking for.  Move along, move along."