Diff for /cdli/cdli_files.py between versions 1.115 and 1.119

version 1.115, 2010/03/19 14:01:41 version 1.119, 2011/07/20 09:33:35
Line 306  def manage_addCDLIFile(self,id,title,loc Line 306  def manage_addCDLIFile(self,id,title,loc
   
 def checkUTF8(data):  def checkUTF8(data):
     """check utf 8"""      """check utf 8"""
       if not isinstance(data, str):
           logging.error("checkUTF8 data is not string! (%s)"%repr(data))
   
     try:      try:
         data.encode('utf-8')          data.decode('utf-8')
           logging.debug("checkUTF8: ok!")
         return True          return True
     except:      except:
           logging.debug("checkUTF8: false!")
         return False          return False
           
   
Line 335  def splitatf(fh,dir=None,ext=None): Line 340  def splitatf(fh,dir=None,ext=None):
     i=0      i=0
   
     #ROC: why split \n first and then \r???      #ROC: why split \n first and then \r???
     if (type(fh) is StringType) or (type(fh) is UnicodeType):      if isinstance(fh, basestring):
         iter=fh.split("\n")          iter=fh.split("\n")
     else:      else:
         iter=fh.readlines()          iter=fh.readlines()
Line 369  def splitatf(fh,dir=None,ext=None): Line 374  def splitatf(fh,dir=None,ext=None):
                     if dir:                      if dir:
                         filename=os.path.join(dir,filename)                          filename=os.path.join(dir,filename)
                     nf=file(filename,"w")                      nf=file(filename,"w")
                     logging.info("open %s"%filename)                      logging.debug("open %s"%filename)
                 if nf:                      if nf:    
                     nf.write(line.replace("\n","")+"\n")                      nf.write(line.replace("\n","")+"\n")
   
Line 378  def splitatf(fh,dir=None,ext=None): Line 383  def splitatf(fh,dir=None,ext=None):
     except:      except:
         pass          pass
           
     if not((type(fh) is StringType) or (type(fh) is UnicodeType)):      if not isinstance(fh, basestring):
         fh.close()          fh.close()
           
     return ret,len(os.listdir(dir))      return ret,len(os.listdir(dir))
   
   
Line 802  class CDLIRoot(Folder): Line 808  class CDLIRoot(Folder):
                   return fileId                    return fileId
         x=self.v_files.get(fileId)          x=self.v_files.get(fileId)
         logging.debug("obj: "+repr(x))          logging.debug("obj: "+repr(x))
         if x==None:          if x is None:
               logging.debug("fileId"+repr(fileId))
             folder=fileId[0:3]              folder=fileId[0:3]
             f2=fileId[0:5]              f2=fileId[0:5]
             fObj = getattr(self.cdliRoot.cdli_main,folder);              fObj = getattr(self.cdliRoot.cdli_main,folder);
Line 888  class CDLIRoot(Folder): Line 895  class CDLIRoot(Folder):
   
   
   
     def searchText(self, query, index='graphemes'):      def searchText(self, query, index='graphemes', resultFilter=None):
         """searches query in the fulltext index and returns a list of file ids/P-numbers"""          """searches query in the fulltext index and returns a list of file IDs/P-numbers
              resultFilter is matched against the beginning of the file ID"""
         # see also: http://www.plope.com/Books/2_7Edition/SearchingZCatalog.stx#2-13          # see also: http://www.plope.com/Books/2_7Edition/SearchingZCatalog.stx#2-13
         logging.debug("searchtext for '%s' in index %s"%(query,index))          logging.debug("searchtext for '%s' in index %s"%(query,index))
         #import Products.ZCTextIndex.QueryParser          #import Products.ZCTextIndex.QueryParser
Line 900  class CDLIRoot(Folder): Line 908  class CDLIRoot(Folder):
         # do search          # do search
         resultset = idx.search(query_request=idxQuery,sort_index='textid')          resultset = idx.search(query_request=idxQuery,sort_index='textid')
         # put only the P-Number in the result           # put only the P-Number in the result 
           if resultFilter is None:
         results = [res.getId[:7] for res in resultset]          results = [res.getId[:7] for res in resultset]
           else:
               results = [res.getId[:7] for res in resultset if res.getId.startswith(resultFilter)]
         logging.debug("searchtext: found %d texts"%len(results))          logging.debug("searchtext: found %d texts"%len(results))
         return results          return results
   
Line 1234  class CDLIRoot(Folder): Line 1245  class CDLIRoot(Folder):
                   
         return generateXMLReturn(stObj.returnValue)          return generateXMLReturn(stObj.returnValue)
                   
       def uploadATFAsync(self,repeat=None,upload=None,basketId=0,RESPONSE=None):
           """upload an atf file / basket file"""
           #self._v_uploadATF.returnValue=None
           
          
           idTmp=str(randint(0,1000000000))
           
           if upload is None:
               return "ERROR NO FILE!"
           
           tmpFile = File("/tmp/idTmp","w")
           # sicher basket in file
           for x in upload.read():
               tmpFile.write(x)
           
           tmpFile.close();
           uploadATFAsync(baskerId,idTmp,basketId,self.REQUEST['AUTHENTICATED_USER'],idTmp,serverport=self.REQUEST['SERVER_PORT'])
           
           return idTMP   
           
       def viewTicketAsync(self,ticketNr=1):
           """viewticket"""
           
           tmp = pickle.load(file("/tmp/"+str(ticketNr)+".result"))
           
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadCheckAsync.zpt')).__of__(self)
           
           return pt(changed=tmp['changed'],lockerrors=tmp['lockerrors'],errors=tmp['errors'],dir=tmp['dir'],newPs=tmp['newPs'],basketLen=tmp['basketLen'],numberOfFiles=tmp['numberOfFiles'],
                     basketNameFromId=tmp['basketNameFromId'],basketNameFromFile=tmp['basketNameFromFile'],basketId=tmp['basketId'])
                  
           
        
     def uploadATF(self,repeat=None,upload=None,basketId=0,RESPONSE=None):      def uploadATF(self,repeat=None,upload=None,basketId=0,RESPONSE=None):
         """upload an atf file / basket file"""          """upload an atf file / basket file"""
         #self._v_uploadATF.returnValue=None          #self._v_uploadATF.returnValue=None
Line 1305  class CDLIRoot(Folder): Line 1348  class CDLIRoot(Folder):
                 return pt(changed=tmp['changed'],lockerrors=tmp['lockerrors'],errors=tmp['errors'],dir=tmp['dir'],newPs=tmp['newPs'],basketLen=tmp['basketLen'],numberOfFiles=tmp['numberOfFiles'],                  return pt(changed=tmp['changed'],lockerrors=tmp['lockerrors'],errors=tmp['errors'],dir=tmp['dir'],newPs=tmp['newPs'],basketLen=tmp['basketLen'],numberOfFiles=tmp['numberOfFiles'],
                   basketNameFromId=tmp['basketNameFromId'],basketNameFromFile=tmp['basketNameFromFile'],basketId=tmp['basketId'])                    basketNameFromId=tmp['basketNameFromId'],basketNameFromFile=tmp['basketNameFromFile'],basketId=tmp['basketId'])
                                             
             
     def redoUpload(self,threadName):      def redoUpload(self,threadName):
        """redo the upload"""         """redo the upload"""
        tmp=self.cdli_main.tmpStore2[threadName]         tmp=self.cdli_main.tmpStore2[threadName]
Line 1397  class CDLIRoot(Folder): Line 1441  class CDLIRoot(Folder):
             obj=self.ZopeFind(root,obj_ids=[folder])              obj=self.ZopeFind(root,obj_ids=[folder])
             logging.debug("importFiles: folder=%s f2=%s obj=%s"%(folder,f2,obj))               logging.debug("importFiles: folder=%s f2=%s obj=%s"%(folder,f2,obj)) 
             if ext:              if ext:
                   
                   if type(ext.result) is types.FileType:
                       ext.result.write("<p>adding: %s </p>\n"%f)
                   else:
                 ext.result="<p>adding: %s </p>"%f+ext.result                  ext.result="<p>adding: %s </p>"%f+ext.result
   
                           

Removed from v.1.115  
changed lines
  Added in v.1.119


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>