1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-22 22:39:36 +02:00

feat: implement global search functionality for adventures, collections, users, and locations

This commit is contained in:
Sean Morley 2025-01-18 12:28:14 -05:00
parent 9132ef39ec
commit d60945d5b7
10 changed files with 186 additions and 209 deletions

View file

@ -12,7 +12,7 @@ class GenerateDescription(viewsets.ViewSet):
name = self.request.query_params.get('name', '')
# un url encode the name
name = name.replace('%20', ' ')
print(name)
name = self.get_search_term(name)
url = 'https://en.wikipedia.org/w/api.php?origin=*&action=query&prop=extracts&exintro&explaintext&format=json&titles=%s' % name
response = requests.get(url)
data = response.json()
@ -27,6 +27,7 @@ class GenerateDescription(viewsets.ViewSet):
name = self.request.query_params.get('name', '')
# un url encode the name
name = name.replace('%20', ' ')
name = self.get_search_term(name)
url = 'https://en.wikipedia.org/w/api.php?origin=*&action=query&prop=pageimages&format=json&piprop=original&titles=%s' % name
response = requests.get(url)
data = response.json()
@ -34,4 +35,10 @@ class GenerateDescription(viewsets.ViewSet):
extract = data["query"]["pages"][page_id]
if extract.get('original') is None:
return Response({"error": "No image found"}, status=400)
return Response(extract["original"])
return Response(extract["original"])
def get_search_term(self, term):
response = requests.get(f'https://en.wikipedia.org/w/api.php?action=opensearch&search={term}&limit=10&namespace=0&format=json')
data = response.json()
if data[1] and len(data[1]) > 0:
return data[1][0]