53 lines
No EOL
1.5 KiB
Python
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') |