Beispiel #1
0
def products_handler(request, conn, match=True, data={}):
    resp = """\
    HTTP/1.1 200 OK

    This is product page
    """
    send_response(resp, conn, match)
Beispiel #2
0
def contact_handler(request, conn, match=True):
    template = "contacts.html"
    content = render(template)
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(content)
    send_response(resp, conn, match)
Beispiel #3
0
def about_handler(request, conn, match=True, data={}):
    template = "about.html"
    abc = render(template, {'this_is_variable': 'Бул өзгөрмөнүн ордуна барат'})
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(abc)

    send_response(resp, conn, match)
Beispiel #4
0
def about_handler(request, conn, match=True, data={}):
    template = "about.html"
    abc = render(template)
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(abc)
    # write_to_db(match,data)
    send_response(resp, conn, match)
Beispiel #5
0
def translate_handler(request, conn, match=True, data={}):
    template = "translate.html"
    cont = render(template)
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(cont)
    # write_to_db(match, data)
    send_response(resp, conn, match)
Beispiel #6
0
def about_handler(request, conn, match=True, method=None):
    template = 'about.html'
    content = render(template)
    resp = """\
	HTTP/1.1 200 OK

	{}
	""".format(content)

    send_response(resp, conn, match)
Beispiel #7
0
def translit_handler(request, conn, match=True, data={}):
    template = "translit.html"
    abc = render(template)
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(abc)

    send_response(resp, conn, match)
Beispiel #8
0
def contact_handler(request, conn, match=True, data={}):
    template = "contacts.html"
    content = render(template)
    resp = """\
    HTTP/1.1 200 OK

    {0}
    """.format(content)
    write_to_db(match, data)
    # translit(data,)
    send_response(resp, conn, match)
Beispiel #9
0
def response_handler(request):
    try:
        # Receive request
        receiver = Receiver(request)

        # Get user
        user = get_user(receiver.get_sender_messenger_id())

        # Check postbacks
        if receiver.get_request_type() == 'postback':
            payload = receiver.get_payload()
            return payload_parser(payload, user)
        elif receiver.get_request_type(
        ) == 'message' and receiver.get_message_type() == 'quick_reply':
            qr_payload = receiver.get_quick_reply_payload()
            return qr_payload_parser(qr_payload, receiver, user)

        # Check states for message requests
        if user.new_user:
            return bot_new_user_flow.request_handler(receiver, user)
        elif user.state == 'open':
            return parser(receiver, user)
        elif user.state == 'team_code_waiting':
            return bot_team_flow.request_handler(receiver, user)
        elif user.state == 'submission_waiting':
            return bot_project_flow.request_handler(receiver, user)
        return bot_messages.generic_error_message(user)

    except:
        return send_response()
Beispiel #10
0
def anything_else_message(user):
    text = 'Would you like to do anything else, ' + user.first_name + '?'
    menu_state = get_menu_state(user)
    quick_replies = []

    # Variable: Join Team and View Team
    if user.team_id is None and user.project_id:
        pass
    elif 'vteam' in menu_state:
        vteam_qr = QuickReply('text', title='View Team', payload='view_team')
        quick_replies.append(vteam_qr)
    else:
        jteam_qr = QuickReply('text', title='Join a Team', payload='join_team')
        quick_replies.append(jteam_qr)

    # Constants: View Schedule and View Map
    schedule_qr = QuickReply('text', title='View Schedule', payload='view_schedule')
    map_qr = QuickReply('text', title='View Map', payload='view_map')
    quick_replies.append(schedule_qr)
    quick_replies.append(map_qr)

    # Variable: Submit and View Team
    if 'osubmission' in menu_state:
        osubmission_qr = QuickReply('text', title='Submit Project', payload='submit_project')
        quick_replies.append(osubmission_qr)
    else:
        csubmission_qr = QuickReply('text', title='Check Project Status', payload='check_project')
        quick_replies.append(csubmission_qr)

    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'open'
        user.save()
    return send_response()
        def wrapped(request, *args, **kwargs):
            if request.headers.get("Cache-Control", "") == "no-cache":
                return f(request, *args, **kwargs)

            cache_obj = CacheDriver()
            cache_key = {
                "path": request.path,
                "method": request.method,
                "body": request.body,
                "params": request.params,
                "user_id": request.user['user_id']
            }
            response = cache_obj.get_cached_data(cache_key)
            if response:
                return send_response(
                    (json.loads(response), 200, [("Cache", "HIT")]))
            else:
                response = f(request, *args, **kwargs)
                if response.status_code == 200:
                    cache_obj.cache_data(key=cache_key,
                                         value=response.json_body,
                                         expiry_time=expiry_time,
                                         user_id=request.user['user_id'])
                    response.headers.extend({"Cache": "MISS"})
                return response
