Untitled
pip install requests selenium import os import requests import json import datetime as dt from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys import time api_key = os.getenv('OPENWEATHERMAP_API') def rain_today(location): # get API key from env variable api_key = os.getenv('OPENWEATHERMAP_API') if not api_key: print("API key for OpenWeatherMap is not set.") return False # API endpoint url = f'https://api.openweathermap.org/data/2.5/forecast?q={location}&units=metric&appid={api_key}' r = requests.get(url) if r.status_code != 200: print(f"Failed to retrieve weather data: {r.status_code}") return False data = json.loads(r.text) today = dt.datetime.now().date() rain = False for d in data['list']: temp_dt = dt.datetime.fromtimestamp(d['dt']) if temp_dt.date() == today: main_weather = d['weather'][0]['main'] if main_weather.lower() == 'rain': rain = True break return rain def send_whatsapp(phone_number, msg): # WhatsApp URL with the phone number and message wassup_url = f'https://web.whatsapp.com/send?phone={phone_number}&text={msg}&type=phone_number&app_absent=0' # Chrome WebDriver and user profile options opt = Options() # Make sure to adjust the path to your Chrome profile and WebDriver as necessary opt.add_argument(r'user-data-dir=C:\Path\To\User\Data') driver = webdriver.Chrome(r'C:\Path\To\chromedriver.exe', options=opt) try: driver.get(wassup_url) time.sleep(20) # Adjust this delay as needed for the page and chatbox to load chatbox = driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[2]') chatbox.send_keys(msg) time.sleep(0.1) chatbox.send_keys(Keys.RETURN) except Exception as e: print(e) finally: # Consider closing the browser after sending the message time.sleep(10) # Wait for message to be sent driver.quit() # Example Usage location = 'Ponte Vedra Beach, FL' if rain_today(location): send_whatsapp('9043050235', 'It is going to rain today in Ponte Vedra Beach. Remember to bring an umbrella!') else: print("No rain forecasted today in Ponte Vedra Beach.")
Leave a Comment