Ejemplo n.º 1
0
def send_generic_faculty(recipient, data, dep=""):
    data = urllib.parse.quote_plus(data)
    dep = urllib.parse.quote_plus(dep)
    if (dep):
        response = requests.get('https://uos.edu.pk/about/bot_faculty/' +
                                data + "/" + dep)
        result = response.json()
        if result:
            page.send(
                recipient,
                Template.Generic([
                    Template.GenericElement(
                        result[0]['name'],
                        subtitle=result[0]['designation'],
                        item_url="https://uos.edu.pk/faculty/profile/" +
                        result[0]['username'],
                        image_url="https://uos.edu.pk/uploads/faculty/profiles/"
                        + result[0]['picture'],
                        buttons=[
                            Template.ButtonWeb(
                                "Open Profile",
                                "https://uos.edu.pk/faculty/profile/" +
                                result[0]['username']),
                            Template.ButtonPhoneNumber("Contact",
                                                       '+92 48 9230879')
                        ])
                ]))
        else:
            send_message(
                recipient,
                'Sorry, but i am unable to Find' + data + " in " + dep)
            send_typing_off(recipient)
    else:
        response = requests.get('https://uos.edu.pk/about/bot_faculty/' + data)
        result = response.json()

        if result:
            page.send(
                recipient,
                Template.Generic([
                    Template.GenericElement(
                        result[0]['name'],
                        subtitle=result[0]['designation'],
                        item_url="https://uos.edu.pk/faculty/profile/" +
                        result[0]['username'],
                        image_url="https://uos.edu.pk/uploads/faculty/profiles/"
                        + result[0]['picture'],
                        buttons=[
                            Template.ButtonWeb(
                                "Open Profile",
                                "https://uos.edu.pk/faculty/profile/" +
                                result[0]['username']),
                            Template.ButtonPhoneNumber("Contact",
                                                       '+92 48 9230879')
                        ])
                ]))
        else:
            send_message(recipient, 'Sorry, but i am unable to Find' + data)
            send_typing_off(recipient)
Ejemplo n.º 2
0
def fb_receive_message():
    message_entries = json.loads(request.data.decode('utf8'))['entry']
    for entry in message_entries:
        for message in entry['messaging']:
            if message.get('message'):
                user_id = "{sender[id]}".format(**message)
                text = "{message[text]}".format(**message)
                res = bt.response(text, user_id)
                if res == "De rien":
                    client.send_image(user_id, conf.deRien)
                elif res == "merci":
                    client.send_image(user_id, conf.happy)
                elif res == "no":
                    client.send_image(user_id, conf.angry)
                elif res == "ah":
                    client.send_image(user_id, conf.bored)
                elif res == "quoi":
                    client.send_image(user_id, conf.busy)
                elif res == "lol":
                    client.send_image(user_id, conf.grand)
                elif (res == "ok"):
                    page.send(
                        user_id,
                        Template.Generic([
                            Template.GenericElement(
                                "rift",
                                subtitle="Next-generation virtual reality",
                                item_url="https://www.oculus.com/en-us/rift/",
                                image_url=conf.deRien,
                                buttons=[
                                    Template.ButtonWeb(
                                        "Open Web URL",
                                        "https://www.oculus.com/en-us/rift/"),
                                    Template.ButtonPostBack(
                                        "tigger Postback",
                                        "DEVELOPED_DEFINED_PAYLOAD"),
                                    Template.ButtonPhoneNumber(
                                        "Call Phone Number", "+16505551234")
                                ]),
                            Template.GenericElement(
                                "touch",
                                subtitle="Your Hands, Now in VR",
                                item_url="https://www.oculus.com/en-us/touch/",
                                image_url=conf.deRien,
                                buttons=[
                                    Template.ButtonWeb(
                                        "Open Web URL",
                                        "https://www.oculus.com/en-us/rift/"),
                                    Template.ButtonPostBack(
                                        "tigger Postback",
                                        "DEVELOPED_DEFINED_PAYLOAD"),
                                    Template.ButtonPhoneNumber(
                                        "Call Phone Number", "+16505551234")
                                ])
                        ]))
                else:
                    client.send_text(user_id, res)
    return "Ok"