Beispiel #12
0
def request_handler(receiver, user):
    if receiver.get_request_type() == 'message':
        return message_handler(receiver, user)
    elif receiver.get_request_type() == 'postback':
        return postback_handler(receiver, user)

    return send_response()
Beispiel #13
0
def message_handler(receiver, user):
    text = receiver.get_text().lower()
    state = user.state
    if state == 'sign_up':
        return bot_messages.welcome_message(user)
    if state == 'sign_up_email_waiting':
        return email_handler(text, user)
    return send_response()
Beispiel #14
0
def welcome_message(user):
    text = 'Hi, I\'m Haley, the HackATL bot! Can you tell me the email you applied to HackATL with? That way I can set up your HackATL experience!'
    m = Message(text, user.messenger_id)
    m.send()
    print(str(m.get_response()) + user.messenger_id, file=sys.stderr)
    if m.get_status_code() == 200:
        user.state = 'sign_up_email_waiting'
        user.save()
    return send_response()
Beispiel #15
0
def team_ask_message(user):
    text = 'Do you want to create or join a team?'
    create_qr = QuickReply('text', title='Create', payload='create_team')
    join_qr = QuickReply('text', title='Join', payload='join_join_team')
    neither_qr = QuickReply('text', title='Neither', payload='menu')
    quick_replies = [create_qr, join_qr, neither_qr]

    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    return send_response()
