コード例 #1
0
 def download(self, index=None):
     print_enter('worknoteBookServer.download')
     if not index is None:
         print 'Index:', index
         from worknoteBookHelpers import parse_index
         try:
             index = parse_index(index)
             if len(index) == 1:
                 index = [index[0] - 1]
             elif len(index) == 2:
                 index = [index[0] - 1, index[1] - 1]
             else:
                 raise ValueError('Too many indices')
         except ValueError, e:
             return str(e)
         print 'Parsed index:', index
         if len(index) == 1:
             index = index[0]
             if index < 0 or index > len(self.worknote_list) - 1:
                 return 'Index out of range'
             return self.__serve_wn(self.worknote_list[index], self.storagedir)
         elif len(index) == 2:
             chapter_index, index = index
             chapter_index -= len(self.worknote_list)
             if chapter_index < 0 or chapter_index > len(self.chapter_list) - 1:
                 return 'Index out of range'
             chapter = self.chapter_list[chapter_index]
             if index < 0 or index > len(self.chapters[chapter]['worknote_list']) - 1:
                 return 'Index out of range'
             return self.__serve_wn(self.chapters[chapter]['worknote_list'][index],
                                    self.chapters[chapter]['chapter_dir'])                
コード例 #2
0
 def delete(self, index):
     print_enter('worknoteBookServer.delete')
     print cherrypy.request.headers
     from worknoteBookHelpers import parse_index
     from shutil import rmtree
     from os.path import join
     print 'Index:', index
     try:
         index = parse_index(index)
         if len(index) == 1:
             index = [index[0] - 1]
         elif len(index) == 2:
             index = [index[0] - 1, index[1] - 1]
         else:
             raise ValueError('Too many indices')
     except ValueError, e:
         return str(e)
コード例 #3
0
 def download(self, index, workdir, servername=None):
     from worknoteBookHelpers import unzip_worknote
     from urllib2 import urlopen, URLError
     from tempfile import gettempdir
     from os.path import join
     from worknoteBookHelpers import parse_index
     index = parse_index(index)[0:2]
     if len(index) == 1:
         index = '{:d}'.format(index[0])
     elif len(index) == 2:
         index = '{:d}:{:d}'.format(index[0], index[1])
     tmpfn = join(gettempdir(), 'worknoteBook_download.zip')
     server_url = 'http://{server:s}/download?index={index:s}'.format(server = self.get_server(servername), 
                                                                      index = index)
     try:        
         server = urlopen(server_url)
         with open(tmpfn, 'wb') as tmpfile:
             tmpfile.write(server.read())
     except URLError, e:
         print 'ERROR: Download failed ({:s})'.format(str(e))
         return
コード例 #4
0
        else:
            print 'Upload not possible, no login information for this server'
        request_url = 'http://{:s}/auth/login'.format(self.get_server(servername))
        request = Request(request_url)
        request.add_header('Authorization', auth_header)
        try:        
            response = urlopen(request)
            response.read()
            response.close()
        except HTTPError, e:
            print 'ERROR: Delete failed ({:s})'.format(str(e))
            return
        except URLError, e:
            print 'ERROR: Delete failed ({:s})'.format(str(e))
            return        
        index = parse_index(index)[0:2]
        if len(index) == 1:
            index = '{:d}'.format(index[0])
        elif len(index) == 2:
            index = '{:d}:{:d}'.format(index[0], index[1])
        server_url = 'http://{server:s}/delete?index={index:s}'.format(server = self.get_server(servername), 
                                                                       index = index)
        try:
            server = urlopen(server_url)
            response = server.read()
        except URLError, e:
            print 'ERROR: Delete failed ({:s})'.format(str(e))

    def upload(self, workdir, overwrite=False, servername=None, chapter=''):
        from urllib2 import Request, urlopen, HTTPError, URLError, HTTPCookieProcessor, build_opener, install_opener
        from base64 import b64encode