Ejemplo n.º 3
0
def callback_picked_dept(payload, event, data, raw_data, page):
    sender_id = event.sender_id
    message = payload.split('_')[1]
    print(message)
    tech_idx = data[0].index('technical')
    if message.lower() in [dept for dept in data[1][tech_idx]]:
        dept_idx = data[1][tech_idx].index(message)
        generic_template = []
        for event in data[2][dept_idx]:
            generic_template.append(
                Template.GenericElement(
                    event,
                    subtitle=data[1][tech_idx][dept_idx] + ' - ' +
                    raw_data['technical'][dept_idx]['alis'],
                    image_url=get_icon_from_name(
                        raw_data['technical'][dept_idx]['events'][
                            data[2][dept_idx].index(event)]['name']),
                    buttons=[
                        Template.ButtonPhoneNumber(
                            "Contact", '+91' + raw_data['technical'][dept_idx]
                            ['events'][data[2][dept_idx].index(
                                event)]['managers'][0]['phone']),
                        Template.ButtonPostBack('Details', "TECH_" + event)
                    ]))
        page.send(sender_id, Template.Generic(generic_template))
Ejemplo n.º 4
0
def send_button(recipient):
    page.send(
        recipient,
        Template.Buttons("hello", [
            Template.ButtonWeb("Open Web URL",
                               "https://www.oculus.com/en-us/rift/"),
            Template.ButtonPostBack("trigger Postback",
                                    "DEVELOPED_DEFINED_PAYLOAD"),
            Template.ButtonPhoneNumber("Call Phone Number", "+16505551234")
        ]))
Ejemplo n.º 5
0
def send_button(recipient):
    """
    Shortcuts are supported
    page.send(recipient, Template.Buttons("hello", [
        {'type': 'web_url', 'title': 'Open Web URL', 'value': 'https://www.oculus.com/en-us/rift/'},
        {'type': 'postback', 'title': 'tigger Postback', 'value': 'DEVELOPED_DEFINED_PAYLOAD'},
        {'type': 'phone_number', 'title': 'Call Phone Number', 'value': '+16505551234'},
    ]))
    """
    page.send(recipient, Template.Buttons("hello", [
        Template.ButtonWeb("Open Web URL", "https://www.oculus.com/en-us/rift/"),
        Template.ButtonPostBack("trigger Postback", "DEVELOPED_DEFINED_PAYLOAD"),
        Template.ButtonPhoneNumber("Call Phone Number", "+16505551234")
    ]))
Ejemplo n.º 6
0
def callback_clicked_tech(payload, event, data, raw_data, page):
    sender_id = event.sender_id
    message = payload.split('_')[1]
    print(message)
    category_idx = -1
    event_idx = -1

    for event_list in data[2]:
        for event_name in event_list:
            if event_name == message:
                category_idx = data[2].index(event_list)
                event_idx = event_list.index(event_name)

    if category_idx == -1:
        return

    event_raw_data = raw_data['technical'][category_idx]['events'][event_idx]
    print(event_raw_data)
    round_str = ''
    for n, my_round in enumerate(event_raw_data['rounds'], 1):
        round_str += 'Round ' + str(n) + ':'
        round_str += '\n' + str(my_round) + '\n\n'

    generic_list = [
        Template.GenericElement(title=event_raw_data['name'],
                                subtitle=event_raw_data['tagline'],
                                image_url=get_icon_from_name(
                                    event_raw_data['name'])),
        Template.GenericElement(title='Entry Fee: ',
                                subtitle=event_raw_data['fees'])
    ]

    if len(event_raw_data['managers']) == 0:  # If no manager exists
        managers = None
    else:
        managers = [
            Template.ButtonPhoneNumber(
                "Call Manager",
                "+91" + str(event_raw_data['managers'][i]['phone']))
            for i in range(0, len(event_raw_data['managers'])) if i < 1
        ]
    send_str = round_str

    page.send(
        sender_id,
        Template.List(elements=generic_list,
                      top_element_style='large',
                      buttons=managers))
    page.send(sender_id, send_str)
