26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from compressor.conf import settings
 | 
						|
from compressor.base import Compressor, SOURCE_HUNK, SOURCE_FILE
 | 
						|
 | 
						|
 | 
						|
class JsCompressor(Compressor):
 | 
						|
 | 
						|
    def __init__(self, content=None, output_prefix="js", context=None):
 | 
						|
        super(JsCompressor, self).__init__(content, output_prefix, context)
 | 
						|
        self.filters = list(settings.COMPRESS_JS_FILTERS)
 | 
						|
        self.type = output_prefix
 | 
						|
 | 
						|
    def split_contents(self):
 | 
						|
        if self.split_content:
 | 
						|
            return self.split_content
 | 
						|
        for elem in self.parser.js_elems():
 | 
						|
            attribs = self.parser.elem_attribs(elem)
 | 
						|
            if 'src' in attribs:
 | 
						|
                basename = self.get_basename(attribs['src'])
 | 
						|
                filename = self.get_filename(basename)
 | 
						|
                content = (SOURCE_FILE, filename, basename, elem)
 | 
						|
                self.split_content.append(content)
 | 
						|
            else:
 | 
						|
                content = self.parser.elem_content(elem)
 | 
						|
                self.split_content.append((SOURCE_HUNK, content, None, elem))
 | 
						|
        return self.split_content
 |