diff --git a/conntrackt/stripper.py b/conntrackt/stripper.py deleted file mode 100644 --- a/conntrackt/stripper.py +++ /dev/null @@ -1,80 +0,0 @@ -# This was taken from https://github.com/ldiqual/django-linestripper/ - -from django.conf import settings -from django.template.loaders import app_directories - -import re - -# To be set in settings.py -STRIPPER_TAG = getattr(settings, 'STRIPPER_TAG', '__STRIPPER_TAG__') -STRIPPER_CLEAR_LINE = getattr(settings, 'STRIPPER_CLEAR_LINE', False) -STRIPPER_ENABLED = getattr(settings, 'STRIPPER_ENABLED', True) -STRIPPER_ALLOWED_CONTENT_TYPES = getattr(settings, 'STRIPPER_ALLOWED_CONTENT_TYPES', ( - 'text', - 'xml' -)) - -# Finders -FIND_BLANK_LINE = r'\n(\s*)\n' -FIND_START_BLANK_LINE = r'^(\s*)\n' -FIND_TAG = STRIPPER_TAG - -# Replacers -REPLACE_WITH_TAG = '\n'+ STRIPPER_TAG +'\n' if STRIPPER_CLEAR_LINE else r'\n\1'+ STRIPPER_TAG +'\n' -REPLACE_START_WITH_TAG = STRIPPER_TAG +'\n' if STRIPPER_CLEAR_LINE else r'\n\1'+ STRIPPER_TAG +'\n' - -# Deleters -DELETE_BLANK_LINE = '\n' -DELETE_START_BLANK_LINE = '' -DELETE_TAG = '' - -''' -This is called AFTER the template generation. -It suppresses blank lines and deletes STRIPPER_TAG -''' -class StripperMiddleware(object): - def process_response(self, request, response): - if not STRIPPER_ENABLED: - return response - - # Checks if the content type is allowed - allowed = False - for type in STRIPPER_ALLOWED_CONTENT_TYPES: - if type in response['Content-Type']: - allowed = True - break - - # If the content type is not allowed, untag and return - if not allowed: - response.content = response.content.replace(STRIPPER_TAG, DELETE_TAG) - return response - - # Suppress a blank line at the beginning of the document - response.content = re.sub(FIND_START_BLANK_LINE, DELETE_START_BLANK_LINE, response.content) - # Suppress blank lines - response.content = re.sub(FIND_BLANK_LINE, DELETE_BLANK_LINE, response.content) - # Delete STRIPPER_TAG - # response.content = re.sub(FIND_TAG, DELETE_TAG, response.content) - response.content = response.content.replace(STRIPPER_TAG, DELETE_TAG) - return response - -''' -This is called BEFORE the template generation. -It adds STRIPPER_TAG to blank lines so they aren't removed in the middleware -''' -class Loader(app_directories.Loader): - is_usable = True - - def process_content(self, content): - if not STRIPPER_ENABLED: - return content - - content = re.sub(FIND_BLANK_LINE, REPLACE_WITH_TAG, content) - content = re.sub(FIND_START_BLANK_LINE, REPLACE_WITH_TAG, content) - return content - - def load_template(self, template_name, template_dirs=None): - source, origin = self.load_template_source(template_name, template_dirs) - if not STRIPPER_ENABLED: - return source, origin - return self.process_content(source), origin