bizcochito.onion/webpage/views.py

97 lines
3.4 KiB
Python
Executable File

from django.http import HttpResponseNotFound, HttpResponseRedirect
from django.shortcuts import render
import os, random
from .models import Booksigner
from .forms import SignbookForm
def image_dict_from_name_list(name_list: list[str]):
dict_list = []
for name in name_list:
url = name.split(".")
url.pop()
url = ".".join(url)
dict_list.append({
"name": name,
"url": url
}
)
return dict_list
def index(request):
# Get random ad from ad dir
ad_list = os.listdir(os.path.join(os.path.dirname(os.path.dirname(__file__)), "webpage", "static/ads/hor/"))
ad = random.choice(ad_list)
# Get list of 81x33 icons
banner_list = image_dict_from_name_list(os.listdir(os.path.join(os.path.dirname(os.path.dirname(__file__)), "webpage", "static/icons/88x31/")))
# Get list of funni gifs
gif_list = image_dict_from_name_list(os.listdir(os.path.join(os.path.dirname(os.path.dirname(__file__)), "webpage", "static/icons/gif/")))
# Get list of banners
banger_list = image_dict_from_name_list(os.listdir(os.path.join(os.path.dirname(os.path.dirname(__file__)), "webpage", "static/icons/banner/")))
if not ad or not banner_list or not gif_list:
return HttpResponseNotFound()
else:
context = {
"title": "THE INDEX",
"ad": ad,
"banner_list": banner_list,
"gif_list": gif_list,
"banger_list": banger_list,
}
return render(request,"index.html", context)
def about(request):
return render(request, "about.html", {"title": "About Me"})
def signbook(request):
signer_list = Booksigner.objects.all()
if request.method == 'POST':
form = SignbookForm(request.POST)
if form.is_valid() and form.validate_capcha():
newsigner = {}
newsigner["name"] = form.cleaned_data['name']
newsigner["website"] = form.cleaned_data['website']
newsigner["email"] = form.cleaned_data['email']
newsigner["comment"] = form.cleaned_data['comment']
host = request.META["SERVER_NAME"]
print(host)
match host:
case "localhost":
newsigner["hosting"] = "Local"
case r".*\.fai.st":
newsigner["hosting"] = "fai"
case _:
newsigner["hosting"] = "???"
signer_list = Booksigner.objects.all()
if newsigner:
Booksigner.objects.create(
name=newsigner["name"],
email=newsigner["email"],
website=newsigner["website"],
comment=newsigner["comment"],
hosting=newsigner["hosting"],
)
context = {
"title": "THE GUESTBOOK",
"signer_list": signer_list
}
return render(request, "signbook.html", context)
context = {
"title": "THE GUESTBOOK",
"signer_list": signer_list,
"error_message": "You didn't input a required input.",
}
return render(
request,
"signbook.html",
context
)
else:
context = {
"title": "THE GUESTBOOK",
"signer_list": signer_list,
"form": SignbookForm()
}
return render(request, "signbook.html", context)