Example #1
0
def subscribe_news(sender_id):

    user_profile = page.get_user_profile(sender_id)  # return dict
    first_name = user_profile["first_name"]
    last_name = user_profile["last_name"]
    id_user = user_profile["id"]

    # kiem tra user, neu chua co thi them vao database
    check_user = USER.find_one({'id_user': sender_id})
    if bool(check_user):
        # pass
        # page.send(sender_id, "user da co trong database")
        print('user da co trong database')
    else:
        insert_new_user(first_name, last_name, id_user)

    question = "Bằng cách đồng ý theo dõi tin tức dưới đây, bạn sẽ nhận được thông báo mỗi khi tin tức mới của chương trình “Giọng Hát Việt Nhí” 2017 được cập nhật.\nBạn muốn nhận thông báo chứ?"
    quick_replies = [
        QuickReply(title="1 tuần 1 lần 😋", payload="yes1"),
        QuickReply(title="1 tuần 2 lần 😈", payload="yes2"),
        QuickReply(title="Nhắc lại sau 😜", payload="no")
    ]
    page.send(sender_id,
              question,
              quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")

    return
Example #2
0
def fansign_menu(sender_id):
    user_profile = page.get_user_profile(sender_id)
    first_name = user_profile["first_name"]
    last_name = user_profile["last_name"]
    id_user = user_profile["id"]
    print(last_name + ' ' + first_name)

    check_user = USER.find_one({'id_user': sender_id})
    if bool(check_user):
        print('user da co trong database')
    else:
        insert_new_user(first_name, last_name, id_user)

    space = " "
    a = "ơi, bạn muốn nhận fansign từ HLV nào?"
    seq = (last_name, first_name, a)
    question = space.join(seq)

    quick_replies = [
        QuickReply(title="Soobin", payload="sb"),
        QuickReply(title="Vũ Cát Tường", payload="vct"),
        QuickReply(title="Hương Tràm", payload="ht"),
        QuickReply(title="Tiên Cookie", payload="tc")
    ]
    page.send(sender_id, question, quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")
    return
Example #3
0
def handle_faq_quickreply(sender_id, quickreply_dict):
    length = len(quickreply_dict)
    print('length of quick_reply_dict ', length)
    print(quickreply_dict)

    if length > 3:
        # length = 4
        cat_id = quickreply_dict[1]
        subcat_id = quickreply_dict[2]
        qa_id = quickreply_dict[3]
        result = FAQ2.find_one(
            {'level': '3', 'cat_id': cat_id, 'subcat_id': subcat_id, 'qa_id': qa_id})
        # print(result)
        text = result['answer']
        buttons = [
            Template.ButtonPostBack(
                "Home", "home")
        ]
        page.send(sender_id, Template.Buttons(text, buttons))

    elif length > 2:
        # length = 3
        print('quick_reply: co cat_id, co subcat_id, khong co qa_id')
        cat_id = quickreply_dict[1]
        subcat_id = quickreply_dict[2]
        question = 'Hee, câu hỏi nào sẽ giúp mình giải đáp thắc mắc của bạn 😇'
        cursor_qa = FAQ2.find(
            {'level': '3', 'cat_id': cat_id, 'subcat_id': subcat_id})
        dict_qa = []
        for i in cursor_qa:
            dict_qa.append(i)
        # print('dict_qa la ', dict_qa)
        quick_replies = []
        for qa in dict_qa:
            question = question + \
                ('\n' + str(dict_qa.index(qa) + 1) + '. ' + qa['question'])
            payload = '>' + cat_id + '>' + subcat_id + '>' + qa['qa_id']
            quick_replies.append(QuickReply(
                title=str(dict_qa.index(qa) + 1), payload=payload))
        page.send(sender_id,
                  question,
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")
    else:
        # length = 2
        print('quick_reply: co cat_id, khong co subcat_id')
        cat_id = quickreply_dict[1]
        dict_subcat = FAQ2.find({'level': '2', 'cat_id': cat_id})
        question = 'Giúp mình tìm câu trả lời nhé, bạn muốn tìm biết về mục nào của chương trình 😜'
        quick_replies = []
        for subcat in dict_subcat:
            payload = '>' + cat_id + '>' + subcat['subcat_id']
            quick_replies.append(QuickReply(
                title=subcat['subcat_title'], payload=payload))
        page.send(sender_id,
                  question,
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")
Example #4
0
def send_quick_reply(recipient):
    """
    shortcuts are supported
    page.send(recipient, "What's your favorite movie genre?",
                quick_replies=[{'title': 'Action', 'payload': 'PICK_ACTION'},
                               {'title': 'Comedy', 'payload': 'PICK_COMEDY'}, ],
                metadata="DEVELOPER_DEFINED_METADATA")
    """
    page.send(recipient, "What's your favorite movie genre?",
              quick_replies=[QuickReply(title="Action", payload="PICK_ACTION"),
                             QuickReply(title="Comedy", payload="PICK_COMEDY")],
              metadata="DEVELOPER_DEFINED_METADATA")
Example #5
0
def handle_subscribe_1(sender_id):
    question = "Bằng cách đồng ý theo dõi, để nhận các tin tức mới nhất của Giọng Hát Việt Nhí 2017, các nhắc nhở giờ phát sóng của tập mới, bạn muốn nhận thông báo chứ?"
    quick_replies = [
        QuickReply(title="1 tuần 1 lần 😋", payload="yes1"),
        QuickReply(title="1 tuần 2 lần 😈", payload="yes2"),
        QuickReply(title="Nhắc lại sau 😜", payload="no")
    ]
    page.send(sender_id,
              question,
              quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")

    return
Example #6
0
def subscribe(sender_id):
    question = "Bằng cách đồng ý theo dõi tin tức dưới đây, bạn sẽ nhận được thông báo mỗi khi tin tức mới của chương trình được cập nhật.\nBạn muốn nhận thông báo chứ?"
    quick_replies = [
        QuickReply(title="1 tuần 1 lần 😋", payload="yes1"),
        QuickReply(title="1 tuần 2 lần 😈", payload="yes2"),
        QuickReply(title="Nhắc lại sau 😜", payload="no")
    ]
    cdhh.send(sender_id,
              question,
              quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")

    return 'subscribe OK'
Example #7
0
def minigame1_vote(sender_id):
    question = "Bạn dự đoán thí sinh thuộc đội của huấn luyện viên nào sẽ xuất sắc giành lấy ngôi vị quán quân của chương trình?"
    quick_replies = [
        QuickReply(title="#teamcôTường", payload="Vũ Cát Tường"),
        QuickReply(title="#teamcôTiênvàcôTràm",
                   payload="Tiên Cookie và Hương Tràm"),
        QuickReply(title="#teamchúSoobin", payload="Soobin")
    ]
    page.send(sender_id,
              question,
              quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")

    return
Example #8
0
def find_cat(sender_id, word_dict, message):
    dict_cat = {}
    count_word_in_cat = 0
    chosen_cat = {}
    for cat_document in FAQ2.find({'level': '1'}):
        for word in word_dict:
            if word in cat_document['cat_keyword']:
                count_word_in_cat = count_word_in_cat + 1
        dict_cat.update({cat_document['cat_title']: count_word_in_cat})
        count_word_in_cat = 0
        # print (dict_cat)

    # gom cac cat_title co count_word_in_cat giong nhau lai
    flipped = {}
    for key, value in dict_cat.items():
        if value not in flipped:
            flipped[value] = [key]
        else:
            flipped[value].append(key)
    # print(flipped)

    # xep lai de thanh maximum
    maximum_key = max(flipped)
    maximum_value = flipped[maximum_key]
    # print('maximum value cua find_cat la ', maximum_value, maximum_key)

    if len(maximum_value) == 1 and maximum_key > 0:  # chi co 1 cat co so luong keyword la max
        # print(maximum_value[0])
        chosen_cat = FAQ2.find_one(
            {'level': '1', 'cat_title': maximum_value[0]})
        # text = 'da chon dc cat ' + chosen_cat['cat_title']
        # page.send(sender_id, text)
        # return chosen_cat

    # co nhieu cat co so luong keyword max bang nhau
    elif len(maximum_value) > 1 and maximum_key > 0:
        question = 'Giúp mình tìm câu trả lời nhé, bạn muốn tìm biết về mục nào của chương trình 😜'
        quick_replies = []
        for cat_title in maximum_value:
            payload = '>' + \
                FAQ2.find_one({'level': '1', 'cat_title': cat_title})['cat_id']
            quick_replies.append(QuickReply(
                title=cat_title, payload=payload))
        page.send(sender_id,
                  question,
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")

    else:  # khong co cat nao, max = 0
        new_nofaq = {'message': message, 'id_user': sender_id}
        NOFAQ.insert_one(new_nofaq)
        print('khong tim thay cau hoi trong FAQ2, vao NOFAQ de xem')
        text = "Oops..!Hiện tại mình chưa có dữ liệu câu hỏi của bạn, mình sẽ cập nhật và trả lời bạn sớm nhất. Hãy tiếp tục kết nối với chương trình qua các tính năng khác bạn nhé!😬😬"
        buttons = [
            Template.ButtonPostBack(
                "Home", "home")
        ]
        page.send(sender_id, Template.Buttons(text, buttons))

    return chosen_cat
Example #9
0
def find_qa(sender_id, word_dict, chosen_subcat):
    dict_qa = {}
    count_word_in_qa = 0
    chosen_qa = {}
    # print('chosen_subcat trong find_qa', chosen_subcat)
    for qa_document in FAQ2.find({
            'level': '3',
            'cat_id': chosen_subcat['cat_id'],
            'subcat_id': chosen_subcat['subcat_id']
    }):
        for word in word_dict:
            if word in qa_document['qa_keyword']:
                count_word_in_qa = count_word_in_qa + 1
        dict_qa.update({qa_document['question']: count_word_in_qa})
        count_word_in_qa = 0
    # print ('dict_qa ', dict_qa)

    # gom cac cat_title co count_word_in_cat giong nhau lai
    flipped = {}
    for key, value in dict_qa.items():
        if value not in flipped:
            flipped[value] = [key]
        else:
            flipped[value].append(key)
    # print('flipped trong find_qa ', flipped)

    # xep lai de thanh maximum
    maximum_key = max(flipped)
    maximum_value = flipped[maximum_key]
    # print('maximum value cua qa la ', maximum_value)

    if len(maximum_value) == 1:  # chi co 1 cat co so luong keyword la max
        # print(maximum_value[0])
        chosen_qa = FAQ2.find_one({'level': '3', 'question': maximum_value[0]})
        text = chosen_qa['answer']
        page.send(sender_id, text)
        # return chosen_qa

    else:  # len(maximum_value) > 1
        text = 'Câu hỏi nào giống với ý của nhất? 😋'
        quick_replies = []
        for question in maximum_value:
            text = text + \
                ('\n' + str(maximum_value.index(question) + 1) + '. ' + question)
            qa = FAQ2.find_one({
                'level': '3',
                'cat_id': chosen_subcat['cat_id'],
                'subcat_id': chosen_subcat['subcat_id']
            })
            payload = '>' + chosen_subcat['cat_id'] + '>' + \
                chosen_subcat['subcat_id'] + '>' + qa['qa_id']
            quick_replies.append(
                QuickReply(title=str(maximum_value.index(question) + 1),
                           payload=payload))
        page.send(sender_id,
                  text,
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")
    return chosen_qa
Example #10
0
def find_subcat(sender_id, word_dict, chosen_cat):
    dict_subcat = {}
    count_word_in_subcat = 0
    chosen_subcat = {}
    # print('chosen_cat ', chosen_cat)
    for subcat_document in FAQ2.find({
            'level': '2',
            'cat_id': chosen_cat['cat_id']
    }):
        for word in word_dict:
            if word in subcat_document['subcat_keyword']:
                count_word_in_subcat = count_word_in_subcat + 1
        dict_subcat.update(
            {subcat_document['subcat_title']: count_word_in_subcat})
        count_word_in_subcat = 0
        # print (dict_subcat)

    # gom cac cat_title co count_word_in_cat giong nhau lai
    flipped = {}
    for key, value in dict_subcat.items():
        if value not in flipped:
            flipped[value] = [key]
        else:
            flipped[value].append(key)
    # print(flipped)

    # xep lai de thanh maximum
    maximum_key = max(flipped)
    maximum_value = flipped[maximum_key]
    # print('maximum value la ', maximum_value)

    if len(maximum_value) == 1:  # chi co 1 cat co so luong keyword la max
        # print(maximum_value[0])
        chosen_subcat = FAQ2.find_one({
            'level': '2',
            'subcat_title': maximum_value[0],
            'cat_id': chosen_cat['cat_id']
        })
        # text = 'da chon dc subcat ' + chosen_subcat['subcat_id']
        # page.send(sender_id, text)
        # return chosen_subcat

    else:  # len(maximum_value) > 1
        question = 'Hee, câu hỏi nào sẽ giúp mình giải đáp thắc mắc của bạn 😇'
        quick_replies = []
        for subcat_title in maximum_value:
            subcat = FAQ2.find_one({
                'level': '2',
                'cat_id': chosen_cat['cat_id'],
                'subcat_title': subcat_title
            })
            payload = '>' + chosen_cat['cat_id'] + '>' + subcat['subcat_id']
            quick_replies.append(
                QuickReply(title=subcat_title, payload=payload))
        page.send(sender_id,
                  question,
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")
    return chosen_subcat
Example #11
0
def vote_menu(sender_id):
    question = 'Bình chọn ngay cho thí sinh bạn yêu thích nhất ngay nào! Bạn thuộc'
    quick_replies = [
        QuickReply(title="Team Mai Tiến Dũng", payload="Team Mai Tiến Dũng"),
        QuickReply(title="Team Giang Hồng Ngọc",
                   payload="Team Giang Hồng Ngọc"),
        QuickReply(title="Team Đào Bá Lộc", payload="Team Đào Bá Lộc"),
        QuickReply(title='Team Tiêu Châu Như Quỳnh',
                   payload='Team Tiêu Châu Như Quỳnh'),
        QuickReply(title='Team Erik', payload='Team Erik'),
        QuickReply(title='Team Hòa Mizy', payload='Team Hòa Mizy'),
        QuickReply(title='Team Đức Phúc', payload='Team Đức Phúc')
    ]
    cdhh.send(sender_id,
              question,
              quick_replies=quick_replies,
              metadata="DEVELOPER_DEFINED_METADATA")
    return 'vote_menu OK'