diff --git a/.gitignore b/.gitignore index 9934d94..d993153 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ __pycache__/ local_settings.py db.sqlite3 db.sqlite3-journal -media + # If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/ # in your Git repository. Update and uncomment the following line accordingly. diff --git a/frame/models.py b/frame/models.py index ba1a0b9..a2fef37 100644 --- a/frame/models.py +++ b/frame/models.py @@ -2,9 +2,11 @@ from django.db import models from django.conf import settings from django.contrib.auth.models import User +from django.core.files import File from PIL import Image import requests from io import BytesIO +from urllib.request import urlretrieve # Create your models here. @@ -18,9 +20,9 @@ class Profile(models.Model): def save(self, *args, **kwargs): super().save(*args, **kwargs) - r = requests.get(self.user.socialaccount_set.first().get_avatar_url()) - img = Image.open(BytesIO(r.content)) - img.thumbnail((300,300)) - print(img) - print(settings.MEDIA_ROOT + self.image.name) - self.image.save("image.jpg", img) \ No newline at end of file + if bool(self.image): + img = Image.open(self.image.path) + frame = Image.open(settings.MEDIA_ROOT + "/frame.png") + img.thumbnail((500, 500)) + img.paste(frame, (0,0), frame) + img.save(self.image.path) \ No newline at end of file diff --git a/frame/views.py b/frame/views.py index 004ef1e..8f302d2 100644 --- a/frame/views.py +++ b/frame/views.py @@ -3,6 +3,9 @@ from django.conf import settings from .models import Profile +from urllib.request import urlretrieve +from django.core.files import File + # Create your views here. def login(request): @@ -12,9 +15,7 @@ def redirect(request): if not Profile.objects.filter(user=request.user).exists(): profile = Profile(user=request.user) profile.save() - else: - profile = Profile.objects.get(user=request.user) - profile.delete() - profile = Profile(user=request.user) - profile.save() + req = urlretrieve(profile.user.socialaccount_set.first().get_avatar_url()) + profile.image.save("image.jpg", File(open(req[0], 'rb'))) + return render(request, 'frame/redirect.html', context={'data': profile}) \ No newline at end of file diff --git a/media/.gitignore b/media/.gitignore new file mode 100644 index 0000000..6ff5704 --- /dev/null +++ b/media/.gitignore @@ -0,0 +1 @@ +profile_pics/* \ No newline at end of file diff --git a/media/frame.png b/media/frame.png new file mode 100644 index 0000000..2a47a6d Binary files /dev/null and b/media/frame.png differ