diff --git a/getmenu.py b/getmenu.py new file mode 100644 index 0000000..82e6460 --- /dev/null +++ b/getmenu.py @@ -0,0 +1,57 @@ +import os +import requests +from bs4 import BeautifulSoup +from datetime import datetime + +# URL of the website with the menu links +url = 'https://www.SCHOOL.org/departments/food-services/menus' + +# Function to fetch the page and parse the links +def fetch_menu(url, target_school='Elementary', target_month='April', target_type='lunch'): + response = requests.get(url) + soup = BeautifulSoup(response.text, 'html.parser') + + # Find all <a> tags with the data-file-name attribute + links = soup.find_all('a', {'data-file-name': True}) + + # Filter the links to match the target school, month, and type (lunch or breakfast) + for link in links: + file_name = link['data-file-name'] + if target_school.lower() in file_name.lower() and target_month.lower() in file_name.lower() and target_type.lower() in file_name.lower(): + # Construct the full URL to the PDF + pdf_url = 'https://www.SCHOOL.org' + link['href'] + return pdf_url, file_name + return None, None + +# Function to download the PDF +def download_pdf(pdf_url, file_name, save_as='menu.pdf'): + if not pdf_url: + print(f"No menu found for {target_school} in {target_month}") + return + response = requests.get(pdf_url, stream=True) + + if response.status_code == 200: + with open(save_as, 'wb') as f: + for chunk in response.iter_content(chunk_size=8192): + f.write(chunk) + print(f"Downloaded {file_name} as {save_as}") + else: + print("Failed to download the file") + +# Main function to fetch and download the menu +def main(): + # Get the current month in a format like 'April', 'March', etc. + current_month = datetime.now().strftime('%B') # 'April' for example + + # Set your target school + target_school = 'Elementary' # Change this to 'Middle' or 'High' for other menus + + # Fetch the menu URL + pdf_url, file_name = fetch_menu(url, target_school='Elementary', target_month=current_month, target_type='lunch') + + + # Download the PDF + download_pdf(pdf_url, file_name) + +if __name__ == "__main__": + main()