diff --git a/avatar/settings.py b/avatar/settings.py index cd63c1d..642e78a 100644 --- a/avatar/settings.py +++ b/avatar/settings.py @@ -13,6 +13,7 @@ AVATAR_STORAGE_DIR = getattr(settings, 'AVATAR_STORAGE_DIR', 'avatars') AVATAR_GRAVATAR_BACKUP = getattr(settings, 'AVATAR_GRAVATAR_BACKUP', True) AVATAR_GRAVATAR_DEFAULT = getattr(settings, 'AVATAR_GRAVATAR_DEFAULT', None) AVATAR_DEFAULT_URL = getattr(settings, 'AVATAR_DEFAULT_URL', 'avatar/img/default.jpg') +AVATAR_BASE_URL = getattr(settings, 'AVATAR_BASE_URL', 'http://www.gravatar.com') AVATAR_MAX_AVATARS_PER_USER = getattr(settings, 'AVATAR_MAX_AVATARS_PER_USER', 42) AVATAR_MAX_SIZE = getattr(settings, 'AVATAR_MAX_SIZE', 1024 * 1024) AVATAR_THUMB_FORMAT = getattr(settings, 'AVATAR_THUMB_FORMAT', "JPEG") diff --git a/avatar/templatetags/avatar_tags.py b/avatar/templatetags/avatar_tags.py index 645546e..b2364f4 100644 --- a/avatar/templatetags/avatar_tags.py +++ b/avatar/templatetags/avatar_tags.py @@ -9,7 +9,7 @@ from django.core.urlresolvers import reverse from django.contrib.auth.models import User from avatar.settings import (AVATAR_GRAVATAR_BACKUP, AVATAR_GRAVATAR_DEFAULT, - AVATAR_DEFAULT_SIZE) + AVATAR_DEFAULT_SIZE, AVATAR_BASE_URL) from avatar.util import get_primary_avatar, get_default_avatar_url, cache_result from avatar.models import Avatar @@ -27,7 +27,8 @@ def avatar_url(user, size=AVATAR_DEFAULT_SIZE): params = {'s': str(size)} if AVATAR_GRAVATAR_DEFAULT: params['d'] = AVATAR_GRAVATAR_DEFAULT - return "http://www.gravatar.com/avatar/%s/?%s" % ( + return "%s/avatar/%s/?%s" % ( + AVATAR_BASE_URL, md5_constructor(user.email).hexdigest(), urllib.urlencode(params)) else: diff --git a/avatar/urls.py b/avatar/urls.py index db51420..1fbe017 100644 --- a/avatar/urls.py +++ b/avatar/urls.py @@ -1,12 +1,12 @@ from django.conf.urls.defaults import patterns, url -urlpatterns = patterns('avatar.views', - url('^add/$', 'add', name='avatar_add'), - url('^webcam-upload/(?P\d+)', 'webcam_upload', name='avatar-webcam-upload'), - url('^change/$', 'change', name='avatar_change'), - url('^delete/$', 'delete', name='avatar_delete'), - url('^render_primary/(?P[\+\w]+)/(?P[\d]+)/$', 'render_primary', name='avatar_render_primary'), - - url('^list/(?P[\+\w]+)/$', 'avatar_gallery', name='avatar_gallery'), - url('^list/(?P[\+\w]+)/(?P[\d]+)/$', 'avatar', name='avatar'), +urlpatterns = patterns( + 'avatar.views', + url(r'^add/$', 'add', name='avatar_add'), + url(r'^webcam-upload/(?P\d+)', 'webcam_upload', name='avatar-webcam-upload'), + url(r'^change/$', 'change', name='avatar_change'), + url(r'^delete/$', 'delete', name='avatar_delete'), + url(r'^render_primary/(?P[\w\d\.\-_]{3,30})/(?P[\d]+)/$', 'render_primary', name='avatar_render_primary'), + url(r'^list/(?P[\+\w]+)/$', 'avatar_gallery', name='avatar_gallery'), + url(r'^list/(?P[\+\w]+)/(?P[\d]+)/$', 'avatar', name='avatar'), ) diff --git a/setup.py b/setup.py index 40ceb31..55e63a0 100644 --- a/setup.py +++ b/setup.py @@ -110,6 +110,9 @@ Global Settings There are a number of settings available to easily customize the avatars that appear on the site. Listed below are those settings: +AVATAR_BASE_URL + The base URL where to get avatars at gravatar.com. Defaults to ``http://www.gravatar.com``. + AUTO_GENERATE_AVATAR_SIZES An iterable of integers representing the sizes of avatars to generate on upload. This can save rendering time later on if you pre-generate the @@ -160,7 +163,7 @@ setup( url='http://github.com/ericflo/django-avatar/', license='BSD', packages=find_packages(), - package_data = { + package_data={ 'avatar': [ 'templates/notification/*/*.*', 'templates/avatar/*.html',