Abdul-Haseeb commited on
Commit
a5c129c
·
verified ·
1 Parent(s): 6f0ec91

Updated Wiki function

Browse files
Files changed (1) hide show
  1. app.py +23 -2
app.py CHANGED
@@ -45,13 +45,34 @@ def save_chat_history(messages):
45
  with shelve.open("chat_history") as db:
46
  db["messages"] = messages
47
 
48
- def fetch_wikipedia_link(topic):
49
  api_url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{topic}"
50
  response = requests.get(api_url)
51
  if response.status_code == 200:
52
  return response.json()['content_urls']['desktop']['page']
53
  st.error("Failed to fetch Wikipedia content.")
54
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
 
57
  load_css()
 
45
  with shelve.open("chat_history") as db:
46
  db["messages"] = messages
47
 
48
+ '''def fetch_wikipedia_link(topic):
49
  api_url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{topic}"
50
  response = requests.get(api_url)
51
  if response.status_code == 200:
52
  return response.json()['content_urls']['desktop']['page']
53
  st.error("Failed to fetch Wikipedia content.")
54
+ return None'''
55
+
56
+ from urllib.parse import quote
57
+
58
+ def fetch_wikipedia_link(topic: str) -> str | None:
59
+ try:
60
+ # URL encode the topic
61
+ encoded_topic = quote(topic)
62
+ api_url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{encoded_topic}"
63
+
64
+ response = requests.get(api_url, timeout=5)
65
+
66
+ if response.status_code != 200:
67
+ st.error(f"Failed to fetch Wikipedia content for '{topic}' (status {response.status_code})")
68
+ return None
69
+
70
+ data = response.json()
71
+ return data.get("content_urls", {}).get("desktop", {}).get("page")
72
+
73
+ except requests.RequestException as e:
74
+ st.error(f"Network error: {e}")
75
+ return None
76
 
77
 
78
  load_css()