def get(self): InAppMemConfig.UpdateIfNeeded() session = get_current_session() curHost = self.request.host curDomain = self.resolveDomain(curHost) if not curDomain: # TODO: remove self.response.out.write('Domain not found: %s' % curHost) return curDomainName = curDomain.name curPath = self.request.path curPage = None for p in InAppMemConfig.Current().pages: if (not p.domainName or p.domainName == curDomainName) and p._compiledRegex.match(curPath): curPage = p break if not curPage: # TODO: remove self.response.out.write('Page not found: %s' % curPath) return if html_unit_url and self.request.get('_escaped_fragment_', None) != None or self.request.get('nojs', None) == '1': return self.serveSEOContent(curDomain, curPage) isHead = not session or session.get('jvdevver') != '-1' curTag = 'a' if isHead else 'z' if 'jinja' in curPage._parsedFlagList: res = renderWithJinja(curPage.fileName, isHead=isHead, curPage=curPage, curDomain=curDomain, config=InAppMemConfig.Current(), curTag=curTag, webreq=self.request) elif 'melya' in curPage._parsedFlagList: # Melya's js parsing... res = getCurCacheBlob(curPage.fileName, curTag, InAppMemConfig.Current().fileVersion) else: res = getRawFileData(curPage.fileName, curTag) if isHead and 'cache' in curPage._parsedFlagList: SetCachingHeadersForResponse(self.response) content_type, encoding = mimetypes.guess_type(curPage.fileName) if content_type: self.response.headers['Content-Type'] = content_type return self.response.out.write(res)
def dynsrv(self, command): spl = command.split('/', 2) # ['d', 'a1234', 'js/myfile.js'] if len(spl) != 3 or len(spl[1]) == 0 or len(spl[2]) == 0: return self.response.set_status(404) tag = spl[1][0] cacheVerNum = spl[1][1:] fileName = spl[2] if not cacheVerNum: cacheVerNum = getCurCacheVer(fileName, tag) res = getCurCacheBlob(fileName, tag, cacheVerNum) content_type, encoding = mimetypes.guess_type(fileName) if content_type: self.response.headers['Content-Type'] = content_type #if fileName.endswith('.js'): # self.response.headers['Content-Type'] = 'text/javascript' #elif fileName.endswith('.css'): # self.response.headers['Content-Type'] = 'text/css' if tag == 'a': self.SetCachingHeaders() return self.response.out.write(res)