Changeset 2932 in products


Ignore:
Timestamp:
Oct 26, 2010 5:35:28 PM (14 years ago)
Author:
mylan
Message:

#233: Force logging keywords calculation to nearest to context error_log object. Other minor fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/browser/keywords.py

    r2931 r2932  
    55from zope.component import getUtility 
    66from zope.component import queryAdapter 
     7 
     8from Acquisition import aq_acquire 
    79from Products.Five.browser import BrowserView 
    810 
     
    4244            # 2. timeout option added in python 2.6 (so acceptable only in plone4+) 
    4345            try: 
     46                resp = urllib2.urlopen(self.context.absolute_url()) 
    4447                try: 
    45                     resp = urllib2.urlopen(self.context.absolute_url()) 
    4648                    html = resp.read() 
    4749                finally: 
    48                     if 'resp' in locals().keys(): 
    49                         resp.close() 
     50                    resp.close() 
    5051            except (urllib2.URLError, urllib2.HTTPError), e: 
    5152                # In case of exceed timeout period or other URL connection errors. 
     53                # Get nearest to context error_log object (stolen from Zope2/App/startup.py) 
     54                html = None 
    5255                info = sys.exc_info() 
    53                 elog = getToolByName(self.context, "error_log") 
    54                 if elog: 
     56                try: 
     57                    elog = aq_acquire(self.context, '__error_log__', containment=1) 
     58                except AttributeError: 
     59                    pass 
     60                else: 
    5561                    error_url = elog.raising(info) 
    56                 html = None 
    5762        else: 
    5863            html = unicode(self.context()).encode(enc) 
     
    6166        result = [] 
    6267        if html is None: 
    63             sfx = error_url and ", details at %s." % error_url or "." 
    64             result.append("Problem with page retrieval" + sfx) 
     68            result.append("Problem with page retrieval.") 
     69            if error_url: 
     70                result.append("Details at %s." % error_url) 
    6571        else: 
    6672            page_text = transforms.convert("html_to_text", html).getData() 
Note: See TracChangeset for help on using the changeset viewer.