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_post = dropwhile(lambda line: days_lower[day] not in line.lower(), skip_empty_lines(weekly_menu.splitlines())) else: menu_post = get_filtered_fb_post(FB_ID, daily_menu_filter).splitlines() menu_post = list(menu_post) 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 if menu == '': skipfilter = lambda l: not any(i in l.lower( ) for i in ["sütiket", "#", "jó étvágyat", "mai menü"]) menu = list(filter(skipfilter, menu_post)) return menu
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
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 list(skip_empty_lines(menu))
def getMenu(today): is_this_week = lambda date: datetime.strptime( date, '%Y-%m-%dT%H:%M:%S%z').date() > today.date() - timedelta(days=6) 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 = ''.join(char for char in menu if ord(char) < 500) menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()]], days_lower + ["tel:", "797"]) return list(skip_empty_lines(menu))
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"], inclusive=False) menu = skip_empty_lines(menu) return list(menu)
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
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)
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
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) menu = skip_empty_lines(menu) return list(menu)
def getMenu(today): menu = '' try: 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() daily_menu_filter = lambda post: is_today(post['created_time']) \ and "étvágyat" in post['message'].lower() \ and "heti" not in post['message'].lower() weekly_menu_filter = lambda post: is_this_week(post['created_time']) \ and "heti menü" in post['message'].lower() daily_menu = get_filtered_fb_post(FB_ID, daily_menu_filter) weekly_menu = get_filtered_fb_post(FB_ID, weekly_menu_filter) if daily_menu: menu = clean_up_daily_menu(daily_menu) elif weekly_menu: menu = clean_up_weekly_menu(weekly_menu, today.weekday()) except: pass return { 'name': 'Kompót', 'url': FB_PAGE, 'menu': menu }
def getMenu(today): menu = '' if today.weekday() < 5: 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 "főételek" in post['message'].lower() menu = get_filtered_fb_post(FB_ID, menu_filter) if "Előételek:" in menu: menu = menu.split("Előételek:")[1].strip() menu = '<br>'.join(i for i in menu.split('\n') if i) return { 'name': 'Portum', 'url': URL, 'menu': menu }
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
def getMenu(today): is_today = lambda date: datetime.strptime(date, '%Y-%m-%dT%H:%M:%S%z' ).date() == today.date() menu_keywords = ["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) menu = ''.join(char for char in menu if ord(char) < 500) drop_words = [ "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))
def getMenu(today): try: 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 "leveseink" in post['message'].lower() dailymenu = get_filtered_fb_post(FB_ID, menu_filter) starts_with_dash = lambda line: len(line) > 1 and (line[0] == '-') menu = [ line for line in dailymenu.split('\n') if starts_with_dash(line.strip()) ] menu = '<br>'.join(menu) except: menu = '' return {'name': 'Foodie', 'url': FB_PAGE, 'menu': menu}
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())) remove_emoji = lambda text: ''.join(char for char in text if ord(char) < 500) menu = [remove_emoji(m) for m in menu] return menu
def getMenu(today): day = today.weekday() try: 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) > 3 menu = get_filtered_fb_post(FB_ID, menu_filter) menu = re.split('(hétfő|kedd|szerda|csütörtök|péntek):', menu, flags=re.IGNORECASE) menu = dict(zip([str.lower(d) for d in menu[1::2]], menu[2::2])) menu = menu[days_lower[day]] menu = '<br>'.join(menu.strip().split('\n')) except: menu = '' return {'name': 'Amici Miei', 'url': FB_PAGE, 'menu': menu}
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()) \ or ("menü" in post['message'].lower() and is_today(post['created_time'])) menu = get_filtered_fb_post(FB_ID, menu_filter) menu = pattern_slice(menu.splitlines(), [days_lower[today.weekday()], "mai", "menü"], days_lower + ["ár:"]) remove_emoji = lambda text: ''.join(char for char in text if ord(char) < 500) menu = [remove_emoji(m) for m in skip_empty_lines(menu)] return menu
def getFBMenu(today): day = today.weekday() try: 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) post_parts = menu.split("HETI MENÜ") if len(post_parts) > 1: weekly_menu = post_parts[1] menu = weekly_menu.strip().split("\n\n")[day] menu = menu.replace(days_lower[day], '') menu = '<br>'.join(menu.strip().split('\n')) else: attachments = get_post_attachments(menu['id']) menu_pic_url = attachments['data'][0]['media']['image']['src'] menu = cutimage(menu_pic_url, day) except: menu = '' return menu