from datetime import timedelta from ebedke.utils.utils import get_dom, skip_empty_lines, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "http://semmiextra.hu/bartok-bela-ut-etterem#heti-menu" @on_workdays def getMenu(today): dom = get_dom(URL) menu = dom.xpath( "/html/body//div[@id='heti-menu']//ul[@class='dotted']/li/text()") menu = list(skip_empty_lines(menu)) return menu plugin = EbedkePlugin(enabled=True, groups=["moricz", "szepvolgyi"], name='Semmi Extra', id='se', url=URL, downloader=getMenu, ttl=timedelta(hours=4), cards=['erzs'])
@on_workdays 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 [] plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Nine Tables', id='nt', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=24), cards=[])
FB_ID = "271018510265811" @on_workdays 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)) plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Seastars', id='sst', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=[])
a_menu_box = (x, a_y, x + WIDTH, a_y + HEIGHT) b_menu_box = (x, b_y, x + WIDTH, b_y + HEIGHT) amenu = image.crop(a_menu_box) bmenu = image.crop(b_menu_box) img = Image.new('L', (WIDTH, HEIGHT * 2)) img.paste(amenu, (0, 0)) img.paste(bmenu, (0, HEIGHT)) img = img.point(lambda i: i < 100 and 255) img = img.convert('1') f = BytesIO() img.save(f, format="png", optimize=True, compress_level=9, bits=1) menu = ocr_image(f) if menu: menu = menu.splitlines() return menu plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='10 minutes', id='tm', url=URL, downloader=getMenu, ttl=timedelta(hours=18), cards=['szep', 'erzs'])
URL = "http://www.monks.hu/etlap" @on_workdays def get_menu(today): dom = get_dom(URL) week_date = dom.xpath( "/html/body//div//li//a[contains(text(), 'MENÜ')]/text()") from_date, to_date = re.split(r" |-", week_date.pop())[-2:] from_date = datetime.strptime(f"{today.year}.{from_date}", "%Y.%m.%d.") to_date = datetime.strptime(f"{today.year}.{to_date}", "%Y.%m.%d.") menu = [] if from_date.date() <= today.date() <= to_date.date(): rows = dom.xpath("/html/body//tr[count(td)=2]") for row in rows: if days_lower[today.weekday()] in row.text_content().lower(): menu = row.xpath(".//td[2]//text()") return menu plugin = EbedkePlugin(enabled=True, groups=["ferenciek"], name="Monks", id="mo", url=URL, downloader=get_menu, ttl=timedelta(hours=24), cards=[])
from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/shakeratocaffe/posts/" FB_ID = "151093992248397" def fb_filter(post, today): created = datetime.strptime(post['created_time'], '%Y-%m-%dT%H:%M:%S%z') trigger_words = ["holnapi"] triggered = any(word in post["message"].lower() for word in trigger_words) yesterday = today.date() - timedelta(days=1) return created.date() == yesterday and triggered @on_workdays 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 plugin = EbedkePlugin(enabled=True, name='Caffe Shakerato', id='cfs', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=24), cards=[], groups=["ferenciek"])
from datetime import timedelta from ebedke.utils.utils import get_dom, on_workdays, months_hu_capitalized from ebedke.pluginmanager import EbedkePlugin URL = "https://divinporcello.hu/napi-menu" @on_workdays def getMenu(today): dom = get_dom(URL) #date = f"{months_hu_capitalized[today.month - 1]} {today.day:02}" menu = dom.xpath("/html/body//img[contains(@src, 'heti')]/@src") return menu plugin = EbedkePlugin(enabled=False, name='Divin Porcello', id='dp', url=URL, downloader=getMenu, ttl=timedelta(hours=24), cards=[], groups=["ferenciek"])
from datetime import timedelta from ebedke.utils.utils import get_dom, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "http://www.emikifozte.hu/menuk.php" @on_workdays def getMenu(_): dom = get_dom(URL) menu = dom.xpath('/html/body//tr[@class="menutablasor"]/td[3]') menu = [e.text_content().strip('(, )') for e in menu] return menu plugin = EbedkePlugin( enabled=True, name='Emi kifőzte', id='ek', url=URL, downloader=getMenu, ttl=timedelta(minutes=25), cards=['szep', 'erzs'], groups=["corvin"] )
from datetime import timedelta from ebedke.utils.utils import get_dom, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "http://dezsoba.hu/hu/heti-menue" @on_workdays def getMenu(today): day = today.weekday() dom = get_dom(URL) menu = dom.xpath('/html/body//div[@class="sppb-menu-text"]') if len(menu) < 4: menu = [] else: menu = menu[day].xpath("text()") return menu plugin = EbedkePlugin(enabled=True, name='Dezső bá', id='db', url=URL, downloader=getMenu, ttl=timedelta(minutes=20), cards=[], groups=["corvin"])
from datetime import datetime, timedelta from ebedke.utils.utils import get_filtered_fb_post, days_lower, skip_empty_lines, on_workdays, pattern_slice from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/HomeFieldPub/" FB_ID = "190139087785846" @on_workdays 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)) plugin = EbedkePlugin(enabled=True, name='HomeField Pub', id='hfp', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=[], groups=["ferenciek"])
from datetime import timedelta import re from ebedke.utils.utils import get_dom, on_workdays, days_upper from ebedke.pluginmanager import EbedkePlugin URL = "https://www.wasabi.hu/szolgaltatas/napimenu" @on_workdays def getMenu(today): dom = get_dom(URL, force_utf8=True) weekday = today.isoweekday() items = dom.xpath(f"//blockquote[{weekday}]//text()")[1:] for stopword in ["LEVES", "FŐÉTEL", "DESSZERT", "ELŐÉTEL", ":"] + days_upper: items = [re.sub(f'({stopword}):? ?', '', i).strip() for i in items] menu = list(line.strip() for line in items if line) return menu plugin = EbedkePlugin( enabled=True, groups=["szepvolgyi"], name='Wasabi', id='wasabi', url=URL, downloader=getMenu, ttl=timedelta(hours=23), cards=['szep', 'erzs'] )
from datetime import timedelta from ebedke.utils.utils import get_dom, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "https://www.marcelloetterem.hu" @on_workdays def getMenu(today): dom = get_dom(URL) date = f"{today.month:02}.{today.day:02}" menu = dom.xpath(f"/html/body//div[.//a[contains(text(), '{date}')]]/p//text()") menu = [m.capitalize() for m in menu[:3]] return menu plugin = EbedkePlugin( enabled=True, groups=["moricz"], name='Marcello', id='mrc', url=URL, downloader=getMenu, ttl=timedelta(hours=24), cards=["szep", "erzs"] )
from datetime import datetime, timedelta from ebedke.utils.utils import get_filtered_fb_post, days_lower, skip_empty_lines, on_workdays, pattern_slice from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/zappa.bistro.caffe/posts/" FB_ID = "333202771769" @on_workdays 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 + ["desszert"], inclusive=False) menu = skip_empty_lines(menu) return list(menu) plugin = EbedkePlugin( enabled=True, groups=["corvin"], name='Zappa', id='zp', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=["erzs"] )
from datetime import datetime, timedelta from ebedke.utils.utils import get_filtered_fb_post, on_workdays, skip_empty_lines from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/szatyorbar/posts" FB_ID = "140232679345332" @on_workdays 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 plugin = EbedkePlugin(enabled=True, groups=["moricz"], name='Szatyor', id='sz', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=23), cards=[])
FB_ID = "728866253985071" @on_workdays 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", str(today.year) ] 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) plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Portum', id='pt', url=URL, downloader=getMenu, ttl=timedelta(hours=23), cards=[])
cropbox = (0, round(height * 0.15), width, height - round(height * 0.14)) image = image.crop(cropbox) f = BytesIO() image.save(f, format="png", optimize=True) menu = ocr_image(f).splitlines() if not menu: return "" day = today.weekday() remove_accents = lambda word: normalize('NFD', word).encode('ascii', 'ignore') menu = islice(dropwhile(lambda l: remove_accents(days_lower[day]) not in remove_accents(l.lower()), menu), 1, None) menu = takewhile(lambda l: not any(word in l.lower() for word in days_lower), menu) skip_words = ["menu", "menü", "fitnesz"] + days_lower menu = list(map(lambda l: l.replace("|", "").strip(), filter(lambda l: not any(word in l.lower() for word in skip_words), menu))) menu = sorted(set(menu), key=menu.index) return menu else: return [] plugin = EbedkePlugin( enabled=False, name="CBA Corvin", id="cc", url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=24), cards=['szep', 'erzs'], groups=["corvin"] )
from datetime import timedelta from itertools import dropwhile, islice from ebedke.utils.utils import get_dom, days_lower, skip_empty_lines, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "http://www.golvonalbisztro.hu/heti-menuajanlat.html" @on_workdays def getMenu(today): day = today.weekday() dom = get_dom(URL) menu = dom.xpath( "/html/body//div[@class='fck']/*[self::h3 or self::p]//text()") menu = dropwhile(lambda line: days_lower[day] not in line.lower(), menu) menu = islice(skip_empty_lines(menu), 1, 3) menu = list(menu) return menu plugin = EbedkePlugin(enabled=True, name='Gólvonal', id='gv', url=URL, downloader=getMenu, ttl=timedelta(hours=1), cards=[], groups=["corvin"])
FB_PAGE = "https://www.facebook.com/Finomfalat17/" FB_ID = "270764739711603" def fb_filter(post, today): created = datetime.strptime(post['created_time'], '%Y-%m-%dT%H:%M:%S%z') trigger_words = ["ajánlatunk", "leves"] triggered = any(word in post["message"].lower() for word in trigger_words) return created.date() == today.date() and triggered @on_workdays 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 plugin = EbedkePlugin(enabled=True, name='Finom Falat', id='fifa', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=24), cards=[], groups=["ferenciek"])
from datetime import timedelta from ebedke.utils.utils import get_dom, on_workdays, skip_empty_lines from ebedke.pluginmanager import EbedkePlugin URL = "http://cafeintenzo.hu/#hetimenu" @on_workdays def getMenu(today): day = today.weekday() dom = get_dom(URL) menu = dom.xpath( '/html/body//section[@id="hetimenu"]//div[contains(@class, "text_box")]' ) menu = filter(lambda l: "menü ára" not in l, menu[day].xpath("p//text()")) menu = list(skip_empty_lines(menu)) return menu plugin = EbedkePlugin(enabled=True, name='Intenzo', id='iz', url=URL, downloader=getMenu, ttl=timedelta(minutes=45), cards=['szep', 'erzs'], groups=["corvin"])
FB_PAGE = "https://www.facebook.com/pg/vanbisztro/posts/" FB_ID = "168579617153632" def fb_filter(post, today): created = datetime.strptime(post['created_time'], '%Y-%m-%dT%H:%M:%S%z') not_too_long = len(post["message"]) < 160 just_few_lines = post["message"].count("\n") < 10 today_morning = created.date() == today.date() and 9 <= created.hour < 13 return not_too_long and today_morning and just_few_lines @on_workdays def getMenu(today): fbfilter = lambda post: fb_filter(post, today) menu = get_filtered_fb_post(FB_ID, fbfilter) drop_words = ["menü"] + days_lower menu = filter(lambda line: not any(word in line.lower() for word in drop_words), menu.splitlines()) return menu plugin = EbedkePlugin( enabled=True, groups=["szell"], name='VAN bisztró', id='van', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=[] )
from ebedke.utils.utils import get_dom, on_workdays from ebedke.pluginmanager import EbedkePlugin URL = "http://muzikum.hu/heti-menu/" @on_workdays def getMenu(today): day = today.weekday() dom = get_dom(URL) date = dom.xpath('//div[@class="content-right"]//h2/text()') date = date[0].strip().split('|')[1].strip()[:5] date = datetime.strptime(f'{ today.year }.{ date }', '%Y.%m.%d').date() if date > today.date() - timedelta(days=7): menu = dom.xpath('//div[@class="content-right"]//div/p[not(span)]') menu = menu[day].text_content().splitlines() else: menu = [] return menu plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Muzikum', id='mz', url=URL, downloader=getMenu, ttl=timedelta(hours=23), cards=['szep'])
@on_workdays def getMenu(today): today = today.strftime("%Y-%m-%d") dom = get_dom(PQS_MENU) column = 0 for i, th in enumerate(dom.xpath('//table[@id="menu"]/thead//th')): text = ''.join(th.xpath('text()')) if today in text: column = i + 1 texts = dom.xpath('//*[@id="menu"]//tr[th[contains(text(),"enü") ' 'or contains(text(),"őztje") ' 'or contains(text(),"eves")]]' f'/following-sibling::tr[1]/td[{ column }]/ul//text()') menu = ''.join(texts) menu = menu.replace("Választott leves", "") menu = menu.replace("\t", "") menu = list(i for i in menu.splitlines() if i) return menu plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='PQS Skypark', id='pq', url=PQS_MENU, downloader=getMenu, ttl=timedelta(hours=6), cards=['szep'])
from datetime import datetime, timedelta from ebedke.utils.utils import get_filtered_fb_post, on_workdays, days_lower, pattern_slice from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/Pastafresca-Buda-235959913862289/posts/" FB_ID = "235959913862289" @on_workdays 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 plugin = EbedkePlugin( enabled=True, groups=["szell"], name='Pasta Fresca Buda', id='pfr', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=23), cards=[] )
from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/bocellipizzeria/posts/" FB_ID = "401839609844340" @on_workdays 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 plugin = EbedkePlugin(enabled=True, name="Bocelli Pizzeria Italia", id="boc", url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=[], groups=["szell"])
from datetime import timedelta from ebedke.utils.utils import on_workdays, http_get from ebedke.pluginmanager import EbedkePlugin URL = "https://www.kajahu.com/etlap/d" API = "https://appif.kajahu.com/jdmenu?jlang=hu&jseat=-" @on_workdays def getMenu(today): date = today.strftime("%Y-%m-%d") menujson = http_get(API).json() menu = [] for day in menujson['jdata']: if day['ddate'] == date: menu = [day['line1'], day['line2'], day['line3']] break return menu plugin = EbedkePlugin(enabled=True, groups=["ferenciek"], name='KAJAHU', id='kjh', url=URL, downloader=getMenu, ttl=timedelta(hours=23), cards=[])
@on_workdays 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)) plugin = EbedkePlugin(enabled=True, groups=["szell"], name='Kubala Barcelona', id='kbarc', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=23), cards=[])
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 plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Kompót', id='kp', url=FB_PAGE, downloader=getMenu, ttl=timedelta(hours=24), cards=['szep'])
from ebedke.utils.utils import get_filtered_fb_post, on_workdays, skip_empty_lines from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/aranytacsko/" FB_ID = "211285456287124" @on_workdays 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 plugin = EbedkePlugin(enabled=True, groups=["corvin"], name='Arany Tacskó bistro', id='tc', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=23), cards=[])
from datetime import datetime, timedelta from ebedke.utils.utils import get_filtered_fb_post, on_workdays from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/Dagoba-bisztró-1742309292469507/posts" FB_ID = "1742309292469507" @on_workdays 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 plugin = EbedkePlugin( enabled=True, name='Dagoba', id='dg', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=23), cards=[], groups=["corvin"] )
from datetime import timedelta, datetime from ebedke.utils.utils import get_filtered_fb_post, days_lower, on_workdays, pattern_slice from ebedke.pluginmanager import EbedkePlugin FB_PAGE = "https://www.facebook.com/pg/gilicekonyha/posts/" FB_ID = "910845662306901" @on_workdays 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 plugin = EbedkePlugin(enabled=True, name='Gólya', id='gl', url=FB_PAGE, downloader=get_menu, ttl=timedelta(hours=18), cards=['szep'], groups=["corvin"])