Ejemplo n.º 7
0
def message_handler(event):
    restaurant = facebook.receive_message(event)
    if restaurant is None:
        page.send(event.sender_id, 'Sorry, I couldn\'t find a place with that '
            'description')
    else:
        page.send(event.sender_id,
            Template.Generic([
                Template.GenericElement(
                    restaurant.name,
                    subtitle='\n'.join(restaurant.raw_yelp_data.get('display_address', [])),
                    image_url=restaurant.raw_yelp_data.get('image_url'),
                    buttons=[
                        Template.ButtonWeb("View in Yelp",
                                           restaurant.raw_yelp_data['url']),
                        Template.ButtonPhoneNumber("Call",
                                                   restaurant.raw_yelp_data.get('phone'))
                    ]
                )
            ])
        )
Ejemplo n.º 8
0
def send_generic(recipient):
    page.send(
        recipient,
        Template.Generic([
            Template.GenericElement(
                "rift",
                subtitle="Next-generation virtual reality",
                item_url="https://www.oculus.com/en-us/rift/",
                image_url=CONFIG['SERVER_URL'] + "/assets/rift.png",
                buttons=[
                    Template.ButtonWeb("Open Web URL",
                                       "https://www.oculus.com/en-us/rift/"),
                    Template.ButtonPostBack("tigger Postback",
                                            "DEVELOPED_DEFINED_PAYLOAD"),
                    Template.ButtonPhoneNumber("Call Phone Number",
                                               "+16505551234")
                ]),
            Template.GenericElement(
                "touch",
                subtitle="Your Hands, Now in VR",
                item_url="https://www.oculus.com/en-us/touch/",
                image_url=CONFIG['SERVER_URL'] + "/assets/touch.png",
                buttons=[
                    {
                        'type': 'web_url',
                        'title': 'Open Web URL',
                        'value': 'https://www.oculus.com/en-us/rift/'
                    },
                    {
                        'type': 'postback',
                        'title': 'tigger Postback',
                        'value': 'DEVELOPED_DEFINED_PAYLOAD'
                    },
                    {
                        'type': 'phone_number',
                        'title': 'Call Phone Number',
                        'value': '+16505551234'
                    },
                ])
        ]))
Ejemplo n.º 9
0
def message_handler(event):
    """:type event: fbmq.Event"""
    sender_id = event.sender_id
    message = event.message_text

    # try Menu
    buttons = [
        Template.ButtonWeb("Open Web URL", "https://www.codeforces.com"),
        Template.ButtonPostBack("Subscribe", "www.nytimes.com"),
        Template.ButtonPhoneNumber("Call Phone Number", "+91")
    ]

    user_profile = page.get_user_profile(sender_id)

    page.typing_on(sender_id)
    page.typing_off(sender_id)

    #print(user_profile)
    if bot(message,sender_id):
        print("Bot results")
    else:
        page.send(sender_id,"Didn't get you ")
Ejemplo n.º 10
0
def show_branch(recipient):
    page.send(
        recipient,
        Template.Generic([
            Template.GenericElement(
                "Seven Suns Hotel Template",
                subtitle="Nairobi Branch",
                item_url="https://sevensuns.com",
                image_url=
                "https://taj.tajhotels.com/content/dam/luxury/hotels/Taj_Mahal_Delhi/images/4x3/HotelFacade4x3.jpg",
                buttons=[
                    # Template.ButtonWeb("Open Web URL", "https://www.oculus.com/en-us/rift/"),
                    Template.ButtonPostBack("Select Branch", "SELECT_BRANCH"),
                    Template.ButtonPhoneNumber("Call Branch", "+16505551234")
                ]),
            Template.GenericElement(
                "Seven Suns Hotel Template",
                subtitle="Mombasa Branch",
                item_url="https://sevensuns.com",
                image_url=
                "https://www.safarihotelsnamibia.com/wp-content/uploads/2014/11/Safari-Court-Hotel-Pool.jpg",
                buttons=[
                    # {'type': 'web_url', 'title': 'Open Web URL',
                    #  'value': 'https://www.oculus.com/en-us/rift/'},
                    {
                        'type': 'postback',
                        'title': 'Select Branch',
                        'value': 'SELECT_BRANCH'
                    },
                    {
                        'type': 'phone_number',
                        'title': 'Call Branch',
                        'value': '+16505551234'
                    },
                ])
        ]))
