WtfJoke/kult-lunchbot

View on GitHub
menu/koelle_menuholder.py

Summary

Maintainability
A
1 hr
Test Coverage
from menu.koelle_scraper import KoelleScraper
import datetime
from menu.lunchmenu import DateFormats

current_menu = None

def get_menu_text_by_date(date):
    menu = get_current_menu()
    daily_menu = menu.get_daily_menu_by_date(date)
    return get_menu_text(daily_menu, menu, date)


def get_menu_text_by_weekday(weekday):
    menu = get_current_menu()
    daily_menu = menu.get_daily_menu_by_weekday(weekday)
    return get_menu_text(daily_menu, menu, weekday)


def get_current_menu():
    if not current_menu or not current_menu.is_current(datetime.date.today()):  # create menu if out of date or None
        create_menu()
    return current_menu


def create_menu():
    global current_menu
    print("Creating new koelle menu object")
    current_menu = KoelleScraper.scrape()


def get_menu_text(daily_menu, menu, date):
    if daily_menu:
        menu_text = str(daily_menu)
    else:
        no_menus = len(menu.get_daily_menus()) == 0
        if no_menus:
            menu_text = "Fehler: Keine Menüs vorhanden"
        else:
            last_menu = menu.get_daily_menus()[len(menu.get_daily_menus()) - 1]
            menu_text = 'Sorry ich kann die Menüs von {} nicht finden'.format(str(date)) + '\n'
            menu_text += "Hier ist stattdessen das letzte Menü: \n\n"
            menu_text += str(last_menu)

    return menu_text


# starter method
if __name__ == "__main__":
    print(get_menu_text_by_date(datetime.date.today().strftime(DateFormats.COMMON)))