torreta-del-drac-server/server/views.py
2025-04-24 12:59:20 +02:00

53 lines
No EOL
1.5 KiB
Python

import json
import random
from django.db import IntegrityError
from django.http import HttpResponse, Http404
from django.shortcuts import redirect
from server.filters import ProfanityFilter
from server.models import Dragon
pf = ProfanityFilter()
def is_profane(value):
return pf.is_profane(value)
def add(request, origin, name, color, shirt, hat, decor):
origin = origin.strip()
name = name.strip()
color = int(color.strip())
shirt = int(shirt.strip())
hat = int(hat.strip())
decor = int(decor.strip())
if is_profane(name) or is_profane(origin):
print("profanity detected")
return HttpResponse("profanity detected")
try:
dragon = Dragon.objects.create(origin=origin, name=name, color=color, shirt=shirt, hat=hat, decor=decor)
print(f'Received dragon ({dragon})')
except IntegrityError:
print('Dragon already exists')
return HttpResponse('')
def get(request, origin):
items = list(Dragon.objects.all().exclude(origin=origin))
if len(items) == 0:
print('hey')
raise Http404
random_item: Dragon = random.choice(items)
response_data = {'origin': random_item.origin, 'name': random_item.name, 'color': random_item.color,
'shirt': random_item.shirt, 'hat': random_item.hat, 'decor': random_item.decor}
return HttpResponse(json.dumps(response_data), content_type="application/json")
def index(request):
return redirect('https://geri8.itch.io/la-torreta-del-drac')