Ejemplo n.º 1
0
def handle_fb_dictionary(dct, msg, sender):
    if dct == 'urb':
        details = urban_dict.word_to_defn_messenger(msg)
    else:
        details = eng_dict.get_word_defns(msg, 'messenger')
    link = details.get('link', None)
    # 2 defns for urban dictionary as the definitions are too long
    # very often
    limit = 3 if dct != 'urb' else 2
    for defn in details['defns'][:limit]:
        LOG.info(defn)
        messenger_utils.send_reply(sender, defn)
    if link:
        LOG.info('{}'.format(link))
        messenger_utils.send_reply(
            sender, 'For more details visit {}'.format(link))
Ejemplo n.º 2
0
def messenger():
    try:
        challenge = messenger_utils.check_challenge()
        if challenge:
            return challenge
        data = json.loads(request.data)
        entries = data['entry']
        LOG.info(entries)
        text_and_users = messenger_utils.get_messenger_text_and_users()
        for inp in text_and_users:
            sender = inp['sender']
            postback = inp.get('postback', None)
            msg = inp.get('msg', None)
            if msg == '__boo__':
                messenger_utils.send_reply(sender, '☄')
                continue
            if postback == 'HELP' or msg == 'help':
                for help_msg in messenger_help():
                    messenger_utils.send_reply(sender, help_msg)
                continue
            if postback == 'PREFERENCES':
                dct = messenger_utils.get_display_dct(sender['id'])
                reply = '{} is your default. This can be changed from the menu'.format(
                    dct)
                messenger_utils.send_reply(sender, reply)
                continue
            if postback in {'URBAN_DICTIONARY', 'ENGLISH_DICTIONARY', 'EMOJI_DICTIONARY'}:
                messenger_utils.set_dct(sender['id'], postback)
                reply = 'Preferences updated'
                messenger_utils.send_reply(sender, reply)
                continue

            if msg is not None:
                dct, msg = messenger_utils.get_dct(
                    sender_id=sender['id'], msg=msg)
                LOG.info(dct + "===" + msg)
                if dct in {'urb', 'eng'}:
                    handle_fb_dictionary(dct, msg, sender)
                elif dct in {'emoji_search', 'emoji_info', 'emoji'}:
                    handle_fb_emoji(dct, msg, sender)
    except Exception:
        LOG.print_exc("messenger fail")
    return Response()
Ejemplo n.º 3
0
def handle_fb_emoji(dct, msg, sender):
    if dct == 'emoji':
        replies = emoji_utils.emoji_all(msg)
        reply_groups = utils.split_to_groups(replies, 5)
        replies = ['\n'.join(group) for group in reply_groups]
        for reply in replies:
            messenger_utils.send_reply(recipient=sender, text=reply)
    elif dct == 'emoji_search':
        replies = emoji_utils.search_emojipedia(msg)
        reply_groups = utils.split_to_groups(replies, 5)
        replies = ['\n'.join(group) for group in reply_groups]
        for reply in replies:
            messenger_utils.send_reply(recipient=sender, text=reply)

    else:
        reply = emoji_utils.emoji_info(msg)
        messenger_utils.send_reply(recipient=sender, text=reply)