| import requests |
| import urllib.parse |
|
|
| def miradi_search(location, description): |
| """ Search DuckDuckGo using the instant answers API""" |
| query = f"{description} in {location}" |
| |
| try: |
| url = "https://api.duckduckgo.com/" |
| params = {"q": query, "format": "json", "no_redirect": 1, "no_html": 1} |
| response = requests.get(url, params=params, timeout=10) |
| response.raise_for_status() |
| data = response.json() |
| results = [] |
| if data.get("AbstractText"): |
| results.append({ |
| "title": data.get("Heading"), |
| "link": data.get("AbstractURL"), |
| "snippet": data.get("AbstracText") |
| }) |
|
|
| for topic in data.get("RelatedTopics", []): |
| if "Text" in topic and "FirstURL" in topic: |
| results.append({ |
| "title": topic.get("Text"), |
| "link": topic.get("FirstURL"), |
| "snippet": topic.get("Text") |
| }) |
| return results |
| except error: |
| print(f"[DuckDuckGo Error] {e}") |
| return [] |
|
|
| |