コード例 #1
0
ファイル: browse.py プロジェクト: scttcper/hondiff
    def get_page(self,arch,version,path,fpath):
        manifest = fetcher.fetch(arch,version,'manifest.xml')
        if manifest is not None:
            #Version(value=version,key_name=version).put()
            version_ok(arch,version)
        else:
            self.response.out.write("Sorry, could not fetch manifest for {0} version".format(version))
            return
        manifest = Manifest(manifest)
        path = path[1:]
        if fpath != '':
            print 'file requested!'
        else:
            if path == '':
                nodes = manifest.files.keys()
            else:
                l = len(path)
                nodes = [f[l:] for f in manifest.files.keys() if f.startswith(path)]
            dirs = []
            files = []
            for x in nodes:
                n = x.split('/')
                if len(n) == 1:
                    x = path + x
                    f = { 'path' : n[0] , 'version' : fetcher.normalize_ver(manifest.files[x]['version']), 'size' : manifest.files[x]['size'] }
                    f['lang'] = get_lang(n[0])
                    f['fullpath'] = x
                    files.append(f)
                else:
                    dirs.append(n[0])
            dirs = frozenset(dirs)

            if path != '':
                up_url = '..'
            else:
                up_url = ''

            template_values = {
                    'version': version,
                    'path': path,
                    'dirs': sorted(list(dirs)),
                    'files' : files,
                    'up_url' : up_url,
                    'base_url' : fetcher.get_base_url(arch),
                    'base_url2' : fetcher.get_base_url(arch, 1),
                    }
            template = templates.get_template('folder.html')
            return template.render(template_values)
コード例 #2
0
ファイル: bbnotes.py プロジェクト: scttcper/hondiff
 def get_page(self,arch,version):
     manifest = fetcher.fetch(arch,version,'manifest.xml')
     if manifest is not None:
         version_ok(arch,version)
     else:
         self.response.out.write("Sorry, could not fetch manifest for {0} version".format(version))
         return
     manifest = Manifest(manifest)
     data = fetcher.fetch(arch,fetcher.normalize_ver(manifest.files['change_log_color.txt']['version']),'change_log_color.txt')
     if data is None: return
     data = data.read()
     try:
         data = data.decode('utf8')
     except:
         data = data.decode('cp1251')
     data = data.replace('\r\n','\n')
     data = hon2html(data)
     data = re.sub(ver_sub,r'\1[color=Yellow][SIZE=6][b]\2[/b][/size][/color]',data)
     data = re.sub(head_sub,r'\1[B]==[SIZE=4]\2[/size]==[/b]',data)
     data = re.sub(hr_sub,r'[hr][/hr]',data)
     smilies = fetch_honsmilies()
     data = re.sub(smilies[0],lambda m: '%s%s  [b]%s[/b]' % (m.group(1), smilies[1][m.group(2).lower()], m.group(2)),data)
     return ''.join(['<pre>',data,'</pre>'])