Example #1
0
    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)
Example #2
0
    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)