Ejemplo n.º 11
0
def callback_picked_category(payload, event, data, raw_data, page):
    sender_id = event.sender_id
    message = payload.split('__')[1]
    idx = data[0].index(message)
    quick_replies = []

    if message == 'technical':
        for category in data[1][idx]:
            quick_replies.append(
                QuickReply(title=category, payload='PICK_' + category))
        page.send(sender_id,
                  "Please Select a department",
                  quick_replies=quick_replies,
                  metadata="DEVELOPER_DEFINED_METADATA")
    else:
        generic_template = []
        i = 1
        if message.lower() == 'adventure':
            for event in data[1][idx]:
                generic_template.append(
                    Template.GenericElement(
                        event,
                        subtitle=message,
                        image_url=get_icon_from_name(raw_data[message][
                            data[1][idx].index(event)]['name']),
                        buttons=[
                            Template.ButtonPostBack('Details',
                                                    "OTHER_" + event)
                        ]))
                i += 1
        else:
            for event in data[1][idx]:
                generic_template.append(
                    Template.GenericElement(
                        event,
                        subtitle=message,
                        image_url=get_icon_from_name(raw_data[message][
                            data[1][idx].index(event)]['name']),
                        buttons=[
                            Template.ButtonPhoneNumber(
                                "Contact",
                                '+91' + raw_data[message][data[1][idx].index(
                                    event)]['managers'][0]['phone']),
                            Template.ButtonPostBack('Details',
                                                    "OTHER_" + event)
                        ]))
                i += 1
        if i > 20:
            page.send(
                sender_id,
                Template.Generic([generic_template[z] for z in range(0, 10)]))
            page.send(
                sender_id,
                Template.Generic([generic_template[z] for z in range(10, 20)]))
            page.send(
                sender_id,
                Template.Generic([
                    generic_template[z]
                    for z in range(20, len(generic_template))
                ]))
        elif i > 10:
            page.send(
                sender_id,
                Template.Generic([generic_template[z] for z in range(0, 10)]))
            page.send(
                sender_id,
                Template.Generic([
                    generic_template[z]
                    for z in range(10, len(generic_template))
                ]))
        elif i <= 10:
            page.send(sender_id, Template.Generic(generic_template))
Ejemplo n.º 12
0
def send_generic(recipient, type, data=""):
    data = urllib.parse.quote_plus(data)
    if (type == "dep"):
        if (data):

            response = requests.get(
                'https://uos.edu.pk/about/bot_department/' + data)
            result = response.json()

            if result:
                page.send(
                    recipient,
                    Template.Generic([
                        Template.GenericElement(
                            result[0]['name'],
                            subtitle="Department of " + result[0]['name'],
                            item_url="https://uos.edu.pk/department/profile/" +
                            result[0]['id'],
                            image_url=
                            "https://uos.edu.pk/uploads/departments/banner/" +
                            result[0]['banner'],
                            buttons=[
                                Template.ButtonWeb(
                                    "Academic Programs",
                                    "https://uos.edu.pk/department/academic_programs/"
                                    + result[0]['id']),
                                Template.ButtonWeb(
                                    "Faculty",
                                    "https://uos.edu.pk/department/faculty_list/"
                                    + result[0]['id']),
                                Template.ButtonPhoneNumber(
                                    "Phone", '+92 48 9230879')
                            ])
                    ]))
    elif type == "hod":
        if (data):
            print(data)
            response = requests.get('https://uos.edu.pk/about/bot_hod/' + data)
            result = response.json()
            print(result)
            print("result section there")
            if result:
                page.send(
                    recipient,
                    Template.Generic([
                        Template.GenericElement(
                            result[0]['name'],
                            subtitle=result[0]['designation'],
                            item_url="https://uos.edu.pk/faculty/profile/" +
                            result[0]['username'],
                            image_url=
                            "https://uos.edu.pk/uploads/faculty/profiles/" +
                            result[0]['picture'],
                            buttons=[
                                Template.ButtonWeb(
                                    "Open Profile",
                                    "https://uos.edu.pk/faculty/profile/" +
                                    result[0]['username']),
                                Template.ButtonPhoneNumber(
                                    "Contact", '+92 48 9230879')
                            ])
                    ]))
