diff options
Diffstat (limited to 'packages/pizza/pizza.py')
-rwxr-xr-x | packages/pizza/pizza.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/pizza/pizza.py b/packages/pizza/pizza.py new file mode 100755 index 0000000..727d2af --- /dev/null +++ b/packages/pizza/pizza.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + +from bs4 import BeautifulSoup +import requests +from prettytable import PrettyTable +from textwrap import fill +from termcolor import colored + + +url = "https://cheeseboardcollective.coop/pizza/" + +content = requests.get(url) +soup = BeautifulSoup(content.text, "html.parser") + +magic_ingredients = ["corn"] + +table = PrettyTable() +table.field_names = ["date", "pizza"] +table.align = "l" + +pizzas = soup.select(".pizza-list > article") +for pizza in pizzas: + date_color = "white" + menu_color = "white" + + date = pizza.find(class_="date").text + + # the pizza is the 1st element, the 2nd is the salad, and i don't + # care about the salad :) + menu = ( + pizza.select(".menu > p:nth-of-type(1)")[0] + .get_text(strip=True, separator="\n") + .split("\n") + ) + + if "closed" in menu[0]: + date_color = "red" + + if "Parbake pizza is available" in menu[0]: + menu.pop(0) + + if "Lunch from" in menu[0]: + menu.pop(0) + + if "No hot pizza today" in menu[0]: + menu.pop(0) + + final_menu = "".join(menu) + + for ingredient in magic_ingredients: + if ingredient in final_menu: + menu_color = "yellow" + + table.add_row( + [colored(date, date_color), fill(colored(final_menu, menu_color), width=80)] + ) + +print(table) |