Example #1
0
def reps():

    r = twiml.Response()

    if 'Digits' in request.form:

        digits = request.form.get('Digits', None)

        if digits == '0':

            r.redirect('/voice')
            return r # shortcut the process and start over

        else:

            selection = int(digits) - 1
            legislator = data.legislators_for_zip(g.zipcode)[selection]
            g.call['context']['legislator'] = legislator

    else:
        legislator = g.legislator

    r.play('http://assets.sunlightfoundation.com/projects/transparencyconnect/audio/mainmenu-intro.wav')
    r.say('%s' % legislator['fullname'])
    with r.gather(numDigits=1, timeout=30, action='/voice/rep') as rg:
        rg.play('http://assets.sunlightfoundation.com/projects/transparencyconnect/audio/mainmenu.wav')

    return r
Example #2
0
def zipcode():
    """ Handles POSTed zipcode and prompts for legislator selection.
    """

    zipcode = request.form.get('Digits', g.zipcode)
    r = twiml.Response()

    if zipcode == '00000':

        r.say("""
            Welcome to movie phone.
            You seem like the type of person that would enjoy The Twilight Saga: Breaking Dawn Part 1.
            The best showings are during the day, but you'll be stuck in middle school.
            Ha ha ha. Loser.
        """)

    else:

        g.call['context']['zipcode'] = zipcode

        legislators = data.legislators_for_zip(zipcode)

        if legislators:

            options = [(l['fullname'], l['bioguide_id']) for l in legislators]
            script = " ".join("Press %i for %s." % (index + 1, o[0]) for index, o in enumerate(options))
            script += " Press 0 to enter a new zipcode."

            if len(legislators) > 3:
                r.play('http://assets.sunlightfoundation.com/projects/transparencyconnect/audio/selectlegalt.wav')
            else:
                r.play('http://assets.sunlightfoundation.com/projects/transparencyconnect/audio/selectleg.wav')

            with r.gather(numDigits=1, timeout=10, action='/voice/reps') as rg:
                rg.say(script)

        else:

            r.say("I'm sorry, I wasn't able to locate any representatives for %s." % (" ".join(zipcode),))
            with r.gather(numDigits=5, timeout=10, action='/voice/zipcode') as rg:
                rg.say("Please try again or enter a new zipcode.")

    return r