Changeset 1313 in products for quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/adapters.py
- Timestamp:
- Sep 18, 2009 5:29:41 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.seoptimizer/trunk/quintagroup/seoptimizer/adapters.py
r408 r1313 3 3 from zope.component import queryMultiAdapter 4 4 from Products.CMFCore.utils import getToolByName 5 from quintagroup.seoptimizer.interfaces import IKeywords 5 6 from quintagroup.seoptimizer.interfaces import IKeywords, IMappingMetaTags 7 from quintagroup.seoptimizer.util import SortedDict 6 8 7 9 … … 14 16 def listKeywords(self): 15 17 portal_props = getToolByName(self.context, 'portal_properties') 16 seo_props = getToolByName(portal_props, 'seo_properties' )18 seo_props = getToolByName(portal_props, 'seo_properties', None) 17 19 18 20 # now set type is not using because of it unordered behaviour … … 24 26 request = self.context.REQUEST 25 27 seo_context = queryMultiAdapter((self.context, request), name='seo_context') 26 keywords = list(seo_context.seo_keywords()) 27 lower_keywords = map(lambda x: x.lower(), keywords) 28 additional = seo_props.additional_keywords 28 if seo_context: 29 keywords = list(seo_context.seo_keywords()) 30 lower_keywords = map(lambda x: x.lower(), keywords) 31 additional = seo_props.additional_keywords 29 32 30 is_test = self.context.REQUEST.get('qseo_without_additional_keywords', None)33 is_test = self.context.REQUEST.get('qseo_without_additional_keywords', None) 31 34 32 if additional and is_test is None: 33 # extract words from url page using lynx browser 34 text = commands.getoutput('lynx --dump --nolist %s?qseo_without_additional_keywords=1' % self.context.absolute_url()).lower() 35 if text and text != 'sh: lynx: command not found': 36 for keyword in additional: 37 if keyword.lower() not in lower_keywords and re.compile(r'\b%s\b' % keyword, re.I).search(text): 38 keywords.append(keyword) 35 if additional and is_test is None: 36 # extract words from url page using lynx browser 37 text = commands.getoutput('lynx --dump --nolist %s?qseo_without_additional_keywords=1' % self.context.absolute_url()).lower() 38 if text and text != 'sh: lynx: command not found': 39 for keyword in additional: 40 if keyword.lower() not in lower_keywords and re.compile(r'\b%s\b' % keyword, re.I).search(text): 41 keywords.append(keyword) 42 return ', '.join(keywords) 43 return '' 39 44 40 return ', '.join(keywords) 45 46 class MappingMetaTags(object): 47 implements(IMappingMetaTags) 48 49 def __init__(self, context): 50 self.context = context 51 self.portal_props = getToolByName(self.context, 'portal_properties') 52 self.seo_props = getToolByName(self.portal_props, 'seo_properties', None) 53 54 def getMappingMetaTags(self): 55 metadata_name = SortedDict() 56 if self.seo_props: 57 pmn = self.seo_props.getProperty('metatags_order') 58 pmn = pmn and pmn or '' 59 for mt in [mt.split(' ') for mt in pmn if len(mt.split(' '))==2]: 60 metadata_name[mt[0]] = mt[1] 61 return metadata_name
Note: See TracChangeset
for help on using the changeset viewer.