ekbguid2/mainapp/views.py
2024-08-18 03:34:33 +05:00

169 lines
7.3 KiB
Python
Executable File

from django.shortcuts import render, HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.core.files.storage import default_storage
from django.conf import settings
from django.core.files.base import ContentFile
from adminsystemdb.models import Poseters
from .models import Comments
from datetime import datetime
import random
import ast
import os
# Create your views here.
def index(req):
ran_history = Poseters.objects.filter(papka="history").all()[:3]
ran_places = Poseters.objects.filter(papka="places").all()[:4]
ran_celebrity = Poseters.objects.filter(papka="celebrity").all()[:4]
ran_theaters_and_music = Poseters.objects.filter(papka="theaters_and_music").all()[:4]
return render(req, 'home/index.html',{
"random_history":ran_history,
"random_places":ran_places,
"random_celebrity":ran_celebrity,
"random_theaters_and_music":ran_theaters_and_music
})
def render_forgk(req, defaoul, namee):
try:
src = req.GET
typpee = src["type"]
title = src["title"].replace("%20", " ")
srcc = Poseters.objects.get(papka=typpee, title=title)
ran_history = Poseters.objects.filter(papka="history").all()[:3]
ran_places = Poseters.objects.filter(papka="places").all()[:4]
ran_celebrity = Poseters.objects.filter(papka="celebrity").all()[:4]
ran_theaters_and_music = Poseters.objects.filter(papka="theaters_and_music").all()[:4]
return render(req,
'api/index.html',
{"is_valid":"yes",
'title': srcc.title,
"testthing": ast.literal_eval(srcc.content),
"authtor": srcc.authror,
"date": srcc.date,
"papka": srcc.papka,
"random_history":ran_history,
"random_places":ran_places,
"random_celebrity":ran_celebrity,
"random_theaters_and_music":ran_theaters_and_music
})
except Exception as ex:
srcc = Poseters.objects.filter(papka=defaoul)
ran_history = Poseters.objects.filter(papka="history").all()[:3]
ran_places = Poseters.objects.filter(papka="places").all()[:4]
ran_celebrity = Poseters.objects.filter(papka="celebrity").all()[:4]
ran_theaters_and_music = Poseters.objects.filter(papka="theaters_and_music").order_by('?')[:4]
if srcc:
return render(req, "api/index.html", {"is_valid":"no",
"namee":namee,
"testthing":srcc,
"random_history":ran_history,
"random_places":ran_places,
"random_celebrity":ran_celebrity,
"random_theaters_and_music":ran_theaters_and_music
})
else:
return render(req, "api/index.html", {"is_valid":"noo",
"namee":"ошибка...."})
def history(req, defaoul="history", namee="История"): return render_forgk(req, defaoul, namee)
def places(req, defaoul="places", namee="Места Екатеринбурга"): return render_forgk(req, defaoul, namee)
def celebrity(req, defaoul="celebrity", namee="Знаменитости"): return render_forgk(req, defaoul, namee)
def theaters_and_music(req, defaoul="theaters_and_music", namee="Театры и музыка"): return render_forgk(req, defaoul, namee)
def coments(req):
ran_history = Poseters.objects.filter(papka="history").order_by('?')[:4]
ran_places = Poseters.objects.filter(papka="places").order_by('?')[:4]
ran_celebrity = Poseters.objects.filter(papka="celebrity").order_by('?')[:4]
ran_theaters_and_music = Poseters.objects.filter(papka="theaters_and_music").order_by('?')[:4]
return render(req, "coms/coments.html", {
"random_history":ran_history,
"random_places":ran_places,
"random_celebrity":ran_celebrity,
"random_theaters_and_music":ran_theaters_and_music
})
def post_coment(req):
Comments.objects.create(name=req.GET["name"], mail=req.GET["email"], phone_num=req.GET["phone"], coment=req.GET["message"], date_time=datetime.now())
ran_history = Poseters.objects.filter(papka="history").order_by('?')[:4]
ran_places = Poseters.objects.filter(papka="places").order_by('?')[:4]
ran_celebrity = Poseters.objects.filter(papka="celebrity").order_by('?')[:4]
ran_theaters_and_music = Poseters.objects.filter(papka="theaters_and_music").order_by('?')[:4]
return render(req, "coms/coms_post_res.html", {"coms_name":req.GET["name"],
"random_history":ran_history,
"random_places":ran_places,
"random_celebrity":ran_celebrity,
"random_theaters_and_music":ran_theaters_and_music
})
def get_random():
n = 20
al = "abcdefghigklmnopqrstuvwxyz"
thing = ""
for i in range(0, 16):
a = random.randint(0, 1)
if a == 0:
thing += al[random.randint(0, len(al))]
else:
thing += str(random.randint(0, 10))
return thing
@csrf_exempt
def tg_test_title(req):
try:
if Poseters.objects.filter(title=req.GET["testtitle"]):
return HttpResponse("bad")
return HttpResponse("good")
except Exception:
return HttpResponse("hi")
@csrf_exempt
def tg_post(req):
try:
if Poseters.objects.filter(title=req.GET["testtitle"]):
return HttpResponse("bad")
except Exception: pass
try:
for i in req.FILES.getlist('imgg'):
path = default_storage.save(f"tmp/{i.name}_{get_random()}.jpg", ContentFile(i.read()))
tmp_file = os.path.join(settings.MEDIA_ROOT, path)
img_name = ""
for j in tmp_file[::-1]:
if j == '/':
break
img_name += j
img_name = img_name[::-1]
os.replace(tmp_file, tmp_file[:-len(img_name)-10]+f'static/tmp/{img_name}')
break
reqp = req.POST
category = reqp["category"]
title = reqp["title"]
author = reqp["author"]
time = reqp["time"]
text = f"[['img', ['tmp/{img_name}']]," + reqp["text"]
desc = reqp["desc"]
Poseters.objects.create(papka=category, title=title, authror=author, date=time, content=text, desc=desc, img_preview='tmp/'+img_name)
return HttpResponse("good")
except Exception as ex:
return HttpResponse("hi")
return HttpResponse("hi")