def load_or_init_optimizations(self): from drydrop.app.models import Optimizations # fetch settings optimizations = Optimizations.all().filter("domain =", os.environ['SERVER_NAME']).fetch(1) if len(optimizations)==0: o = Optimizations() o.minify_html = False; o.expires_js = False; o.minify_js = False; o.expires_css = False; o.minify_css = False; o.expires_images = False; o.smush_png = False; o.smush_jpg = False; o.domain = os.environ['SERVER_NAME'] o.put() optimizations = [o] self.optimizations = optimizations[0]
def get_resource(self, path): domain = os.environ['SERVER_NAME'] resource = Resource.find(path=path, generation=self.settings.version, domain=domain) if resource is None: content = self.fetch_resource_content(path) created_on = self.fetch_file_timestamp(path) resource = Resource(path=path, content=content, generation=self.settings.version) if created_on is not None: resource.created_on = created_on try: length = len(resource.content) except: length = 0 if length>0: log_event("Caching resource <code>%s</code> (%d bytes)" % (path, length)) logging.debug("VFS: caching resource %s (%d bytes) for %s", path, length, domain) resource.domain = domain if content!=None: basename, extension = os.path.splitext(path) optimizations = Optimizations.all().filter("domain =", os.environ['SERVER_NAME']).get() logging.info('optimizations: '+str(optimizations)) if extension=='.js' and optimizations and optimizations.minify_js: logging.info('Deferring to minify') logging.debug(str(path)+' '+str(self.settings.version)+' '+str(domain)) deferred.defer(minify_js, path, self.settings.version, domain) elif extension=='.css' and optimizations and optimizations.minify_css: from drydrop.lib.slimmer import css_slimmer resource.content=css_slimmer(resource.content) elif (extension=='.html' or (extension==None and path[-1]=='/')) and optimizations and optimizations.minify_html: from drydrop.lib.slimmer import html_slimmer resource.content=html_slimmer(resource.content) elif (extension=='.png' or extension=='.jpg' or extension=='.jpeg') and optimizations and optimizations.minify_css: logging.info('Deferring to smush') logging.debug(str(path)+' '+str(self.settings.version)+' '+str(domain)) deferred.defer(smush, path, self.settings.version, domain) resource.save() try: length = len(resource.content) except: length = 0 logging.debug("VFS: serving resource %s (%d bytes) for %s", path, length, domain) return resource