예제 #1
0
파일: app.py 프로젝트: sagnew/twilio-arcade
def sms_reply():
    # Retrieve the body of the text message.
    message_body = request.form['Body'].lower()

    # Create a TwiML response object to respond to the text message.
    resp = Response()
    message_response = 'Thanks for playing :) Hit up @Sagnewshreds on Twitter for questions.'.format(
        buttons)
    error_message = 'Please enter a valid Gameboy button: {}'.format(buttons)

    # Create a list of all words in the message body.
    message_list = message_body.split(' ')

    # See if the message was a valid button.
    if message_body in buttons:

        # Make sure the button is uppercase for the emulator's API.
        if message_body in ['a', 'b', 'x', 'y']:
            message_body = message_body.upper()

        # Initialize the file we are going to write to.
        button_file = 'p1.txt'

        # Determine which player is pressing this button.
        if request.form['From'] in player_two_numbers:
            button_file = 'p2.txt'

        with open(button_file, 'w') as f:
            f.write(message_body)
    else:
        message_response = error_message

    resp.message(message_response)
    return str(resp)
예제 #2
0
def sms_personal(request):
    name = request.POST.get('Body', '')
    msg = 'Hey %s, how are you today?' % (name)
    
    r = Response()
    r.message(msg)
    return r
예제 #3
0
def sms(request,
        message,
        to=None,
        sender=None,
        action=None,
        method='POST',
        status_callback=None):
    """See: http://www.twilio.com/docs/api/twiml/sms.

    Usage::

        # urls.py
        urlpatterns = patterns('',
            # ...
            url(r'^sms/$', 'django_twilio.views.sms', {
                'message': 'Hello, world!'
            }),
            # ...
        )
    """
    r = Response()
    r.message(msg=message,
              to=to,
              sender=sender,
              method='POST',
              action=action,
              statusCallback=status_callback)
    return r
예제 #4
0
파일: views.py 프로젝트: codekansas/phonely
def giveHelp(person_one, request):
    """ Method for ending a conversation """
    help_message = ""
    help_message += "End conversation: %s Unsubscribe: %s Help: %s" % (end_command, unsubscribe_command, help_command)
    r = Response()
    r.message(msg=help_message, to=person_one.phone_number)
    return r
