def process_css_file_form_2_imports(page, file, url): output = [] offset = 0 match_iter = IMPORT_FORM_2.finditer(file) for match in match_iter: if match.group(1) == '@import': # If another css url. # Calculating the absolute URL of the CSS file. import_url = str(helpers.unescape_html(get_absolute_import_url(match.group(3), url))) # Checking the media type for the import, we're only caching screen CSS. media_ok = True media = match.group(5) if len(media.strip()): try: media.index("screen") except: media_ok = False if media_ok: # Creating a request to fetch the linked CSS file. request = GetCssRequest.objects.create(url=import_url, page=page) # Replacing the original import statement with a new one, that points to our servers. output.append(file[offset:match.start()]) output.append("@import url('%s');" % request.calculate_local_url()) else: # Treating as if it were a regular file. output.append(file[offset:match.start()]) output.append("%surl('%s')%s" % (match.group(2), import_url, match.group(4) or '')) offset = match.end() else: # If a non-css url. # Calculating the absolute URL of the file. import_url = str(helpers.unescape_html(get_absolute_import_url(match.group(3), url))) output.append(file[offset:match.start()]) output.append("%surl('%s')%s" % (match.group(2), import_url, match.group(4) or '')) offset = match.end() output.append(file[offset:len(file)]) return "".join(output)
def process_css_file_form_1_imports(page, file, url): output = [] offset = 0 match_iter = IMPORT_FORM_1.finditer(file) for match in match_iter: # Calculating the absolute URL of the CSS file. import_url = str(helpers.unescape_html(get_absolute_import_url(match.group(1), url))) # Creating a request to fetch the linked CSS file. request = GetCssRequest.objects.create(url=import_url, page=page) # Replacing the original import statement with a new one, that points to our servers. output.append(file[offset:match.start()]) output.append("@import url('%s');" % request.calculate_local_url()) offset = match.end() output.append(file[offset:len(file)]) return "".join(output)