コード例 #1
0
ファイル: bot.py プロジェクト: Chen-Han/carpool_scraper
def get_response(msg,fb_id):
    try:
        msg = msg.strip().lower() #normalize
        service.add_user_if_not_exists(fb_id)
        if(len(msg)==0):
            return "Sorry, I did not receive your message. Try again?"
        if(_help_re.match(msg)):
            return get_help_message()
        if (_cancel_re.match(msg)):
            cancel_result = service.cancel_reminder(fb_id)
            if(cancel_result > 0):
                return "Cancelled the %d reminder(s) that you set" % cancel_result
            else:
                return "No reminders were set, no need to cancel" 

        request_info = request_analyzer.parse_request(msg)
        show_result = _show_re.match(msg)
        if (show_result and request_info):
            posts = service.filter_carpool_posts(request_info)
            return get_post_list_message(posts)
        elif(show_result):
            return get_invalid_request_info_message()

        remind_result = _remind_re.match(msg)
        if (remind_result and request_info):
            service.store_reminder(fb_id,request_info)
            return get_reminder_set_message(request_info)
        elif (remind_result):
            return get_invalid_request_info_message()
        return get_not_recognized_command_message()
    except Exception as e:
        print(e)
        exc_type, exc_value, exc_traceback = sys.exc_info()
        print "*** print_tb:"
        traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
        print "*** print_exception:"
        traceback.print_exception(exc_type, exc_value, exc_traceback,
                                  limit=2, file=sys.stdout)
        print "*** print_exc:"
        traceback.print_exc()
        return get_error_message()