mirror of
https://github.com/jazzband/django-avatar.git
synced 2026-05-01 20:24:45 +00:00
More Python 3 fixes.
This commit is contained in:
parent
05ef51078f
commit
7a32e3bd47
4 changed files with 15 additions and 19 deletions
|
|
@ -7,7 +7,7 @@ from django.db import models
|
|||
from django.core.files.base import ContentFile
|
||||
from django.core.files.storage import get_storage_class
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.encoding import smart_str
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils import six
|
||||
from django.db.models import signals
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ def avatar_file_path(instance=None, filename=None, size=None, ext=None):
|
|||
# File doesn't exist yet
|
||||
if AVATAR_HASH_FILENAMES:
|
||||
(root, ext) = os.path.splitext(filename)
|
||||
filename = hashlib.md5(smart_str(filename)).hexdigest()
|
||||
filename = hashlib.md5(force_bytes(filename)).hexdigest()
|
||||
filename = filename + ext
|
||||
if size:
|
||||
tmppath.extend(['resized', str(size)])
|
||||
|
|
@ -106,18 +106,18 @@ class Avatar(models.Model):
|
|||
orig = self.avatar.storage.open(self.avatar.name, 'rb')
|
||||
image = Image.open(orig)
|
||||
quality = quality or AVATAR_THUMB_QUALITY
|
||||
(w, h) = image.size
|
||||
w, h = image.size
|
||||
if w != size or h != size:
|
||||
if w > h:
|
||||
diff = (w - h) / 2
|
||||
diff = int((w - h) / 2)
|
||||
image = image.crop((diff, 0, w - diff, h))
|
||||
else:
|
||||
diff = (h - w) / 2
|
||||
diff = int((h - w) / 2)
|
||||
image = image.crop((0, diff, w, h - diff))
|
||||
if image.mode != "RGB":
|
||||
image = image.convert("RGB")
|
||||
image = image.resize((int(size), int(size)), AVATAR_RESIZE_METHOD)
|
||||
thumb = six.StringIO()
|
||||
image = image.resize((size, size), AVATAR_RESIZE_METHOD)
|
||||
thumb = six.BytesIO()
|
||||
image.save(thumb, AVATAR_THUMB_FORMAT, quality=quality)
|
||||
thumb_file = ContentFile(thumb.getvalue())
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
from django.conf import settings
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
dir(Image) # Placate PyFlakes
|
||||
except ImportError:
|
||||
import Image
|
||||
from PIL import Image
|
||||
|
||||
AVATAR_DEFAULT_SIZE = getattr(settings, 'AVATAR_DEFAULT_SIZE', 80)
|
||||
AUTO_GENERATE_AVATAR_SIZES = getattr(settings, 'AUTO_GENERATE_AVATAR_SIZES', (AVATAR_DEFAULT_SIZE,))
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
import urllib
|
||||
import hashlib
|
||||
|
||||
try:
|
||||
from urllib.parse import urljoin
|
||||
from urllib.parse import urljoin, urlencode
|
||||
except ImportError:
|
||||
from urlparse import urljoin
|
||||
from urllib import urlencode
|
||||
|
||||
from django import template
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from avatar.settings import (AVATAR_GRAVATAR_BACKUP, AVATAR_GRAVATAR_DEFAULT,
|
||||
|
|
@ -32,8 +33,8 @@ def avatar_url(user, size=AVATAR_DEFAULT_SIZE):
|
|||
params = {'s': str(size)}
|
||||
if AVATAR_GRAVATAR_DEFAULT:
|
||||
params['d'] = AVATAR_GRAVATAR_DEFAULT
|
||||
path = "%s/?%s" % (hashlib.md5(user.email).hexdigest(),
|
||||
urllib.urlencode(params))
|
||||
path = "%s/?%s" % (hashlib.md5(force_bytes(user.email)).hexdigest(),
|
||||
urlencode(params))
|
||||
return urljoin(AVATAR_GRAVATAR_BASE_URL, path)
|
||||
|
||||
return get_default_avatar_url()
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import hashlib
|
|||
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.utils.encoding import smart_str
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils import six
|
||||
from django.template.defaultfilters import slugify
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ def get_cache_key(user_or_username, size, prefix):
|
|||
user_or_username = get_username(user_or_username)
|
||||
key = six.u('%s_%s_%s') % (prefix, user_or_username, size)
|
||||
return six.u('%s_%s') % (slugify(key)[:100],
|
||||
hashlib.md5(smart_str(key)).hexdigest())
|
||||
hashlib.md5(force_bytes(key)).hexdigest())
|
||||
|
||||
|
||||
def cache_result(func):
|
||||
|
|
|
|||
Loading…
Reference in a new issue