added spiders app
This commit is contained in:
parent
787012cac8
commit
9d9a86efaa
@ -61,8 +61,8 @@ INSTALLED_APPS = [
|
||||
'knox',
|
||||
|
||||
# my shit
|
||||
'options',
|
||||
'users'
|
||||
'users',
|
||||
'spiders'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
||||
@ -24,6 +24,7 @@ from drf_spectacular.views import SpectacularSwaggerView
|
||||
|
||||
urlpatterns = [
|
||||
path("auth/", include('users.urls')),
|
||||
path("spiders/", include('spiders.urls')),
|
||||
|
||||
# Spectacular
|
||||
path("schema/", SpectacularAPIView.as_view(), name="schema-text"),
|
||||
|
||||
0
spiders/__init__.py
Normal file
0
spiders/__init__.py
Normal file
6
spiders/apps.py
Normal file
6
spiders/apps.py
Normal file
@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class SpidersConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'spiders'
|
||||
59
spiders/dagens_lunch/serializer.py
Normal file
59
spiders/dagens_lunch/serializer.py
Normal file
@ -0,0 +1,59 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
class DagensLunch(serializers.Serializer):
|
||||
place = serializers.CharField(max_length=20)
|
||||
monday = serializers.CharField()
|
||||
tuesday = serializers.CharField()
|
||||
wednesday = serializers.CharField()
|
||||
thursday = serializers.CharField()
|
||||
friday = serializers.CharField()
|
||||
scraped_by = serializers.CharField(max_length=40)
|
||||
scraped_at = serializers.DateTimeField()
|
||||
|
||||
class Meta:
|
||||
fields = ("place", "monday", "tuesday", "wednesday", "thursday", "friday", "scraped_by", "scraped_at")
|
||||
read_only_fields = ("place", "monday", "tuesday", "wednesday", "thursday", "friday", "scraped_by", "scraped_at")
|
||||
|
||||
class DagensLunchMax(DagensLunch):
|
||||
|
||||
class Meta(DagensLunch.Meta):
|
||||
pass
|
||||
|
||||
class DagensLunchValsaren(DagensLunch):
|
||||
week = serializers.CharField()
|
||||
alltid = serializers.CharField()
|
||||
klassiker = serializers.CharField()
|
||||
price = serializers.DecimalField(max_digits=6, decimal_places=2)
|
||||
price_takeaway = serializers.DecimalField(max_digits=6, decimal_places=2)
|
||||
|
||||
class Meta(DagensLunch.Meta):
|
||||
fields = DagensLunch.Meta.fields + (
|
||||
"week", "alltid", "klassiker", "price", "price_takeaway"
|
||||
)
|
||||
read_only_fields = DagensLunch.Meta.read_only_fields + (
|
||||
"week", "alltid", "klassiker", "price", "price_takeaway"
|
||||
)
|
||||
|
||||
class DagensLunchMalmens(DagensLunch):
|
||||
week = serializers.CharField()
|
||||
monday = serializers.ListField()
|
||||
tuesday = serializers.ListField()
|
||||
wednesday = serializers.ListField()
|
||||
thursday = serializers.ListField()
|
||||
friday = serializers.ListField()
|
||||
|
||||
class Meta(DagensLunch.Meta):
|
||||
fields = DagensLunch.Meta.fields + ( "week", )
|
||||
read_only_fields = DagensLunch.Meta.read_only_fields + ( "week", )
|
||||
|
||||
class DagensLunchHeat(DagensLunch):
|
||||
monday = serializers.ListField()
|
||||
tuesday = serializers.ListField()
|
||||
wednesday = serializers.ListField()
|
||||
thursday = serializers.ListField()
|
||||
friday = serializers.ListField()
|
||||
week = serializers.CharField()
|
||||
|
||||
class Meta(DagensLunch.Meta):
|
||||
fields = DagensLunch.Meta.fields + ( "week", )
|
||||
read_only_fields = DagensLunch.Meta.read_only_fields + ( "week", )
|
||||
12
spiders/dagens_lunch/urls.py
Normal file
12
spiders/dagens_lunch/urls.py
Normal file
@ -0,0 +1,12 @@
|
||||
from django.urls import path
|
||||
from spiders.dagens_lunch.views import Lunch_Valsaren_View
|
||||
from spiders.dagens_lunch.views import Lunch_Malmens_View
|
||||
from spiders.dagens_lunch.views import Lunch_Heat_View
|
||||
from spiders.dagens_lunch.views import Lunch_Max_View
|
||||
|
||||
urlpatterns = [
|
||||
path("valsaren/", Lunch_Valsaren_View.as_view({"get": "lunch"}), name="spiders_dagens_lunch_valsaren"),
|
||||
path("malmens/", Lunch_Malmens_View.as_view({"get": "lunch"}), name="spiders_dagens_lunch_malmens"),
|
||||
path("heat/", Lunch_Heat_View.as_view({"get": "lunch"}), name="spiders_dagens_lunch_heat"),
|
||||
path("max/", Lunch_Max_View.as_view({"get": "lunch"}), name="spiders_dagens_lunch_max"),
|
||||
]
|
||||
55
spiders/dagens_lunch/views.py
Normal file
55
spiders/dagens_lunch/views.py
Normal file
@ -0,0 +1,55 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
from settings.puckoviews import PuckoView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.permissions import AllowAny
|
||||
from spiders.dagens_lunch.serializer import DagensLunchValsaren
|
||||
from spiders.dagens_lunch.serializer import DagensLunchMalmens
|
||||
from spiders.dagens_lunch.serializer import DagensLunchHeat
|
||||
from spiders.dagens_lunch.serializer import DagensLunchMax
|
||||
|
||||
DAGENS_LUNCH_PATH = Path("/home/riisen/utveckling/spiders/dagens_lunch/latest")
|
||||
|
||||
class Lunch_Valsaren_View(PuckoView):
|
||||
permission_classes = [AllowAny,]
|
||||
serializer_class = DagensLunchValsaren
|
||||
|
||||
def lunch(self, request):
|
||||
file = DAGENS_LUNCH_PATH / "valsaren.json"
|
||||
with open(file, "r") as f:
|
||||
data = json.load(f)
|
||||
serializer = self.serializer_class(data)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
class Lunch_Malmens_View(PuckoView):
|
||||
permission_classes = [AllowAny,]
|
||||
serializer_class = DagensLunchMalmens
|
||||
|
||||
def lunch(self, request):
|
||||
file = DAGENS_LUNCH_PATH / "malmens.json"
|
||||
with open(file, "r") as f:
|
||||
data = json.load(f)
|
||||
serializer = self.serializer_class(data)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
class Lunch_Heat_View(PuckoView):
|
||||
permission_classes = [AllowAny,]
|
||||
serializer_class = DagensLunchHeat
|
||||
|
||||
def lunch(self, request):
|
||||
file = DAGENS_LUNCH_PATH / "heat.json"
|
||||
with open(file, "r") as f:
|
||||
data = json.load(f)
|
||||
serializer = self.serializer_class(data)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
class Lunch_Max_View(PuckoView):
|
||||
permission_classes = [AllowAny,]
|
||||
serializer_class = DagensLunchMax
|
||||
|
||||
def lunch(self, request):
|
||||
file = DAGENS_LUNCH_PATH / "max.json"
|
||||
with open(file, "r") as f:
|
||||
data = json.load(f)
|
||||
serializer = self.serializer_class(data)
|
||||
return Response(serializer.data, status=200)
|
||||
0
spiders/migrations/__init__.py
Normal file
0
spiders/migrations/__init__.py
Normal file
3
spiders/tests.py
Normal file
3
spiders/tests.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
6
spiders/urls.py
Normal file
6
spiders/urls.py
Normal file
@ -0,0 +1,6 @@
|
||||
from django.urls import path
|
||||
from django.urls import include
|
||||
|
||||
urlpatterns = [
|
||||
path("dagens_lunch/", include("spiders.dagens_lunch.urls"))
|
||||
]
|
||||
2
spiders/views.py
Normal file
2
spiders/views.py
Normal file
@ -0,0 +1,2 @@
|
||||
import json
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user