mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-22 06:19:38 +02:00
generation url
This commit is contained in:
parent
a95e3f2a64
commit
680a46e798
2 changed files with 38 additions and 2 deletions
|
@ -1,11 +1,13 @@
|
||||||
from django.urls import include, path
|
from django.urls import include, path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
from .views import AdventureViewSet, TripViewSet, StatsViewSet
|
from .views import AdventureViewSet, TripViewSet, StatsViewSet, GenerateDescription
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
router.register(r'adventures', AdventureViewSet, basename='adventures')
|
router.register(r'adventures', AdventureViewSet, basename='adventures')
|
||||||
router.register(r'trips', TripViewSet, basename='trips')
|
router.register(r'trips', TripViewSet, basename='trips')
|
||||||
router.register(r'stats', StatsViewSet, basename='stats')
|
router.register(r'stats', StatsViewSet, basename='stats')
|
||||||
|
router.register(r'generate', GenerateDescription, basename='generate')
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# Include the router under the 'api/' prefix
|
# Include the router under the 'api/' prefix
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import requests
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from django.db.models.functions import Lower
|
from django.db.models.functions import Lower
|
||||||
|
@ -134,3 +135,36 @@ class StatsViewSet(viewsets.ViewSet):
|
||||||
'country_count': country_count,
|
'country_count': country_count,
|
||||||
'total_countries': total_countries
|
'total_countries': total_countries
|
||||||
})
|
})
|
||||||
|
|
||||||
|
class GenerateDescription(viewsets.ViewSet):
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
@action(detail=False, methods=['get'],)
|
||||||
|
def desc(self, request):
|
||||||
|
name = self.request.query_params.get('name', '')
|
||||||
|
# un url encode the name
|
||||||
|
name = name.replace('%20', ' ')
|
||||||
|
print(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()
|
||||||
|
data = response.json()
|
||||||
|
page_id = next(iter(data["query"]["pages"]))
|
||||||
|
extract = data["query"]["pages"][page_id]
|
||||||
|
if extract.get('extract') is None:
|
||||||
|
return Response({"error": "No description found"}, status=400)
|
||||||
|
return Response(extract)
|
||||||
|
@action(detail=False, methods=['get'],)
|
||||||
|
def img(self, request):
|
||||||
|
name = self.request.query_params.get('name', '')
|
||||||
|
# un url encode the name
|
||||||
|
name = name.replace('%20', ' ')
|
||||||
|
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()
|
||||||
|
page_id = next(iter(data["query"]["pages"]))
|
||||||
|
extract = data["query"]["pages"][page_id]
|
||||||
|
if extract.get('original') is None:
|
||||||
|
return Response({"error": "No image found"}, status=400)
|
||||||
|
return Response(extract["original"])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue