from django.conf import settings def full_url(path): """ Given a relative path, return a full url usable for federation purpose """ root = settings.FUNKWHALE_URL if path.startswith('/') and root.endswith('/'): return root + path[1:] elif not path.startswith('/') and not root.endswith('/'): return root + '/' + path else: return root + path def clean_wsgi_headers(raw_headers): """ Convert WSGI headers from CONTENT_TYPE to Content-Type notation """ cleaned = {} non_prefixed = [ 'content_type', 'content_length', ] for raw_header, value in raw_headers.items(): h = raw_header.lower() if not h.startswith('http_') and h not in non_prefixed: continue words = h.replace('http_', '', 1).split('_') cleaned_header = '-'.join([w.capitalize() for w in words]) cleaned[cleaned_header] = value return cleaned