Beispiel #16
0
def team_code_ask_success_message(team_id, user):
    text = 'You\'ve been added to Team ' + str(team_id) +'! Have a great time at HackATL!'
    ok_qr = QuickReply('text', title='Will Do!', payload='menu')
    quick_replies = [ok_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'open'
        user.save()
    return send_response()
Beispiel #17
0
def team_code_ask_message(user):
    text = 'What\'s the code for the team you want to join?'
    never_mind_qr = QuickReply('text', title='Never Mind', payload='menu')
    quick_replies = [never_mind_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'team_code_waiting'
        user.save()
    return send_response()
Beispiel #18
0
def project_file_success_message(user):
    text = 'Your project has been submitted! I will let you know about the first round later!'
    ok_ar = QuickReply('text', title='Ok', payload='menu')
    quick_replies = [ok_ar]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'open'
        user.save()
    return send_response()
Beispiel #19
0
def project_file_ask_message(user):
    text = 'Send me a link to your project. I recommend you put your project on Google Drive or Dropbox! Don\'t forget to make it public!'
    never_mind_qr = QuickReply('text', title='I\'m Not Ready', payload='menu')
    quick_replies = [never_mind_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'submission_waiting'
        user.save()
    return send_response()
Beispiel #20
0
def request_handler(receiver, user):
    if receiver.get_request_type() == 'message':
        if receiver.get_message_type() == 'quick_reply':
            return quick_reply_handler(receiver, user)
        elif receiver.get_message_type() == 'file':
            return attachment_handler(receiver, user)
        return message_handler(receiver, user)
    elif receiver.get_request_type() == 'postback':
        return postback_handler(receiver, user)

    return send_response()
Beispiel #21
0
def quick_reply_handler(receiver, user):
    payload = receiver.get_quick_reply_payload()

    if user.project_id:
        return check_project_handler(user)
    elif payload == 'submit_project':
        return bot_messages.project_file_ask_message(user)
    elif payload == 'check_project':
        return check_project_handler(user)

    return send_response()
Beispiel #22
0
def contact_handler(request, conn, match=True, method=None):
    template = 'contacts.html'
    if method == 'post':
        firstname = re.search(r'firstname=(\w+)', request).groups()[0]
        lastname = re.search(r'lastname=(\w+)', request).groups()[0]
        data = {
            'firstname': firstname,
            'lastname': lastname,
        }
        print(data)
        results = db_mng(firstname, lastname)
        print(results)
    content = render(template)
    resp = """\
	HTTP/1.1 200 OK

	{}
	""".format(content)

    send_response(resp, conn, match)
Beispiel #23
0
def project_file_failure_message(user):
    text = 'I\'m sorry, something went wrong with your submission. You must send me a link!'
    never_mind_qr = QuickReply('text', title='Never Mind', payload='menu')
    try_again_qr = QuickReply('text', title='Try Again', payload='submit_project')
    quick_replies = [try_again_qr, never_mind_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'open'
        user.save()
    return send_response()
Beispiel #24
0
def team_full_message(user):
    text = 'I\'m sorry, but that is not a valid code!'
    ok_qr = QuickReply('text', title='Ok', payload='menu')
    try_again_qr = QuickReply('text', title='Try Again', payload='join_join_team')
    quick_replies = [try_again_qr, ok_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    if m.get_status_code() == 200:
        user.state = 'open'
        user.save()
    return send_response()
Beispiel #25
0
def quick_reply_handler(receiver, user):
    payload = receiver.get_quick_reply_payload()

    if payload == 'join_team':
        return bot_messages.team_ask_message(user)
    elif payload == 'view_team':
        return view_team_handler(user)
    elif payload == 'join_join_team':
        return bot_messages.team_code_ask_message(user)
    elif payload == 'create_team':
        return create_team_handler(user)
    return send_response()
Beispiel #26
0
def parser(receiver, user):
    if receiver.get_request_type() == 'message' and receiver.get_message_type(
    ) == 'message':
        text = receiver.get_text().lower()
        if 'help' in text or 'menu' in text:
            return bot_messages.menu_message(user)
        elif 'when' in text or 'schedule' in text:
            return bot_messages.schedule_message(user)
        elif 'where' in text or 'map' in text:
            return bot_messages.map_message(user)
        elif 'project' in text or 'submit' in text or 'results' in text:
            return bot_project_flow.request_handler(receiver, user)
        elif 'team' in text:
            return bot_team_flow.request_handler(receiver, user)
        elif 'hi' in text or 'hey' in text or 'hello' in text or 'yo' in text:
            return bot_messages.greeting_message(user)
        else:
            bot_messages.generic_error_message(user, False)
            return bot_messages.menu_message(user)
    else:
        return send_response()
Beispiel #27
0
def postback_handler(receiver, user):
    return send_response()
Beispiel #28
0
def generic_error_message(user, response=True):
    text = 'I\'m sorry ' + user.first_name + ', I didn\'t quite understand that.'
    m = Message(text, user.messenger_id)
    m.send()
    if response:
        return send_response()
Beispiel #29
0
def email_failure_message(user):
    text = 'The email you gave me does\'t match our records. Please send me the email you applied to HackATL with!'
    m = Message(text, user.messenger_id)
    m.send()
    return send_response()
Beispiel #30
0
def project_status_message(user, text):
    ok_qr = QuickReply('text', title='Ok', payload='menu')
    quick_replies = [ok_qr]
    m = QuickReplyMessage(text, user.messenger_id, quick_replies)
    m.send()
    return send_response()