Esempio n. 1
0
def getMenu(today):
    day = today.weekday()
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=7)
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    ignore_hashtags = lambda post: " ".join(word.lower()
                                            for word in post.split()
                                            if word[0] != "#")
    daily_menu_filter = lambda post: is_today(post['created_time']) \
                            and "menü" in post['message'].lower()
    weekly_menu_filter = lambda post: is_this_week(post['created_time']) \
                            and days_lower[day] in ignore_hashtags(post['message'])
    weekly_menu = get_filtered_fb_post(FB_ID, weekly_menu_filter)
    if weekly_menu:
        menu = pattern_slice(
            weekly_menu.splitlines(), [days_lower[day]],
            days_lower + ["sütiket", "#", "jó étvágyat", "mai menü"])
    else:
        menu_post = get_filtered_fb_post(FB_ID, daily_menu_filter).splitlines()
        menu = []
        for i, line in enumerate(menu_post):
            if "A:" in line:
                menu = list((menu_post[i - 1], menu_post[i], menu_post[i + 1]))
                break
    return menu
Esempio n. 2
0
def get_menu(today):
    is_this_week = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z').date() >= today.date() - timedelta(days=7)
    menu_filter = lambda post: is_this_week(post['created_time']) and "jelmagyarázat" in post['message'].lower()
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()]], days_lower, inclusive=False)

    return menu
Esempio n. 3
0
def get_menu(today):
    fbfilter = lambda post: fb_filter(post, today)
    menu = get_filtered_fb_post(FB_ID, fbfilter)
    drop_words = ["ajánlatunk"]
    menu = filter(
        lambda line: not any(word in line.lower() for word in drop_words),
        menu.splitlines())
    return menu
Esempio n. 4
0
def getMenu(today):
    is_today = lambda date: dt.strptime(date, '%Y-%m-%dT%H:%M:%S%z').date(
    ) == today.date()
    menu_filter = lambda post: is_today(post[
        'created_time']) and "leveseink" in post['message'].lower()
    dailymenu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = [
        line for line in dailymenu.splitlines() if line.strip().startswith('-')
    ]
    return menu
Esempio n. 5
0
def getMenu(today):
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=7)
    menu_filter = lambda post: is_this_week(post['created_time']) and sum(
        day in post['message'].lower() for day in days_lower) >= 2
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()]],
                         days_lower + ["tel:", "797"])

    return list(skip_empty_lines(menu))
Esempio n. 6
0
def get_menu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_filter = lambda post: is_today(post[
        'created_time']) and "mai menü" in post['message'].lower()
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    drop_words = ["mai menünk", "jó étvágyat"]
    menu = skip_empty_lines(
        filter(lambda l: not any(word in l.lower() for word in drop_words),
               menu.splitlines()))
    return list(menu)
Esempio n. 7
0
def get_menu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_filter = lambda post: is_today(post[
        'created_time']) and "menü" in post['message'].lower()
    menu = get_filtered_fb_post(FB_ID, menu_filter).splitlines()
    menu = list(
        skip_empty_lines(line.strip() for line in menu
                         if "menü" not in line.lower()))

    return menu
Esempio n. 8
0
def get_menu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_heuristic = lambda msg: msg.count(':') + msg.count('+') >= 3
    menu_filter = lambda post: is_today(post['created_time']
                                        ) and menu_heuristic(post['message'])
    menu = get_filtered_fb_post(FB_ID, menu_filter).splitlines()
    drop = lambda l: l.strip().endswith((':', '!', '.', ','))
    for i in (n for n in (0, -1) if menu and drop(menu[n])):
        menu.pop(i)

    return menu
Esempio n. 9
0
def get_menu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_filter = lambda post: is_today(post['created_time']) and \
        any(word in post['message'].lower() for word in ["ebédmenü", "ebéd menü", "mai menü", "déli menü", "mai ebéd", "ajánlat"])
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    drop_words = ["ajánlat", "tacskó", "ebéd", "menü", "="]
    menu = list(
        skip_empty_lines(
            filter(lambda l: not any(word in l.lower() for word in drop_words),
                   menu.splitlines())))
    return menu
