Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 981

Show
Ignore:
Timestamp:
02/28/06 08:31:44
Author:
rdelon
Message:

Improvement in nsgmlsfilter

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/filters/nsgmlsfilter.py

    r856 r981  
    1515        # the tidy filter, by its very nature it's not generator friendly,  
    1616        # so we just collect the body and work with it. 
    17         originalBody = cherrypy.response.collapse_body() 
     17        original_body = cherrypy.response.collapse_body() 
    1818         
    1919        fct = cherrypy.response.headers.get('Content-Type', '') 
     
    2424            encoding = fct[i+8:] 
    2525        if ct == 'text/html': 
     26            # Remove bits of Javascript (nsgmls doesn't seem to handle 
     27            #   them correctly (for instance, if <a appears in your 
     28            #   Javascript code nsgmls complains about it) 
     29            while True: 
     30                i = original_body.find('<script') 
     31                if i == -1: 
     32                    break 
     33                j = original_body.find('</script>', i) 
     34                if j == -1: 
     35                    break 
     36                original_body = original_body[:i] + original_body[j+9:] 
     37 
    2638            tmpdir = cherrypy.config.get('nsgmls_filter.tmp_dir') 
    27             pageFile = os.path.join(tmpdir, 'page.html') 
    28             errFile = os.path.join(tmpdir, 'nsgmls.err') 
    29             f = open(pageFile, 'wb') 
    30             f.write(originalBody) 
     39            page_file = os.path.join(tmpdir, 'page.html') 
     40            err_file = os.path.join(tmpdir, 'nsgmls.err') 
     41            f = open(page_file, 'wb') 
     42            f.write(original_body) 
    3143            f.close() 
    32             nsgmlsEncoding = encoding.replace('-', '') 
    33             nsgmlsPath = cherrypy.config.get('nsgmls_filter.nsgmls_path') 
    34             catalogPath = cherrypy.config.get('nsgmls_filter.catalog_path') 
     44            nsgmls_path = cherrypy.config.get('nsgmls_filter.nsgmls_path') 
     45            catalog_path = cherrypy.config.get('nsgmls_filter.catalog_path') 
    3546            command = '%s -c%s -f%s -s -E10 %s' % ( 
    36                 nsgmlsPath, catalogPath, errFile, pageFile) 
     47                nsgmls_path, catalog_path, err_file, page_file) 
    3748            command = command.replace('\\', '/') 
    3849            os.system(command) 
    39             f = open(errFile, 'rb') 
     50            f = open(err_file, 'rb') 
    4051            err = f.read() 
    4152            f.close() 
    42             errList = err.splitlines() 
    43             newErrList = [] 
    44             for err in errList
     53            errs = err.splitlines() 
     54            new_errs = [] 
     55            for err in errs
    4556                ignore = False 
    46                 for errIgn in cherrypy.config.get('nsgmls_filter.errors_to_ignore', []): 
    47                     if err.find(errIgn) != -1: 
     57                for err_ign in cherrypy.config.get('nsgmls_filter.errors_to_ignore', []): 
     58                    if err.find(err_ign) != -1: 
    4859                        ignore = True 
    4960                        break 
    5061                if not ignore: 
    51                     newErrList.append(err) 
    52             if newErrList
    53                 newBody = "Wrong HTML:<br />" + cgi.escape('\n'.join(newErrList)).replace('\n','<br />') 
    54                 newBody += '<br /><br />' 
     62                    new_errs.append(err) 
     63            if new_errs
     64                new_body = "Wrong HTML:<br />" + cgi.escape('\n'.join(new_errs)).replace('\n','<br />') 
     65                new_body += '<br /><br />' 
    5566                i = 0 
    56                 for line in originalBody.splitlines(): 
     67                for line in original_body.splitlines(): 
    5768                    i += 1 
    58                     newBody += "%03d - "%i + cgi.escape(line).replace('\t','    ').replace(' ','&nbsp;') + '<br />' 
     69                    new_body += "%03d - "%i + cgi.escape(line).replace('\t','    ').replace(' ','&nbsp;') + '<br />' 
    5970                 
    60                 cherrypy.response.body = newBody 
     71                cherrypy.response.body = new_body 
    6172 

Hosted by WebFaction

Log in as guest/cpguest to create tickets