45def response(resp):
46 try:
47 data = resp.json()
48 except Exception as e:
49 raise SearxEngineAPIException(f"Invalid response: {e}") from e
50 results = []
51
52 if "feed" not in data or "entry" not in data["feed"]:
53 raise SearxEngineAPIException("Invalid response")
54
55 for entry in data["feed"]["entry"]:
56 if not entry.get("title") or not entry.get("url"):
57 continue
58
59 published_date = None
60 if entry.get("time"):
61 try:
62 published_date = datetime.fromtimestamp(entry["time"])
63 except (ValueError, TypeError):
64 published_date = None
65
66 results.append(
67 {
68 "title": entry["title"],
69 "url": entry["url"],
70 "content": entry.get("abs", ""),
71 "publishedDate": published_date,
72
73 }
74 )
75
76 return results