Changeset 2958 in products for quintagroup.seoptimizer/branches/plone4/quintagroup/seoptimizer/browser/keywords.py
- Timestamp:
- Nov 1, 2010 5:50:32 PM (14 years ago)
- Location:
- quintagroup.seoptimizer/branches/plone4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.seoptimizer/branches/plone4
- Property svn:mergeinfo
-
old new 1 1 /quintagroup.seoptimizer/branches/refactoring2.3.0:1776-2133 2 /quintagroup.seoptimizer/trunk:2435-2440,2885-2901 2 /quintagroup.seoptimizer/trunk:2435-2440,2885-2901,2903-2955
-
- Property svnmerge-integrated changed from /quintagroup.seoptimizer/trunk:1-3478,3480-3513,3515-3631,3633-3940 /quintagroup.seoptimizer/branches/refactoring2.3.0:1-3174 to /quintagroup.seoptimizer/trunk:1-3478,3480-3513,3515-3631,3633-3996 /quintagroup.seoptimizer/branches/refactoring2.3.0:1-3174
- Property svn:mergeinfo
-
quintagroup.seoptimizer/branches/plone4/quintagroup/seoptimizer/browser/keywords.py
r2902 r2958 1 import re, commands, urllib21 import re, sys, urllib2 2 2 from xml.dom import Node 3 3 4 4 from zope.interface import implements 5 from zope.component import getUtility 5 6 from zope.component import queryAdapter 6 from zope.component import queryMultiAdapter 7 8 from Acquisition import aq_acquire 7 9 from Products.Five.browser import BrowserView 8 10 11 from Products.CMFCore.utils import getToolByName 9 12 from Products.CMFPlone.utils import safe_unicode, getSiteEncoding 10 from Products. CMFCore.utils import getToolByName13 from Products.PortalTransforms.interfaces import IPortalTransformsTool 11 14 12 15 from interfaces import IValidateSEOKeywordsView … … 22 25 text = self.request.get('text') 23 26 ts = getToolByName(self.context, 'translation_service') 24 transforms = get ToolByName(self.context, 'portal_transforms')27 transforms = getUtility(IPortalTransformsTool) 25 28 portal = getToolByName(self.context, 'portal_url').getPortalObject() 26 29 isExternal = queryAdapter(portal, ISEOConfigletSchema).external_keywords_test … … 35 38 context=self.context) 36 39 # Get html page internally or with external request 40 error_url = "" 37 41 if isExternal: 38 42 # Not pass timeout option because: 39 # 1. its value get from the global default timeout settings by default.43 # 1. its value get from the global default timeout settings. 40 44 # 2. timeout option added in python 2.6 (so acceptable only in plone4+) 41 45 try: 46 resp = urllib2.urlopen(self.context.absolute_url()) 42 47 try: 43 resp = urllib2.urlopen(self.context.absolute_url())44 48 html = resp.read() 45 49 finally: 46 'resp' in locals().keys() andresp.close()47 except Exception:50 resp.close() 51 except (urllib2.URLError, urllib2.HTTPError), e: 48 52 # 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) 49 54 html = None 55 info = sys.exc_info() 56 elog = getToolByName(self.context, "error_log") 57 error_url = elog.raising(info) 50 58 else: 51 59 html = unicode(self.context()).encode(enc) … … 53 61 # If no html - information about problem with page retrieval should be returned 54 62 result = [] 55 if html is not None: 63 if html is None: 64 result.append("Problem with page retrieval.") 65 if error_url: 66 result.append("Details at %s." % error_url) 67 else: 56 68 page_text = transforms.convert("html_to_text", html).getData() 57 69 # check every keyword on appearing in body of html page … … 59 71 keyword_on_page = unicode(len(re.findall(u'\\b%s\\b' % keyword, page_text, re.I|re.U))) 60 72 result.append(' - '.join((keyword, keyword_on_page))) 61 else:62 result.append("Problem with page retrieval")63 73 64 74 return ts.utranslate(domain='quintagroup.seoptimizer',
Note: See TracChangeset
for help on using the changeset viewer.