Ejemplo n.º 13
0
def send_generic(recipient, type, data=True):
    if (type == "dep"):
        page.send(
            recipient,
            Template.Generic([
                Template.GenericElement(
                    "CS & IT",
                    subtitle=
                    "Department of Computer Science & Information Technology",
                    item_url="https://uos.edu.pk/department/profile/2",
                    image_url=
                    "https://uos.edu.pk/uploads/departments/banner/IT.jpg",
                    buttons=[
                        Template.ButtonWeb(
                            "Academic Programs",
                            "https://uos.edu.pk/department/academic_programs/2"
                        ),
                        Template.ButtonWeb(
                            "Faculty",
                            "https://uos.edu.pk/department/faculty_list/2"),
                        Template.ButtonPhoneNumber("Contact", "+16505551234")
                    ])
            ]))
    elif type == "hod":
        page.send(
            recipient,
            Template.Generic([
                Template.GenericElement(
                    "Mr. Saad Razzaq",
                    subtitle="Assistant Professor / Incharge",
                    item_url=
                    "https://uos.edu.pk/faculty/profile/muhammadsaadrazzaq",
                    image_url=
                    "https://uos.edu.pk/uploads/faculty/profiles/Saad_Razzaq.JPG",
                    buttons=[
                        Template.ButtonWeb(
                            "Open Profile",
                            "https://uos.edu.pk/faculty/profile/muhammadsaadrazzaq"
                        ),
                        Template.ButtonPhoneNumber("Contact", "+92489230879")
                    ])
            ]))
    elif type == "faculty":
        response = requests.get('https://uos.edu.pk/about/bot_faculty/' + data)
        result = response.json()
        if result:
            page.send(
                recipient,
                Template.Generic([
                    Template.GenericElement(
                        result[0]['name'],
                        subtitle=result[0]['designation'],
                        item_url="https://uos.edu.pk/faculty/profile/" +
                        result[0]['username'],
                        image_url="https://uos.edu.pk/uploads/faculty/profiles/"
                        + result[0]['picture'],
                        buttons=[
                            Template.ButtonWeb(
                                "Open Profile",
                                "https://uos.edu.pk/faculty/profile/" +
                                result[0]['username']),
                            Template.ButtonPhoneNumber("Contact",
                                                       result[0]['mobile_no'])
                        ])
                ]))
        else:
            send_message(recipient, 'No User found in our Database')
            send_typing_off(recipient)
