示例#1
0
 def list_security_issues(self):
     '''
     Fills in issues and topissues with security issues information.
     '''
     issues = glob.glob('templates/security/PMASA-*')
     issues.sort(key=lambda x: int(x[24:29]) * 100 - int(x[30:]))
     for issue in issues:
         xmldata = XML(open(issue, 'r').read())
         name = os.path.basename(issue)
         self.data['issues'].append({
             'name': name,
             'link': '%ssecurity/%s' % (BASE_URL, self.get_outname(name)),
             'fulllink': '%s%ssecurity/%s' % (
                 SERVER, BASE_URL, self.get_outname(name)
             ),
             'summary': str(xmldata.select(
                 'def[@function="announcement_summary"]/text()'
             )),
             'date': helper.date.DateTime.parse(str(xmldata.select(
                 'def[@function="announcement_date"]/text()'
             ))),
             'cves': str(xmldata.select(
                 'def[@function="announcement_cve"]/text()'
             )).split(' '),
             'versions': str(xmldata.select(
                 'def[@function="announcement_affected"]/text()'
             )),
         })
     self.data['topissues'] = self.data['issues'][:TOP_ISSUES]
示例#2
0
 def generate_sitemap(self):
     '''
     Generates list of pages with titles.
     '''
     self.data['sitemap'] = []
     self.data['sitemapxml'] = []
     helper.log.dbg('Generating sitemap:')
     for root, dirs, files in os.walk(TEMPLATES):
         if '.svn' in dirs:
             dirs.remove('.svn')  # don't visit .svn directories
         if '.git' in dirs:
             dirs.remove('.git')  # don't visit .git directories
         files.sort()
         root_dir = root[len(TEMPLATES):].strip('/')
         if len(root_dir) > 0:
             root_dir += '/'
         for filename in files:
             name, ext = os.path.splitext(filename)
             if ext != '.tpl' and name[:6] != 'PMASA-':
                 continue
             if name[0] in ['_', '.']:
                 continue
             if filename in ['index.xml.tpl', 'sitemap.xml.tpl', '404.tpl']:
                 continue
             helper.log.dbg('- %s' % filename)
             xmldata = XML(open(os.path.join(root, filename), 'r').read())
             title = str(xmldata.select(
                 'def[@function="page_title"]/text()'
             ))
             title = title.strip()
             if len(title) == 0:
                 title = str(xmldata.select(
                     'def[@function="announcement_id"]/text()'
                 ))
                 title = title.strip()
             if len(title) == 0:
                 title = 'Index'
             link = root_dir + self.get_outname(name)
             sitemap = {
                 'link': link,
                 'loc': '%s%s%s' % (SERVER, BASE_URL, link),
                 'title': title
             }
             if name[:6] != 'PMASA-':
                 self.data['sitemap'].append(sitemap)
             sitemap.update(self.get_sitemap_data(root_dir + name))
             self.data['sitemapxml'].append(sitemap)
     for link in data.sitemap.ENTRIES:
         sitemap = {
             'loc': SERVER + link,
         }
         sitemap.update(self.get_sitemap_data(link))
         self.data['sitemapxml'].append(sitemap)
示例#3
0
 def extract_href(fragment):
   if isinstance(fragment, (Element, Fragment)):
     stream = tag.body(fragment).generate()
   else :
     self.log.debug("Extracting href from %s", fragment)
     stream = XML('<body>%s</body>' % (unicode(fragment),))
   for x in stream.select('a[@href]') :
     if x[0] == 'START' :
        return x[1][1].get('href')