add persistent storage on postgres and django
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/24 17:26:12 by edbernar #+# #+# #
|
||||
# Updated: 2024/09/27 03:40:12 by tomoron ### ########.fr #
|
||||
# Updated: 2024/11/09 15:53:51 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -14,6 +14,7 @@ from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from ..utils import genString
|
||||
from random import randint
|
||||
from django.db.models import Q
|
||||
import base64
|
||||
import json
|
||||
|
||||
@ -21,11 +22,11 @@ import json
|
||||
def changeBanner(socket, content):
|
||||
while True:
|
||||
generate_name = genString(50)
|
||||
if (not User.objects.filter(banner=f"/banner/{generate_name}.jpg").exists()):
|
||||
if (not User.objects.filter(Q(banner=f"/storage/{generate_name}.jpg") | Q(pfp=f"/storage/{generate_name}.jpg")).exists()):
|
||||
break
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.banner = f"/banner/{generate_name}.jpg"
|
||||
user.banner = f"/storage/{generate_name}.jpg"
|
||||
user.save()
|
||||
with open(f"/var/www/djangoserver/banner/{generate_name}.jpg", "wb") as image_file:
|
||||
with open(f"/var/www/djangoserver/storage/{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,7 +6,7 @@
|
||||
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/09/23 23:35:41 by edbernar #+# #+# #
|
||||
# Updated: 2024/10/04 21:13:28 by tomoron ### ########.fr #
|
||||
# Updated: 2024/11/09 15:58:16 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -14,6 +14,7 @@ from asgiref.sync import sync_to_async
|
||||
from ..models import User
|
||||
from ..utils import genString
|
||||
from random import randint
|
||||
from django.db.models import Q
|
||||
import base64
|
||||
import json
|
||||
|
||||
@ -21,12 +22,12 @@ import json
|
||||
def changePfp(socket, content):
|
||||
while True:
|
||||
generate_name = genString(50)
|
||||
if (not User.objects.filter(pfp=f"/pfp/{generate_name}.jpg").exists()):
|
||||
if (not User.objects.filter(Q(banner=f"/storage/{generate_name}.jpg") | Q(pfp=f"/storage/{generate_name}.jpg")).exists()):
|
||||
break
|
||||
with open(f"/var/www/djangoserver/pfp/{generate_name}.jpg", "wb") as image_file:
|
||||
with open(f"/var/www/djangoserver/storage/{generate_name}.jpg", "wb") as image_file:
|
||||
image_file.write(base64.b64decode(content["img"]))
|
||||
user = User.objects.get(id=socket.id)
|
||||
user.pfp = f"/pfp/{generate_name}.jpg"
|
||||
user.pfp = f"/storage/{generate_name}.jpg"
|
||||
user.save()
|
||||
socket.pfp = user.pfp
|
||||
socket.scope["session"]["pfp"] = user.pfp
|
||||
|
@ -32,8 +32,7 @@ urlpatterns = [
|
||||
path("logout", views.logout, name='logout'),
|
||||
path("verify", views.verify, name='verify'),
|
||||
path("404", views.err404, name='err404'),
|
||||
path("pfp/<str>", views.pfp, name='pfp'),
|
||||
path("banner/<str>", views.banner, name='banner'),
|
||||
path("storage/<str>", views.getStorage, name='getStorage'),
|
||||
path("settingsPage", views.settingsPage, name='settingsPage'),
|
||||
path("tournamentPage", views.tournamentPage, name='tournamentPage'),
|
||||
]
|
||||
|
@ -137,19 +137,10 @@ def handler404(request, exception):
|
||||
def err404(request):
|
||||
return(render(request, "err404.html"))
|
||||
|
||||
def pfp(request, str):
|
||||
def getStorage(request, str):
|
||||
ret = None
|
||||
try:
|
||||
image_path = os.path.join('/var/www/djangoserver/pfp/', str)
|
||||
ret = FileResponse(open(image_path, 'rb'), content_type='image/png')
|
||||
except Exception:
|
||||
pass
|
||||
return ret
|
||||
|
||||
def banner(request, str):
|
||||
ret = None
|
||||
try:
|
||||
image_path = os.path.join('/var/www/djangoserver/banner/', str)
|
||||
image_path = os.path.join('/var/www/djangoserver/storage/', str)
|
||||
ret = FileResponse(open(image_path, 'rb'), content_type='image/png')
|
||||
except Exception:
|
||||
ret = FileResponse("banner not found", status=404)
|
||||
|
Reference in New Issue
Block a user