Site/Django
- can change pfp and banner
This commit is contained in:
@ -34,6 +34,8 @@ RUN mkdir -p /var/www/djangoserver/
|
||||
WORKDIR /var/www/djangoserver
|
||||
STOPSIGNAL SIGKILL
|
||||
RUN mkdir -p /var/www/djangoserver/static/
|
||||
RUN mkdir -p /var/www/djangoserver/pfp/
|
||||
RUN mkdir -p /var/www/djangoserver/banner/
|
||||
|
||||
COPY file/server /var/www/djangoserver/server
|
||||
RUN chmod 755 /var/www/djangoserver/ && chown -R www-data:www-data /var/www/djangoserver/
|
||||
|
@ -0,0 +1,38 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# changeBanner.py :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/24 17:26:12 by edbernar #+# #+# #
|
||||
# Updated: 2024/09/24 17:32:09 by edbernar ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from random import randint
|
||||
import base64
|
||||
import json
|
||||
|
||||
def genereateRandomName():
|
||||
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
len = 50
|
||||
name = "a"
|
||||
for i in range(0, len):
|
||||
name += chars[randint(0, 61)]
|
||||
return name
|
||||
|
||||
@sync_to_async
|
||||
def changeBanner(socket, content):
|
||||
while True:
|
||||
generate_name = genereateRandomName()
|
||||
if (not User.objects.filter(banner=f"/banner/{generate_name}.jpg").exists()):
|
||||
break
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.banner = f"/banner/{generate_name}.jpg"
|
||||
user.save()
|
||||
with open(f"/var/www/djangoserver/banner/{generate_name}.jpg", "wb") as image_file:
|
||||
image_file.write(base64.b64decode(content["img"]))
|
||||
socket.sync_send(json.dumps({"type": "change_pfp", "content": {'banner': user.banner}}))
|
@ -6,16 +6,33 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/23 23:35:41 by edbernar #+# #+# #
|
||||
# Updated: 2024/09/23 23:48:45 by edbernar ### ########.fr #
|
||||
# Updated: 2024/09/24 15:53:26 by edbernar ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from random import randint
|
||||
import base64
|
||||
import json
|
||||
|
||||
def genereateRandomName():
|
||||
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
len = 50
|
||||
name = "a"
|
||||
for i in range(0, len):
|
||||
name += chars[randint(0, 61)]
|
||||
return name
|
||||
|
||||
@sync_to_async
|
||||
def changePfp(socket, content):
|
||||
with open("./a.jpg", "w") as image_file:
|
||||
image_file.write(content["img"])
|
||||
while True:
|
||||
generate_name = genereateRandomName()
|
||||
if (not User.objects.filter(pfp=f"/pfp/{generate_name}.jpg").exists()):
|
||||
break
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.pfp = f"/pfp/{generate_name}.jpg"
|
||||
user.save()
|
||||
with open(f"/var/www/djangoserver/pfp/{generate_name}.jpg", "wb") as image_file:
|
||||
image_file.write(base64.b64decode(content["img"]))
|
||||
socket.sync_send(json.dumps({"type": "change_pfp", "content": {'pfp': user.pfp}}))
|
@ -30,7 +30,9 @@ urlpatterns = [
|
||||
path("login42", views.login42, name='login42'),
|
||||
path("logout", views.logout, name='logout'),
|
||||
path("verify", views.verify, name='verify'),
|
||||
path("404", views.err404, name='err404')
|
||||
path("404", views.err404, name='err404'),
|
||||
path("pfp/<str>", views.pfp, name='pfp'),
|
||||
path("banner/<str>", views.banner, name='banner'),
|
||||
]
|
||||
|
||||
handler404 = "server.views.handler404"
|
||||
|
@ -1,4 +1,4 @@
|
||||
from django.http import HttpResponse
|
||||
from django.http import HttpResponse, FileResponse
|
||||
from django.shortcuts import render, redirect
|
||||
from .models import User, MailVerify
|
||||
from .data import UID42, SECRET42, SERVER_URL
|
||||
@ -126,7 +126,15 @@ def logout(request):
|
||||
return redirect("/")
|
||||
|
||||
def handler404(request, exception):
|
||||
return(index(request));
|
||||
return(index(request))
|
||||
|
||||
def err404(request):
|
||||
return(render(request, "err404.html"))
|
||||
|
||||
def pfp(request, str):
|
||||
image_path = os.path.join('/var/www/djangoserver/pfp/', str)
|
||||
return FileResponse(open(image_path, 'rb'), content_type='image/png')
|
||||
|
||||
def banner(request, str):
|
||||
image_path = os.path.join('/var/www/djangoserver/banner/', str)
|
||||
return FileResponse(open(image_path, 'rb'), content_type='image/png')
|
@ -6,7 +6,7 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/09 14:31:30 by tomoron #+# #+# #
|
||||
# Updated: 2024/09/23 23:36:04 by edbernar ### ########.fr #
|
||||
# Updated: 2024/09/24 17:25:54 by edbernar ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -26,17 +26,18 @@ from .typeRequests.searchUser import searchUser
|
||||
from .typeRequests.createAccount import createAccount
|
||||
from .typeRequests.login import login
|
||||
from .typeRequests.getAllListUser import getAllListUser
|
||||
from .typeRequests.changeBanner import changeBanner
|
||||
from .typeRequests.gameRequest import gameRequest
|
||||
from .typeRequests.getUserInfo import getUserInfo
|
||||
from .typeRequests.changePfp import changePfp
|
||||
|
||||
typeRequest = ["login", "get_private_list_user", "get_private_list_message",
|
||||
"send_private_message", "create_account", "get_all_list_user", "game",
|
||||
"search_user", "get_user_info", "change_pfp"
|
||||
"search_user", "get_user_info", "change_pfp", "change_banner"
|
||||
]
|
||||
functionRequest = [login, getPrivateListUser, getPrivateListMessage,
|
||||
sendPrivateMessage, createAccount, getAllListUser, gameRequest,
|
||||
searchUser, getUserInfo, changePfp
|
||||
searchUser, getUserInfo, changePfp, changeBanner
|
||||
]
|
||||
|
||||
from random import randint
|
||||
|
Reference in New Issue
Block a user