Esempio n. 10
0
def getMenu(today):
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=7)
    menu_filter = lambda post: is_this_week(post['created_time']) and sum(
        day in post['message'].lower() for day in days_lower) >= 2
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()]],
                         days_lower +
                         ["wolt", "ez is budai", "nyitva", "rendelj"],
                         inclusive=True)

    return menu
Esempio n. 11
0
def getMenu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_keywords = ["chef", "ajánlat", "1490", "1390", ",-", ".-", "ára"]

    menu_filter = lambda post: is_today(post['created_time']) and any(
        word in post['message'].lower() for word in menu_keywords)

    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = (line for line in menu.splitlines()
            if not any(word in line.lower() for word in menu_keywords))

    return menu
Esempio n. 12
0
def getMenu(today):
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=7)
    menu_filter = lambda post: is_this_week(post['created_time']) and \
        any(word in post['message'].lower() for word in ["lunch menü ", "business lunch", "előételek", "déli menü", "heti menü", "menünk"])
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    drop_words = [
        "előételek", "főételek", "desszer", "étvágy", "menü", "lunch"
    ]
    menu = skip_empty_lines(
        filter(lambda l: not any(word in l.lower() for word in drop_words),
               menu.splitlines()))
    menu = pattern_slice(menu, [""], ["---", "broth", "soup"], inclusive=True)

    return list(menu)
Esempio n. 13
0
def getMenu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_keywords = ["mai menü", "napi menü", days_lower[today.weekday()]]

    menu_filter = lambda post: is_today(post['created_time']) and any(
        word in post['message'].lower() for word in menu_keywords)
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    drop_words = [
        "11:00", "1590", "mindenkit", "minden menü", "étlapunk", "csodás",
        days_lower[today.weekday()]
    ]
    menu = (line for line in menu.splitlines()
            if not any(word in line.lower() for word in drop_words))

    return list(skip_empty_lines(menu))
Esempio n. 14
0
def get_menu(today):
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() >= today.date() - timedelta(days=7)
    menu_filter = lambda post: is_this_week(post[
        'created_time']) and days_lower[today.weekday()] in post['message'
                                                                 ].lower()
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()]],
                         days_lower,
                         inclusive=True)
    menulist = []
    for line in menu:
        line = line.split(":", maxsplit=1)[1] if ':' in line else line
        menulist.append(line)

    return menulist
Esempio n. 15
0
def get_menu(today):
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()
    menu_words = ["mai menü", "napi menü"]
    menu_filter = lambda post: is_today(post['created_time']) and any(
        word in post['message'].lower() for word in menu_words)
    menu = get_filtered_fb_post(FB_ID, menu_filter)
    if menu:
        drop_words = [
            "#", "mai menü", "napi menü", '"', "hétvég", "590", "...", "!", "“"
        ]
        menu = filter(
            lambda l: not any(word in l.lower() for word in drop_words),
            menu.splitlines())
        return list(skip_empty_lines(menu))
    else:
        return []
Esempio n. 16
0
def getMenu(today):
    is_this_week = lambda date: datetime.strptime(
        date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=7)
    is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z'
                                              ).date() == today.date()

    menu_filter = lambda post: (is_this_week(post['created_time'])
                               and days_lower[today.weekday()] in post['message'].lower()
                               and "asztalfoglalás" not in post['message'].lower()) \
                               or ("menü" in post['message'].lower()
                                    and is_today(post['created_time'])
                                    and "asztalfoglalás" not in post['message'].lower())

    menu = get_filtered_fb_post(FB_ID, menu_filter)
    menu = pattern_slice(menu.splitlines(),
                         [days_lower[today.weekday()], "mai", "menü"],
                         days_lower + ["ár:"])

    return list(skip_empty_lines(menu))
Esempio n. 17
0
def get_menu(today):
    fbfilter = lambda post: fb_filter(post, today)
    menu = get_filtered_fb_post(FB_ID, fbfilter)
    menu = pattern_slice(menu.splitlines(), ["holnapi"], ["tomorrow"])
    return menu