Minor cleanup of the CssAbsoluteFilter class.

This commit is contained in:
Jannis Leidel
2012-03-18 01:27:30 +01:00
parent 937dfac275
commit 39230ea887

View File

@@ -10,6 +10,7 @@ from compressor.utils import staticfiles
URL_PATTERN = re.compile(r'url\(([^\)]+)\)') URL_PATTERN = re.compile(r'url\(([^\)]+)\)')
SRC_PATTERN = re.compile(r'src=([\'"])(.+?)\1') SRC_PATTERN = re.compile(r'src=([\'"])(.+?)\1')
SCHEMES = ('http://', 'https://', '/', 'data:')
class CssAbsoluteFilter(FilterBase): class CssAbsoluteFilter(FilterBase):
@@ -72,30 +73,26 @@ class CssAbsoluteFilter(FilterBase):
settings.COMPRESS_CSS_HASHING_METHOD) settings.COMPRESS_CSS_HASHING_METHOD)
if suffix is None: if suffix is None:
return url return url
if url.startswith(('http://', 'https://', '/')): if url.startswith(SCHEMES):
if "?" in url: if "?" in url:
url = "%s&%s" % (url, suffix) url = "%s&%s" % (url, suffix)
else: else:
url = "%s?%s" % (url, suffix) url = "%s?%s" % (url, suffix)
return url return url
def url_converter(self, matchobj): def _converter(self, matchobj, group, template):
url = matchobj.group(1) url = matchobj.group(group)
url = url.strip(' \'"') url = url.strip(' \'"')
if url.startswith(('http://', 'https://', '/', 'data:')): if url.startswith(SCHEMES):
return "url('%s')" % self.add_suffix(url) return "url('%s')" % self.add_suffix(url)
full_url = posixpath.normpath('/'.join([str(self.directory_name), full_url = posixpath.normpath('/'.join([str(self.directory_name),
url])) url]))
if self.has_scheme: if self.has_scheme:
full_url = "%s%s" % (self.protocol, full_url) full_url = "%s%s" % (self.protocol, full_url)
return "url('%s')" % self.add_suffix(full_url) return template % self.add_suffix(full_url)
def url_converter(self, matchobj):
return self._converter(matchobj, 1, "url('%s')")
def src_converter(self, matchobj): def src_converter(self, matchobj):
url = matchobj.group(2) return self._converter(matchobj, 2, "src='%s'")
url = url.strip(' \'"')
if url.startswith(('http://', 'https://', '/', 'data:')):
return "src='%s'" % self.add_suffix(url)
full_url = posixpath.normpath('/'.join([str(self.directory_name), url]))
if self.has_scheme:
full_url = "%s%s" % (self.protocol, full_url)
return "src='%s'" % self.add_suffix(full_url)