def get_default_avatar(self, default_size=32): # user default avatar img_tag = """<img src="%s" width="%s" height="%s" class="avatar" alt="" />""" % \ (get_default_avatar_url(), default_size, default_size) pattern = r'src="(.*)"' repl = r'src="%s\1"' % get_site_scheme_and_netloc() return re.sub(pattern, repl, img_tag)
def add_notice_from_info(notices): '''Add 'msg_from' or 'default_avatar_url' to notice. ''' default_avatar_url = get_default_avatar_url() for notice in notices: if notice.is_user_message(): d = notice.user_message_detail_to_dict() if d.get('msg_from') is not None: notice.msg_from = d.get('msg_from') else: notice.default_avatar_url = default_avatar_url elif notice.is_group_msg(): d = notice.group_message_detail_to_dict() if d.get('msg_from') is not None: notice.msg_from = d.get('msg_from') else: notice.default_avatar_url = default_avatar_url elif notice.is_file_uploaded_msg(): notice.default_avatar_url = default_avatar_url elif notice.is_repo_share_msg(): try: d = json.loads(notice.detail) notice.msg_from = d['share_from'] except Exception as e: logger.error(e) notice.default_avatar_url = default_avatar_url elif notice.is_repo_share_to_group_msg(): try: d = json.loads(notice.detail) notice.msg_from = d['share_from'] except Exception as e: logger.error(e) notice.default_avatar_url = default_avatar_url elif notice.is_group_join_request(): try: d = json.loads(notice.detail) notice.msg_from = d['username'] except Exception as e: logger.error(e) notice.default_avatar_url = default_avatar_url elif notice.is_add_user_to_group(): try: d = json.loads(notice.detail) notice.msg_from = d['group_staff'] except Exception as e: logger.error(e) notice.default_avatar_url = default_avatar_url else: pass return notices
def api_avatar_url(user, size=AVATAR_DEFAULT_SIZE): avatar = get_primary_avatar(user, size=size) if avatar: url = avatar.avatar_url(size) date_uploaded = avatar.date_uploaded return url, False, date_uploaded else: return get_default_avatar_url(), True, None
def avatar_url(user, size=AVATAR_DEFAULT_SIZE): avatar = get_primary_avatar(user, size=size) if avatar: return avatar.avatar_url(size) else: if AVATAR_GRAVATAR_BACKUP: params = {'s': str(size)} if AVATAR_GRAVATAR_DEFAULT: params['d'] = AVATAR_GRAVATAR_DEFAULT return "http://www.gravatar.com/avatar/%s/?%s" % (hashlib.md5( user.email).hexdigest(), urllib.urlencode(params)) else: return get_default_avatar_url()
def render_primary(request, extra_context={}, user=None, size=AVATAR_DEFAULT_SIZE, *args, **kwargs): size = int(size) avatar = get_primary_avatar(user, size=size) if avatar: # FIXME: later, add an option to render the resized avatar dynamically # instead of redirecting to an already created static file. This could # be useful in certain situations, particulary if there is a CDN and # we want to minimize the storage usage on our static server, letting # the CDN store those files instead return HttpResponseRedirect(avatar.avatar_url(size)) else: url = get_default_avatar_url() return HttpResponseRedirect(url)
def avatar_url(user, size=AVATAR_DEFAULT_SIZE): avatar = get_primary_avatar(user, size=size) if avatar: return avatar.avatar_url(size) else: if AVATAR_GRAVATAR_BACKUP: params = {'s': str(size)} if AVATAR_GRAVATAR_DEFAULT: params['d'] = AVATAR_GRAVATAR_DEFAULT return "http://www.gravatar.com/avatar/%s/?%s" % ( hashlib.md5(user.email).hexdigest(), urllib.urlencode(params)) else: return get_default_avatar_url()
def add_notice_from_info(notices): '''Add 'msg_from' or 'default_avatar_url' to notice. ''' default_avatar_url = get_default_avatar_url() for notice in notices: if notice.is_user_message(): d = notice.user_message_detail_to_dict() notice.msg_from = d.get('msg_from') elif notice.is_group_msg(): d = notice.group_message_detail_to_dict() if d.get('msg_from') is not None: notice.msg_from = d.get('msg_from') else: notice.default_avatar_url = default_avatar_url elif notice.is_grpmsg_reply(): d = notice.grpmsg_reply_detail_to_dict() if d.get('reply_from') is not None: notice.msg_from = d.get('reply_from') else: notice.default_avatar_url = default_avatar_url elif notice.is_file_uploaded_msg(): notice.default_avatar_url = default_avatar_url elif notice.is_repo_share_msg(): d = json.loads(notice.detail) notice.msg_from = d['share_from'] elif notice.is_priv_file_share_msg(): d = json.loads(notice.detail) notice.msg_from = d['share_from'] elif notice.is_group_join_request(): d = json.loads(notice.detail) notice.msg_from = d['username'] else: pass return notices
def api_avatar_url(user, size=AVATAR_DEFAULT_SIZE): service_url = DTABLE_WEB_SERVICE_URL service_url = service_url.rstrip('/') # when store avatars in the media directory if not AVATAR_FILE_STORAGE: # urlparse('https://192.157.12.3:89/demo') # ParseResult(scheme='https', netloc='192.157.12.3:89', path='/demo', params='', query='', fragment='') parse_result = urlparse(service_url) service_url = '%s://%s' % (parse_result[0], parse_result[1]) avatar = get_primary_avatar(user, size=size) if avatar: url = avatar.avatar_url(size) date_uploaded = avatar.date_uploaded # /media/avatars/6/9/5011f01afac2a506b9544c5ce21a0a/resized/32/109af9901c0fd38ab39d018f5cd4baf6.png return service_url + url, False, date_uploaded else: # /media/avatars/default.png return service_url + get_default_avatar_url(), True, None
def add_notice_from_info(notices): '''Add 'msg_from' or 'default_avatar_url' to notice. ''' default_avatar_url = get_default_avatar_url() for notice in notices: notice.default_avatar_url = default_avatar_url if notice.is_add_user_to_group_msg(): try: d = json.loads(notice.detail) notice.msg_from = d['group_staff'] except Exception as e: logger.error(e) if notice.is_share_dtable_to_user_msg(): try: d = json.loads(notice.detail) notice.msg_from = d['share_user'] except Exception as e: logger.error(e) return notices
def avatar_url(user, size=AVATAR_DEFAULT_SIZE): avatar = get_primary_avatar(user, size=size) if avatar: url = avatar.avatar_url(size) else: if AVATAR_GRAVATAR_BACKUP: params = {'s': str(size)} if AVATAR_GRAVATAR_DEFAULT: params['d'] = AVATAR_GRAVATAR_DEFAULT return "http://www.gravatar.com/avatar/%s/?%s" % ( hashlib.md5(user.email.encode('utf-8')).hexdigest(), urllib.parse.urlencode(params)) else: url = get_default_avatar_url() # when store avatars in the media directory if not AVATAR_FILE_STORAGE: return url if SITE_ROOT != '/': return '/%s/%s' % (SITE_ROOT.strip('/'), url.strip('/')) else: return url