예제 #5
0
def sms(request):
    if request.method == 'GET':
        return HttpResponse("You are using GET. Use POST to communicate via SMS.")

    body = request.POST.get('Body', '')
    body = body.lower()

    if "call me" in body:

        client = TwilioRestClient(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN) 
    
        call = client.calls.create(
            to="978-382-3789",
            from_="19782917626",
            url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
            # monkey mp3 below doesn't work for some reason -> Application error
            # https://demo.twilio.com/hellomonkey/monkey.mp3


        msg = "I'll call you in a sec......"
        r = Response()
        r.message(msg)
        return r


    msg = 'How are you today? This is what you sent me: %s' % (body)
    # msg = 'Hello world! Twilio integrated with Django!!!'
    r = Response()
    r.message(msg)
    return r
예제 #6
0
    def handle_noticeboard_inbound():

        pusher_key = app.config.get('PUSHER_KEY', None)
        pusher_secret = app.config.get('PUSHER_SECRET', None)
        pusher_app_id = app.config.get('PUSHER_APP_ID', None)

        try:
            p = Pusher(pusher_app_id, pusher_key, pusher_secret)

            p['rrk_noticeboard_live'].trigger(
                'new_message',
                {
                    'image': request.values.get('MediaUrl0', None),
                    'body': request.values.get('Body', None),
                    'from': request.values.get('From', None)
                }
            )
        except:
            return '<Response />'

        to = request.values.get('To', '')
        r = Response()
        r.message(
            '''Thank you, your image has been posted
            to {0}noticeboard/live/{1}'''.format(request.url_root, to))
        return r.toxml()
예제 #7
0
def verify_sms(request):
    from_number = request.POST.get("From", None)
    from_text = request.POST.get("Body", None)
    msg = game_logic(from_number, from_text)
    r = Response()
    r.message(msg)
    return r
예제 #8
0
def sms(request):
    name = request.POST.get('Body', '')
    msg = 'Hey %s'

    r = Response()
    r.message(msg)
    return r
예제 #9
0
def help_message():
    r = Response()
    message_string = ("Hello! I understand:\n"
                      "'Add Jane Doe' to add Jane Doe as a contact\n"
                      "'Met Jane Doe' to log that you met Jane Doe\n"
                      "'Find Jane Doe' to search for Jane in your contacts")
    r.message(message_string)
    return HttpResponse(r.toxml(), content_type='text/xml')
예제 #10
0
def sms_response_help(poll_title, poll_options):
    r = Response()
    r.message(
        u"%s\nOptions: %s.\n\nReply to this SMS with your vote!\n\nTo see the results text RESULTS.\n\nTo remove a vote text UNVOTE.\n\nTo see which option you have voted for text WHICH. \U0001F37A" % (
            poll_title, poll_options
            )
        )
    return r
예제 #11
0
def giveHelp(person_one, request):
    ''' Method for ending a conversation '''
    help_message = ''
    help_message += 'End conversation: %s Unsubscribe: %s Help: %s' % (
        end_command, unsubscribe_command, help_command)
    r = Response()
    r.message(msg=help_message, to=person_one.phone_number)
    return r
예제 #12
0
def unsubscribe(person_one, request):
    ''' Method for ending a conversation '''
    phone = person_one.phone_number
    person_one.delete()
    message = 'You have unsubscribed.'
    r = Response()
    r.message(msg=message, to=phone)
    return r
예제 #13
0
def sms(request):
    enrolleeNumber = request.POST.get('Body', '')
    msg = 'Enrollment for %s confirmed' % (enrolleeNumber)
    r = Response()
    r.message(msg)
    enrollmentMessage = 'You have been enrolled in this progam. Stay tuned!'
    sendMessage(enrolleeNumber, enrollmentMessage)
    return r
예제 #14
0
파일: views.py 프로젝트: MatthewKrey/serkli
def sms(request):
#    name = request.POST.get('Body', '')

    msg = 'Hey Mike, please send Kennedy a reminder to do a breast self-exam! Go to the page at http://j.mp/SelfChec to get some ideas for what to talk about.'
    r = Response()
    r.message(msg)

    return r
예제 #15
0
파일: views.py 프로젝트: codekansas/phonely
def unsubscribe(person_one, request):
    """ Method for ending a conversation """
    phone = person_one.phone_number
    person_one.delete()
    message = "You have unsubscribed."
    r = Response()
    r.message(msg=message, to=phone)
    return r
예제 #16
0
def smsRes(request):
    body = request.POST.get('Body', '')
    number = request.POST.get('From', '')
    id1 = [
        'I8ckg12tIqOpz613Sf/VLPClcVhOTKH2', '6lAPqTztmhj/1ml4NmER+KXwJev8eMWN',
        'I8ckg12tIqOpz613Sf/VLPClcVhOTKH2', 'I8ckg12tIqOpz613Sf/VLPClcVhOTKH2'
    ]
    wallet = [
        '4817497275977414861', '5622253132157119015', '5243188823714477159',
        '5014900270407291489'
    ]
    #body = request.POST.get('Body', '')
    #number = request.POST.get('From','')
    #comma_index= list(find(',',body))

    if (body.split(",")[0] == 'payprem'):

        identity = body.split(",")[1]

        wc = body.split(",")[2]

        amt = 20
        if (identity in id1) and (wc in wallet):
            a = confirmpayment(identity, wc, amt)
            b = wallet_details(identity, wc)

            msg = a + b

    elif (body.split(",")[0] == 'getsubs'):
        identity = body.split(",")[1]
        wc = body.split(",")[2]
        amt = 20
        if identity in id1 and wc in wallet:
            a = banktocus(identity, wc, amt)
            b = wallet_details(identity, wc)
            msg = a + b

    elif (body.split(",")[0] == 'tranhis'):
        identity = body.split(",")[1]
        wc = body.split(",")[2]
        amt = 20
        if identity in id1 and wc in wallet:
            a = trans_his(identity, wc)
            msg = a

    elif (body.split(",")[0] == 'knowbal'):
        identity = body.split(",")[1]
        wc = body.split(",")[2]
        amt = 20
        if identity in id1 and wc in wallet:
            a = wallet_details(identity, wc)
            msg = a

    else:
        msg = "Invalid Request"
    r = Response()
    r.message(msg)
    return r
예제 #17
0
def recv():
    message = request.values['m']
    data = message.split(' ', 1)
    user = load_user(data[0])

    resp = Response()
    resp.message("Forwarded to %s" % user.email
                 if user else "User not found")
    return str(resp)
예제 #18
0
def newUser(request):
    ''' Create new user '''
    phone = request.POST.get('From', '')
    p = Person(phone_number=phone)
    p.save()
    message = 'Welcome! By texting this number you agree to have your number in our database. Text "%s" to remove it. To start a conversation, respond with anything. Text "%s" at any time to get help.' % (
        unsubscribe_command, help_command)
    r = Response()
    r.message(msg=message, to=p.phone_number)
    return r
예제 #19
0
파일: views.py 프로젝트: johnwamburu/school
def sms(request):
    """Will reside in home application only."""
    body = request.POST.get('Body', '')
    from_who = request.POST.get('From', '')
    #msg = 'Hey %s, how are you today?' % (body)
    msg = 'Your request has been received and will be processed shortly.'
    r = Response()
    r.message(msg)
    Received.objects.create(from_who=from_who, msg=body)
    return r
예제 #20
0
def authorizedEnrollerResponse(senderNumber, smsMessage, request):

    formattedMessage = formatString(smsMessage)
    # If they texted a phone number, enroll that person.
    if isPhoneNumber(formattedMessage):
        try:
            enrolleeNumber = formatPhoneNumber(removeCountryCode(formattedMessage))
            
            # store the enrollee phone number in the session for use in between requests
            request.session[senderNumber] = enrolleeNumber

            addRecipient(phone_number=enrolleeNumber)

            # Get the group the enroller belongs to.
            group = getGroupByPhoneNumber(senderNumber)

            # Pull campaign info for that group.
            camps = group.campaign_set.all()
            campaignIDs = ''

            for camp in camps:
                campID = str(camp.id)
                campName = camp.name
                campaignIDs = campaignIDs + '\n' + campID + ' - ' + campName

            msg = 'Please select a campaign:\n %s' % (campaignIDs)
            r = Response()
            r.message(msg)
            return r
        except Exception as e:
            return invalidRequest('Error: could not enroll user.')
        
    else:
        try:
            campaignID = int(smsMessage)
            # Get the group the enroller belongs to.
            group = getGroupByPhoneNumber(senderNumber)
            
            if isValidCampaignID(campaignID, group) and (request.session[senderNumber] != None):
                campaignName = Campaign.objects.get(id=campaignID).name
                enrolleeNumber = request.session[senderNumber]
                addRecipientToCampaign(enrolleeNumber, campaignID, senderNumber)
                msg = 'Enrollment in %s confirmed for %s' % (campaignName, enrolleeNumber)
                r = Response()
                r.message(msg)
                enrollmentMessage = 'You have been enrolled in %s. Stay tuned!' % (campaignName)
                sendMessage(enrolleeNumber, enrollmentMessage)
                request.session[senderNumber] = None
                return r
            else:
                return invalidRequest('Sorry, we could not find that campaign ID.')
        except Exception as e:
            return invalidRequest('Error: could not find that campaign ID.')
                
    return invalidRequest('Not a valid enrollment or campaign.')
예제 #21
0
def continuedConversation(person_one, request):
    ''' Method for continuing a conversation '''
    message = request.POST.get('Body', '')
    if re.match('speak', message, re.IGNORECASE):
        message = message[6:]
        r = Response()
        r.say(msg=message, to=person_one.partner.phone_number)
        return r
    r = Response()
    r.message(msg=message, to=person_one.partner.phone_number)
    return r
예제 #22
0
파일: views.py 프로젝트: codekansas/phonely
def continuedConversation(person_one, request):
    """ Method for continuing a conversation """
    message = request.POST.get("Body", "")
    if re.match("speak", message, re.IGNORECASE):
        message = message[6:]
        r = Response()
        r.say(msg=message, to=person_one.partner.phone_number)
        return r
    r = Response()
    r.message(msg=message, to=person_one.partner.phone_number)
    return r
예제 #23
0
def sms_reply():
    message_body = request.form['Body']
    print message_body
    send_message(message_body)

    res = Response()
    res.message('Thanks for texting our HackPack! After a bit of '
                'rendering, your message should scroll by on our display '
                'shortly :) To find out how to do stuff this on your own '
                'check out: http://twilio.com')

    return str(res)
예제 #24
0
파일: views.py 프로젝트: codekansas/phonely
def newUser(request):
    """ Create new user """
    phone = request.POST.get("From", "")
    p = Person(phone_number=phone)
    p.save()
    message = (
        'Welcome! By texting this number you agree to have your number in our database. Text "%s" to remove it. To start a conversation, respond with anything. Text "%s" at any time to get help.'
        % (unsubscribe_command, help_command)
    )
    r = Response()
    r.message(msg=message, to=p.phone_number)
    return r
예제 #25
0
def log_contact(contact, user):
    time = timezone.now()
    LogEntry.objects.create(contact=contact,
                            logged_by=user,
                            time=timezone.now(),
                            kind='in person')
    contact.last_contact = time
    contact.save()
    r = Response()
    r.message("Updated {} ({})".format(contact.name,
                                       contact.get_complete_url()))
    return HttpResponse(r.toxml(), content_type='text/xml')
예제 #26
0
파일: views.py 프로젝트: codekansas/phonely
def endConversation(person_one, request):
    """ Method for ending a conversation """
    if person_one.partner == None:
        r = Response()
        r.message(msg="You are not in an active conversation.", to=person_one.phone_number)
        return r
    person_one.partner.partner = None
    person_one.partner.save()
    person_one.partner = None
    person_one.save()
    r = Response()
    r.message(msg="You have ended this conversation.", to=person_one.phone_number)
    return r
예제 #27
0
파일: views.py 프로젝트: bcorwin/MsgSender
def sms_reply(request):
    if request.method == "POST":
        from_number = format_number(request.POST['From'])
        message = request.POST['Body']
    elif request.method == "GET":
        from_number = format_number(request.GET['From'])
        message = request.GET['Body']

    r = Response()
    reply = gen_reply(from_number, message)
    if reply != None: r.message(reply)

    return r
예제 #28
0
def sms_ahoy_reply():
    """Respond to incoming messages with a friendly SMS."""
    number = request.form['From']
    message_body = request.form['Body']

    # Start our response
    resp = Response()

    # Add a message
    resp.message("Hype, {}. This works! You just sent: {}".format(
        number, message_body))

    return str(resp)
예제 #29
0
파일: views.py 프로젝트: bcorwin/MsgSender
def sms_reply(request):
    if request.method == "POST":
        from_number = format_number(request.POST['From'])
        message = request.POST['Body']
    elif request.method == "GET":
        from_number = format_number(request.GET['From'])
        message = request.GET['Body']
        
    r = Response()
    reply = gen_reply(from_number, message)
    if reply != None: r.message(reply)
    
    return r
예제 #30
0
def endConversation(person_one, request):
    ''' Method for ending a conversation '''
    if person_one.partner == None:
        r = Response()
        r.message(msg='You are not in an active conversation.',
                  to=person_one.phone_number)
        return r
    person_one.partner.partner = None
    person_one.partner.save()
    person_one.partner = None
    person_one.save()
    r = Response()
    r.message(msg='You have ended this conversation.',
              to=person_one.phone_number)
    return r
예제 #31
0
def twilio_add(request):
    # TODO: Query the proper playlist
    playlist_id = RdioPlaylist.objects.get(default=True).id
    query = request.POST['Body']

    rdio_objs = query_to_playlist(playlist_id, query)
    if rdio_objs is None:
        return HttpResponse(status=200)

    rdio_playlist, rdio_track = rdio_objs

    sms_body = build_sms_body(rdio_playlist, rdio_track)

    r = Response()
    r.message(sms_body)
    return r
예제 #32
0
def get_text():

    message = request.form['Body']

    (tickers, more) = parse.parse_text(message)

    stock_info = []

    if not tickers:
    	print 'No companies recieved'
    for t in tickers:
        stock_info = map(partial(scrape.get_stock_info,more_info=more),tickers)

    resp = Response()
    resp.message(print_text(stock_info, more))
    
    return str(resp)
예제 #33
0
파일: views.py 프로젝트: codekansas/phonely
def newConversation(person_one, request):
    """ Person wanting a new conversation """
    phone = request.POST.get("From", "")
    people = Person.objects.filter(partner=None).exclude(phone_number=phone).all()  # All available people
    if len(people) == 0:  # No one is available
        r = Response()
        r.message(msg="Sorry, there are no open conversations right now. Please check back later.", to=phone)
        return r
    person_two = people[random.randint(0, len(people) - 1)]  # Choose a random person
    person_one.partner = person_two
    person_one.save()
    person_two.partner = person_one
    person_two.save()
    message = "New message: %s" % (request.POST.get("Body", ""))
    r = Response()
    r.message(msg=message, to=person_two.phone_number)
    return r
예제 #34
0
def sms(request):
    category_name = request.POST.get('Body', '')
    category_obj = Category.objects.filter(name=category_name).first()
    msg = ''
    if category_obj:
        msg = '%s\n' % category_obj.url

        attributes = category_obj.attribute_set.all().order_by('name')
        for attribute_obj in attributes:
            msg += '%s,%s,%s\n' % (attribute_obj.name, attribute_obj.address,
                                   attribute_obj.phone_number)
    else:
        msg = 'Sorry, I don\'t understand your text. Please text me one of the following: Shelters, Showers, Food, Clothing'

    r = Response()
    r.message(msg)
    return r
예제 #35
0
파일: views.py 프로젝트: nave91/divendash
def sms(request):
	if request.method == 'POST':
	    num = str(request.POST.get('From', '')) 
    	body = str(request.POST.get('Body', ''))
    	status = parser(body)
    	r = Response()
    	if status:
    		if status == 'pl':
    			msg = play(num, body)
    		if status == 'st':
    			msg = 'Hang tight! we are getting things ready.'
    		else:
	    		msg = str(status)
    	else:
	    	msg = "Hey! Reply with 'play as <name>', to dive!"
    	r.message(msg)
    	return r
예제 #36
0
def sms(request):
    """
    Returns SMS of latest statistics collected, and saves them for future reference.
    """
    body = request.POST.get('Body', '')
    from_who = request.POST.get('From', '')
    try:
        Received(from_who=from_who, msg=body).save()
    except Exception as e:
        print e
    msg = 'Your request has been received and will be processed shortly.'
    r = Response()
    r.message(msg)
    try:
        Sent(to=from_who, msg=msg).save()
    except Exception as e:
        print e
    return r
예제 #37
0
def sms(request, message, to=None, sender=None, action=None, method='POST',
        status_callback=None):
    """See: http://www.twilio.com/docs/api/twiml/sms.

    Usage::

        # urls.py
        urlpatterns = patterns('',
            # ...
            url(r'^sms/$', 'django_twilio.views.sms', {
                'message': 'Hello, world!'
            }),
            # ...
        )
    """
    r = Response()
    r.message(msg=message, to=to, sender=sender, method='POST', action=action,
          statusCallback=status_callback)
    return r
예제 #38
0
def enrolleeResponse(senderNumber, smsMessage, request):
    try:
        # TODO: test this
        
        enrolleeNumber = senderNumber
        enrolleeMessage = smsMessage
        time = datetime.utcnow()
        recipient = Recipient.objects.get(phone_number=senderNumber)
        membership = Membership.objects.get(recipient=recipient)
        campaign = membership.campaign;

        addResponse(senderNumber, smsMessage, campaign, time)

        msg = 'Thanks for the update!'
        r = Response()
        r.message(msg)
        request.session[senderNumber] = None
        return r
    except Exception as e:
        return invalidRequest('Error: could not handle enrollee response.')
예제 #39
0
def enrolleeResponse(senderNumber, smsMessage, request):
    try:
        # TODO: test this

        enrolleeNumber = senderNumber
        enrolleeMessage = smsMessage
        time = datetime.utcnow()
        recipient = Recipient.objects.get(phone_number=senderNumber)
        membership = Membership.objects.get(recipient=recipient)
        campaign = membership.campaign

        addResponse(senderNumber, smsMessage, campaign, time)

        msg = 'Thanks for the update!'
        r = Response()
        r.message(msg)
        request.session[senderNumber] = None
        return r
    except Exception as e:
        return invalidRequest('Error: could not handle enrollee response.')
예제 #40
0
def sms(request):
    msg = request.POST.get('Body', '')

    if msg[:9] == 'Not coming':
        showingUp(1, '')
    elif msg[:10] == 'Arriving at':
        showingUp(2, msg[12:16])
    elif msg[:3] == 'Here':
        showingUp(3, '')
    elif msg[:3] == 'Gone':
        showingUp(4, '')
    elif msg[4:11] == 'finished':
        completeOrder(msg[:2], True)
    elif msg[4:13] == 'unfinished':
        completeOrder(msg[:2], False)
    elif msg[4:7] == 'left':
        leftOrder(msg[:2])
    else:
        response = Response()
        response.message('Your message was not in the correct format. Please try again.')
        return response
예제 #41
0
def incoming_message(request):

    twiml = Response()

    body = request.POST.get('Body', '')
    body = body.lower()

    pokemon_url = '/api/v1/pokemon/{0}/'.format(body)
    pokemon = query_pokeapi(pokemon_url)

    if pokemon:
        sprite_uri = pokemon['sprites'][0]['resource_uri']
        description_uri = pokemon['descriptions'][0]['resource_uri']

        sprite = query_pokeapi(sprite_uri)
        description = query_pokeapi(description_uri)

        message = '{0}, {1}'.format(pokemon['name'],
                                    description['description'])
        image = '{0}{1}'.format(BASE_URL, sprite['image'])

        frm = request.POST.get('From', '')
        if '+44' in frm:
            twiml.message('{0} {1}'.format(message, image))
            return twiml
        twiml.message(message).media(image)
        return twiml

    twiml.message("Something went wrong! Try 'Pikachu' or 'Rotom'")
    return twiml
예제 #42
0
def incoming_message(request):

    twiml = Response()

    body = request.POST.get('Body', '')
    body = body.lower()

    pokemon_url = '/api/v1/pokemon/{0}/'.format(body)
    pokemon = query_pokeapi(pokemon_url)

    if pokemon:
        sprite_uri = pokemon['sprites'][0]['resource_uri']
        description_uri = pokemon['descriptions'][0]['resource_uri']

        sprite = query_pokeapi(sprite_uri)
        description = query_pokeapi(description_uri)

        message = '{0}, {1}'.format(pokemon['name'], description['description'])
        image = '{0}{1}'.format(BASE_URL, sprite['image'])

        frm = request.POST.get('From', '')
        if '+44' in frm:
            twiml.message('{0} {1}'.format(message, image))
            return twiml
        twiml.message(message).media(image)
        return twiml

    twiml.message("Something went wrong! Try 'Pikachu' or 'Rotom'")
    return twiml
예제 #43
0
def sms(request):
	message_body = request.GET.get('Body', '')
	from_number = request.GET.get('From', '')
	from_zip = request.GET.get('FromZip', '')


	key = re.findall(key_exp, message_body, re.I|re.DOTALL)[0]
	value = re.findall(value_exp, message_body, re.I|re.DOTALL)[0]
	

	r = Response()
	print(from_zip)
	r.message(from_number + " " + from_zip + " " + key + " " + value)

	if (key == "NAME"):
		mother = Mother(phone_num=from_number, first_name=value)	
		mother.save()		

        if (key == "AGE"):
                mother = Mother(phone_num=from_number, age=value)
                mother.save()
        
        if (key == "POSTALCODE"):
                mother = Mother(phone_num=from_number, postal_code=value)
                mother.save()
        
        if (key == "GIVEAID"):
                mother = Mother(phone_num=from_number, give_aid=value)
                mother.save()
                
        if (key == "RECEIVEAID"):
                mother = Mother(phone_num=from_number, receive_aid=value)
                mother.save()
        
        if (key == "MOTHERCONDITION"):
                mother = Mother(phone_num=from_number, mother_condition=value)
                mother.save()
        
	return r
예제 #44
0
def sms(request):
    msg = request.POST.get('Body', '')

    if msg[:9] == 'Not coming':
        showingUp(1, '')
    elif msg[:10] == 'Arriving at':
        showingUp(2, msg[12:16])
    elif msg[:3] == 'Here':
        showingUp(3, '')
    elif msg[:3] == 'Gone':
        showingUp(4, '')
    elif msg[4:11] == 'finished':
        completeOrder(msg[:2], True)
    elif msg[4:13] == 'unfinished':
        completeOrder(msg[:2], False)
    elif msg[4:7] == 'left':
        leftOrder(msg[:2])
    else:
        response = Response()
        response.message(
            'Your message was not in the correct format. Please try again.')
        return response
예제 #45
0
파일: views.py 프로젝트: brettwise/pushups
def sms(request):
  incomingMessage = request.POST.get('Body', '')
  incomingMessage = "0" + incomingMessage
  incomingDigits = ''.join(x for x in incomingMessage if x.isdigit())
  incomingNumber = request.POST.get('From', 0)[2:]
  try:
    user = User.objects.get(phoneNumber=incomingNumber)
  except:
    r = Response()
    r.message("This number isn't registered. To get in on the pushups, go to lpgpushups.herokuapp.com")
    return r
  try:
    workout = Workout.objects.get(participantID=user,status="pending")
  except:
    r = Response()
    r.message("Too late! " + user.firstName + ", next time text back how many pushups you did within 5 minutes.")
    return r
  workout.score = int(incomingDigits)
  workout.status = "completed"
  workout.save()
  r = Response()
  return r
예제 #46
0
    def do_auto_respond():
        sms_message = request.form.get('sms-message', '')
        voice_message = request.form.get('voice-message', '')

        if len(sms_message) == 0 and len(voice_message) == 0:
            flash('Please provide a message', 'danger')
            return redirect('/auto-respond')

        sms_url = ''
        voice_url = ''

        if len(sms_message) > 0:
            r = Response()
            mms_media = check_is_valid_url(request.form.get('media', ''))
            if mms_media:
                r.message(sms_message).media(mms_media)
            else:
                r.message(sms_message)
            sms_url = echo_twimlet(r.toxml())

        if len(voice_message) > 0:
            twiml = '<Response><Say>{}</Say></Response>'.format(voice_message)
            voice_url = echo_twimlet(twiml)

        try:
            client = twilio()
            client.phone_numbers.update(request.form['twilio_number'],
                                        friendly_name='[RRKit] Auto-Respond',
                                        voice_url=voice_url,
                                        voice_method='GET',
                                        sms_url=sms_url,
                                        sms_method='GET')

            flash('Auto-Respond has been configured', 'success')
        except Exception:
            flash('Error configuring number', 'danger')

        return redirect('/auto-respond')
예제 #47
0
    def do_auto_respond():
        sms_message = request.form.get('sms-message', '')
        voice_message = request.form.get('voice-message', '')

        if len(sms_message) == 0 and len(voice_message) == 0:
            flash('Please provide a message', 'danger')
            return redirect('/auto-respond')

        sms_url = ''
        voice_url = ''

        if len(sms_message) > 0:
            r = Response()
            mms_media = check_is_valid_url(request.form.get('media', ''))
            if mms_media:
                r.message(sms_message).media(mms_media)
            else:
                r.message(sms_message)
            sms_url = echo_twimlet(r.toxml())

        if len(voice_message) > 0:
            twiml = '<Response><Say>{}</Say></Response>'.format(voice_message)
            voice_url = echo_twimlet(twiml)

        try:
            client = twilio()
            client.phone_numbers.update(request.form['twilio_number'],
                                        friendly_name='[RRKit] Auto-Respond',
                                        voice_url=voice_url,
                                        voice_method='GET',
                                        sms_url=sms_url,
                                        sms_method='GET')

            flash('Auto-Respond has been configured', 'success')
        except Exception:
            flash('Error configuring number', 'danger')

        return redirect('/auto-respond')
예제 #48
0
    def handle_noticeboard_inbound():

        pusher_key = app.config.get('PUSHER_KEY', None)
        pusher_secret = app.config.get('PUSHER_SECRET', None)
        pusher_app_id = app.config.get('PUSHER_APP_ID', None)

        try:
            p = Pusher(pusher_app_id, pusher_key, pusher_secret)

            p['rrk_noticeboard_live'].trigger(
                'new_message', {
                    'image': request.values.get('MediaUrl0', None),
                    'body': request.values.get('Body', None),
                    'from': request.values.get('From', None)
                })
        except:
            return '<Response />'

        to = request.values.get('To', '')
        r = Response()
        r.message('''Thank you, your image has been posted
            to {0}noticeboard/live/{1}'''.format(request.url_root, to))
        return r.toxml()
예제 #49
0
def newConversation(person_one, request):
    ''' Person wanting a new conversation '''
    phone = request.POST.get('From', '')
    people = Person.objects.filter(partner=None).exclude(
        phone_number=phone).all()  # All available people
    if len(people) == 0:  # No one is available
        r = Response()
        r.message(
            msg=
            'Sorry, there are no open conversations right now. Please check back later.',
            to=phone)
        return r
    person_two = people[random.randint(0,
                                       len(people) -
                                       1)]  # Choose a random person
    person_one.partner = person_two
    person_one.save()
    person_two.partner = person_one
    person_two.save()
    message = 'New message: %s' % (request.POST.get('Body', ''))
    r = Response()
    r.message(msg=message, to=person_two.phone_number)
    return r
예제 #50
0
파일: main.py 프로젝트: nivekuil/sdhacks
def text():
    request_body = request.form["Body"]

    msg_body = "Message from " + request.form["From"] + " at " \
    + datetime.now().strftime('%H:%M:%S') + ": " + request_body

    if app.config['is_silent']:
        resp = Response()
        resp.message("Will is busy right now. \
        Your messages will be sent when he is available.")
        print("Tried to contact someone in silent mode.")
        app.config['message_queue'].append(msg_body);
        return str(resp)

    else:
        print("Not busy right not, let the sms go through")
        print(msg_body)
        msg = client.messages.create(
            to=user_num,
            from_=TWILIO_NUMBER,
            body=msg_body,
        )
        return msg.sid
예제 #51
0
def sms(request):
    """
    :param request: message received from twillo
    :return: message to be sent to twillo
    """
    msg = request.POST.get('Body', '')
    sender = request.POST.get('From', '')

    scheme = msg.split(' ')[0].upper()

    # split message and route to appropriate function
    if scheme == 'REG':
        msg = do_reg(msg.split(' ')[1:], sender)
    elif scheme == 'SEARCH':
        msg = do_search(msg.split(' ')[1:])
    elif scheme == 'CHANGE':
        msg = do_change(msg.split(' ')[1:])
    elif scheme == 'RATE':
        msg = do_rate(msg.split(' ')[1:])

    r = Response()
    r.message(msg)

    return r
예제 #52
0
def sms(request):
    try:
        senderNumber = request.POST.get('From', '')
        smsMessage = request.POST.get('Body', '')

        # Check if the person texting is authorized to enroll people.
        if isAuthorizedEnroller(senderNumber):
            return authorizedEnrollerResponse(senderNumber, smsMessage,
                                              request)

        # Check if the person texting is a recipient.
        elif isEnrollee(senderNumber):
            return enrolleeResponse(senderNumber, smsMessage, request)

        # Else, it's an unknown person.
        else:
            msg = "Hello! We don't know you yet. If you're part of a group, please contact your group administrator."
            r = Response()
            r.message(msg)
            request.session[senderNumber] = None
            return r
    except Exception as e:
        # print e
        return invalidRequest('Error.')
예제 #53
0
def sms_write(request):
    r = Response()
    r.message("Sup")
    return HttpResponse(r.toxml(), content_type='text/xml')
예제 #54
0
def invalidRequest(errorString):
    print errorString
    msg = 'Invalid request!'
    r = Response()
    r.message(msg)
    return r
예제 #55
0
def authorizedEnrollerResponse(senderNumber, smsMessage, request):

    formattedMessage = formatString(smsMessage)
    # If they texted a phone number, enroll that person.
    if isPhoneNumber(formattedMessage):
        try:
            enrolleeNumber = formatPhoneNumber(
                removeCountryCode(formattedMessage))

            # store the enrollee phone number in the session for use in between requests
            request.session[senderNumber] = enrolleeNumber

            addRecipient(phone_number=enrolleeNumber)

            # Get the group the enroller belongs to.
            group = getGroupByPhoneNumber(senderNumber)

            # Pull campaign info for that group.
            camps = group.campaign_set.all()
            campaignIDs = ''

            for camp in camps:
                campID = str(camp.id)
                campName = camp.name
                campaignIDs = campaignIDs + '\n' + campID + ' - ' + campName

            msg = 'Please select a campaign:\n %s' % (campaignIDs)
            r = Response()
            r.message(msg)
            return r
        except Exception as e:
            return invalidRequest('Error: could not enroll user.')

    else:
        try:
            campaignID = int(smsMessage)
            # Get the group the enroller belongs to.
            group = getGroupByPhoneNumber(senderNumber)

            if isValidCampaignID(
                    campaignID,
                    group) and (request.session[senderNumber] != None):
                campaignName = Campaign.objects.get(id=campaignID).name
                enrolleeNumber = request.session[senderNumber]
                addRecipientToCampaign(enrolleeNumber, campaignID,
                                       senderNumber)
                msg = 'Enrollment in %s confirmed for %s' % (campaignName,
                                                             enrolleeNumber)
                r = Response()
                r.message(msg)
                enrollmentMessage = 'You have been enrolled in %s. Stay tuned!' % (
                    campaignName)
                sendMessage(enrolleeNumber, enrollmentMessage)
                request.session[senderNumber] = None
                return r
            else:
                return invalidRequest(
                    'Sorry, we could not find that campaign ID.')
        except Exception as e:
            return invalidRequest('Error: could not find that campaign ID.')

    return invalidRequest('Not a valid enrollment or campaign.')
예제 #56
0
def create_message(message, to, sender):
    r = Response()
    r.message(message, to=to, sender=sender)
    return HttpResponse(r.toxml(), content_type='text/xml')
예제 #57
0
class TextResponse:
    """
        Textself.Response is initialized with a string of the user's phone #
    """
    def __init__(self, locale=None):
        self.locale = locale
        self.response = Response()

    def error(self, error=None):
        if not error:
            error = DEFAULT_ERROR_MESSAGE

        self.response.message(error)
        logger.info(self.response)

        return self.response

    def success(self, message=None):
        if not message:
            message = DEFAULT_SUCCESS_MESSAGE

        self.response.message(message)
        logger.info(self.response)

        return self.response

    def help(self, message=None):
        if not message:
            message = DEFAULT_HELP_MESSAGE

        self.response.message(message)
        logger.info("Help message sent")
        return self.response

    def improper_format(self, message=None):
        if not message:
            message = DEFAULT_IMPROPER_MESSAGE

        self.response.message(message)
        logger.info("Improper format message sent")
        return self.response

    def alias_not_found(self, message=None):
        if not message:
            message = DEFAULT_NOT_FOUND_MESSAGE

        self.response.message(message)
        logger.info("Alias not found message sent")
        return self.response

    def feedback_success(self, message=None):
        if not message:
            message = DEFAULT_FEEDBACK_SUCCESS

        self.response.message(message)
        logger.info("Feedback received")
        return self.response
예제 #58
0
def sms(request):
    r = Response()
    r.message('Hello world! Get in touch - [email protected]')
    return r