hp1318 commited on
Commit
916de5e
·
verified ·
1 Parent(s): 13caef6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -7
app.py CHANGED
@@ -39,15 +39,38 @@ def get_air_quality(city: str) -> str:
39
  str: The AQI value along with air quality status.
40
  """
41
  try:
42
- search_tool = DuckDuckGoSearchTool()
43
- query = f"current AQI in {city}"
44
- results = search_tool.forward(query)
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
- # Print raw search results to debug
47
- print(f"Raw DuckDuckGo search results for AQI in {city}:")
48
- print(results)
 
 
 
 
 
 
 
 
 
 
 
49
 
50
- return f"Raw search results logged for debugging."
51
  except Exception as e:
52
  return f"Error fetching AQI: {e}"
53
 
 
39
  str: The AQI value along with air quality status.
40
  """
41
  try:
42
+ # Step 1: Search for the city on AQI.in to find the correct country path
43
+ search_url = f"https://www.aqi.in/search?query={city.replace(' ', '+')}"
44
+ search_response = requests.get(search_url)
45
+
46
+ if search_response.status_code != 200:
47
+ return f"Failed to fetch AQI data for {city}. Status Code: {search_response.status_code}"
48
+
49
+ # Step 2: Extract the correct city URL from search results
50
+ import re
51
+ match = re.search(r'href="(/dashboard/[^"]+)"', search_response.text)
52
+
53
+ if not match:
54
+ return f"No AQI data found for {city}."
55
+
56
+ city_url_path = match.group(1)
57
+ city_url = f"https://www.aqi.in{city_url_path}"
58
 
59
+ # Step 3: Fetch AQI details from the city's AQI page
60
+ city_response = requests.get(city_url)
61
+
62
+ if city_response.status_code != 200:
63
+ return f"Failed to fetch AQI data for {city}. Status Code: {city_response.status_code}"
64
+
65
+ # Step 4: Extract AQI value using regex
66
+ match = re.search(r"AQI is (\d+)", city_response.text)
67
+
68
+ if match:
69
+ aqi_value = match.group(1)
70
+ return f"Air Quality in {city}: AQI {aqi_value} ({city_url})"
71
+
72
+ return f"No AQI data found for {city}."
73
 
 
74
  except Exception as e:
75
  return f"Error fetching AQI: {e}"
76