Ejemplo n.º 1
0
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'])
Ejemplo n.º 2
0

@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=[])
Ejemplo n.º 3
0
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=[])
Ejemplo n.º 4
0
        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'])
Ejemplo n.º 5
0
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=[])
Ejemplo n.º 6
0
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"])
Ejemplo n.º 7
0
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"])
Ejemplo n.º 8
0
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"]
)
Ejemplo n.º 9
0
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"])
Ejemplo n.º 10
0
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"])
Ejemplo n.º 11
0
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']
)
Ejemplo n.º 12
0
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"]
)
Ejemplo n.º 13
0
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"]
)
Ejemplo n.º 14
0
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=[])
Ejemplo n.º 15
0
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=[])
Ejemplo n.º 16
0
        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"]
)
Ejemplo n.º 17
0
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"])
Ejemplo n.º 18
0
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"])
Ejemplo n.º 19
0
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"])
Ejemplo n.º 20
0
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=[]
)
Ejemplo n.º 21
0
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'])
Ejemplo n.º 22
0
@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'])
Ejemplo n.º 23
0
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=[]
)
Ejemplo n.º 24
0
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"])
Ejemplo n.º 25
0
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=[])
Ejemplo n.º 26
0
@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=[])
Ejemplo n.º 27
0
    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'])
Ejemplo n.º 28
0
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=[])
Ejemplo n.º 29
0
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"]
)
Ejemplo n.º 30
0
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"])