import os import requests import logging from celery import shared_task from django.core.mail import send_mail from django.conf import settings logger = logging.getLogger(__name__) API_KEY = 'a7cc162fc60a76d2e31461071634b8ce' @shared_task def send_weather_email(city, email): url = f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={API_KEY}&units=metric&lang=en' try: response = requests.get(url) response.raise_for_status() data = response.json() temp = data['main']['temp'] description = data['weather'][0]['description'] message = f"Weather in {city}: {description}, {temp}°C" send_mail( subject=f"Weather in {city}", message=message, from_email=settings.DEFAULT_FROM_EMAIL, recipient_list=[email] ) logger.info(f"[send_weather_email] Email sent successfully") except Exception as e: logger.exception(f"[send_weather_email] Failed: {e}")