Untitled
unknown
plain_text
2 years ago
2.3 kB
15
Indexable
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 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 profile options
opt = Options()
opt.add_argument(r'user-data-dir=C:\Users\iangrne\AppData\Local\Google\Chrome\User Data\Selenium')
driver = webdriver.Chrome(r'C:\Users\iangrne\downloads\chromedriver.exe', options=opt)
try:
driver.get(wassup_url)
time.sleep(20) # Adjust as needed
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:
# Close browser after sending 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.")Editor is loading...
Leave a Comment