Ejemplo n.º 14
0
def message_handler(event):
    """:type event: fbmq.Event"""

    sender_id = event.sender_id
    message = event.message_text

    # try Menu
    buttons = [
        Template.ButtonWeb("Open Web URL", "https://www.codeforces.com"),
        Template.ButtonPostBack("Subscribe", "www.nytimes.com"),
        Template.ButtonPhoneNumber("Call Phone Number", "+91")
    ]

    user_profile = page.get_user_profile(sender_id)

    page.typing_on(sender_id)
    page.typing_off(sender_id)
    print("=" * 100)

    if "username" in message.lower():
        hostname, username, password = message.split("\n")
        hostname = hostname[9:]
        password = password[9:]
        username = username[9:]

        print(hostname, username, password, sender_id)
        current_path = str(
            shell_commands(hostname, username, password,
                           "pwd").decode("utf-8"))[:-1]
        addUser(sender_id, hostname, username, password, current_path)

        page.send(sender_id, "Go Ahead! Have Fun! ")
    elif "help" in message:
        page.send(sender_id, "Just 3 easy steps to follow 🚶")
        page.send(
            sender_id,
            Template.Generic([
                Template.GenericElement(
                    "Connect 🤝",
                    subtitle="",
                    item_url="",
                    image_url="https://i.imgur.com/xXy4kib.png",
                    buttons=[
                        Template.ButtonWeb(
                            "Step 1", "https://www.oculus.com/en-us/rift/")
                    ]),
                Template.GenericElement(
                    "Add ➕",
                    subtitle="",
                    item_url="",
                    image_url="https://i.imgur.com/RzjPKZM.png",
                    buttons=[
                        Template.ButtonWeb(
                            "Step 2", "https://www.oculus.com/en-us/rift/")
                    ]),
                Template.GenericElement(
                    "Go ✅",
                    subtitle="",
                    item_url="",
                    image_url="https://i.imgur.com/NmNXnc7.png",
                    buttons=[
                        Template.ButtonWeb(
                            "Step 3", "https://www.oculus.com/en-us/rift/")
                    ])
            ]))
    else:
        response = getUser(sender_id)

        if not response:
            quick_replies = [
                QuickReply(title="Yeah !", payload="PICK_SSH"),
                QuickReply(title="Nah ", payload="PICK_NSSH")
            ]
            page.send(sender_id,
                      "Would you like to configure your ssh ",
                      quick_replies=quick_replies,
                      metadata="DEVELOPER_DEFINED_METADATA")
        else:
            # print(hostname,username,password,message)
            hostname, username, password, current_path = response

            if message[:2] == "cd":
                # add cd
                need_path = message[3:]
                current_path = os.path.join(current_path, need_path)
                try:
                    new_path = str(
                        shell_commands(hostname, username, password,
                                       "cd " + current_path +
                                       "; pwd").decode("utf-8"))[:-1]
                    updatePath(sender_id, new_path)
                    page.send(sender_id,
                              "Your Current Directory:\n" + new_path)
                except:
                    page.send(sender_id, "Path doesn't exist")
            elif "send" in message:
                file_name = message.split()[-1]
                if send_commands(current_path + "/" + file_name, file_name,
                                 hostname, username, password):
                    debug(659)
                    print(CONFIG['SERVER_URL'] + "/" + file_name)
                    os.rename("./" + file_name, "./static/" + file_name)
                    page.send(sender_id, "Here You Go!")
                    page.send(
                        sender_id,
                        Attachment.File(CONFIG['SERVER_URL'] + "/static/" +
                                        file_name))
                else:
                    page.send(sender_id, "Error Accessing the file !!")
            elif message != "Nah ":
                try:
                    result = str(
                        shell_commands(hostname, username, password,
                                       "cd " + current_path + "; " +
                                       message).decode("utf-8"))
                    result = result[:min(150, len(result))]
                    page.send(sender_id, result)
                except:
                    page.send(sender_id, "Unknown Output!")

            print("Bot results!")
Ejemplo n.º 15
0
def send_button(recipient):
    page.send(recipient, Template.Buttons(".", [
        Template.ButtonWeb("Open Web URL", "https://www.oculus.com/en-us/rift/"),
        Template.ButtonPostBack("Opción de tránsito", "OPCION_DE_TRANSITO"),
        Template.ButtonPhoneNumber("Call Phone Number", "+16505551234")
    ]))
Ejemplo n.º 16
0
##########################################
# generic button template
page.send(
    recipient_id,
    Template.Generic([
        Template.GenericElement(
            "rift",
            subtitle="Next-generation virtual reality",
            item_url="https://www.oculus.com/en-us/rift/",
            image_url=CONFIG['SERVER_URL'] + "/assets/rift.png",
            buttons=[
                Template.ButtonWeb("Open Web URL",
                                   "https://www.oculus.com/en-us/rift/"),
                Template.ButtonPostBack("tigger Postback",
                                        "DEVELOPED_DEFINED_PAYLOAD"),
                Template.ButtonPhoneNumber("Call Phone Number", "+16505551234")
            ]),
        Template.GenericElement(
            "touch",
            subtitle="Your Hands, Now in VR",
            item_url="https://www.oculus.com/en-us/touch/",
            image_url=CONFIG['SERVER_URL'] + "/assets/touch.png",
            buttons=[
                Template.ButtonWeb("Open Web URL",
                                   "https://www.oculus.com/en-us/rift/"),
                Template.ButtonPostBack("tigger Postback",
                                        "DEVELOPED_DEFINED_PAYLOAD"),
                Template.ButtonPhoneNumber("Call Phone Number", "+16505551234")
            ])
    ]))
#############################################