Diff for /ImageArchive/ImageArchive.py between versions 1.53 and 1.57

version 1.53, 2005/04/28 22:03:44 version 1.57, 2005/04/29 18:24:04
Line 27  except: Line 27  except:
         manage_options=()          manage_options=()
   
   
   tdir = "/mpiwg/temp/tmp/archivesImageServer/"
   #tdir="/tmp/archivesImageServer/"
   
 def splitPath(str):  def splitPath(str):
     str2=str.replace("\\","/")      str2=str.replace("\\","/")
Line 52  def getTextFromNode(nodename): Line 54  def getTextFromNode(nodename):
 class generateSet:  class generateSet:
     """generateSetThread"""      """generateSetThread"""
   
     def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="full"):          
       def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="working"):
         """init generateSet"""          """init generateSet"""
         self.filenames=filenames          self.filenames=filenames
         self.filenamesIds=filenamesIds          self.filenamesIds=filenamesIds
Line 63  class generateSet: Line 66  class generateSet:
         self.version=version          self.version=version
         self.done=None          self.done=None
   
   
     def __call__(self):      def __call__(self):
         """call generate Set"""          """call generate Set"""
   
         storeTempDir=tempfile.tempdir          storeTempDir=tempfile.tempdir
         tempfile.tempdir="/tmp/archivesImageServer"      tempfile.tempdir=tdir
   
         tmpPath=tempfile.mktemp()          tmpPath=tempfile.mktemp()
         tmpZip=tempfile.mktemp()+".zip"          tmpZip=tempfile.mktemp()+".gtz"
         tmpFn=os.path.split(tmpZip)[1]          tmpFn=os.path.split(tmpZip)[1]
   
         if not os.path.exists(tempfile.tempdir):          if not os.path.exists(tempfile.tempdir):
Line 93  class generateSet: Line 98  class generateSet:
                     self.response+=str("<p>Get File: %s<br>\n"%filename)                      self.response+=str("<p>Get File: %s<br>\n"%filename)
   
             if self.local:              if self.local:
                   
                 if self.version=="working":                  if self.version=="working":
   
                     sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg"                      sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg"
                 else:                  else:
                     sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]                      sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]
Line 123  class generateSet: Line 130  class generateSet:
                     try:                      try:
                                 nr=self.ids.index(id[0])                                  nr=self.ids.index(id[0])
                 except:                  except:
                                 self.reponse+=str("<p>Error in File: %s (possible missing)<br>\n"%id[0])                                  self.response+=str("<p>Error in File: %s (possible missing)<br>\n"%id[0])
                                   
   
                                 nr=0                                  nr=0
Line 139  class generateSet: Line 146  class generateSet:
                                     self.response+=str("<p>Get File: %s<br>\n"%filename)                                      self.response+=str("<p>Get File: %s<br>\n"%filename)
   
                     if self.local:                      if self.local:
                         sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+self.ids[nr+1]                          sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+self.ids[nr+i]
                         targetPath=tmpPath+"/"+filename                          targetPath=tmpPath+"/"+filename
                         try:                          try:
                             shutil.copyfile(sourcePath,targetPath)                              shutil.copyfile(sourcePath,targetPath)
                       
                         except:                          except:
                                                 self.response+=str("<p>Error in File: %s (missing?)<br>\n"%filename)                                                  self.response+=str("<p>Error in File: %s (missing?)<br>\n"%filename)
                                                       
Line 157  class generateSet: Line 165  class generateSet:
                         fh.close()                          fh.close()
   
         self.response+="<h3>2. step: creating the downloadable file</h3>"          self.response+="<h3>2. step: creating the downloadable file</h3>"
     self.response+="<p>Create Zip<br>"      self.response+="<p>Create gtar<br>"
         self.response+="<p>This can take a while....<br>\n"          self.response+="<p>This can take a while....<br>\n"
   
         fh=os.popen2("zip -u %s %s/*"%(tmpZip,tmpPath),1)[1]          fh=os.popen2("gnutar zcvf %s %s/*"%(tmpZip,tmpPath),1)[1]
         self.response+="<br>"          self.response+="<br>"
         for c in fh.read():          for c in fh.read():
             self.response+=c              self.response+=c
Line 508  class ImageCollection(Folder, Persistent Line 516  class ImageCollection(Folder, Persistent
   
         
     zipThreads={}      zipThreads={}
       zipThreads2={}
       
     genericMetaDataType="leiden_meta"      genericMetaDataType="leiden_meta"
   
     leiden_meta_fields=['image_id','date','country','place','people','description','photographer']      leiden_meta_fields=['image_id','date','country','place','people','description','photographer']
Line 535  class ImageCollection(Folder, Persistent Line 545  class ImageCollection(Folder, Persistent
   
                                           
                 self.zipThreads[thread.getName()[0:]]=threadStart                  self.zipThreads[thread.getName()[0:]]=threadStart
                   self.zipThreads2[thread.getName()[0:]]=thread
                 self.REQUEST.SESSION['threadName']=thread.getName()[0:]                  self.REQUEST.SESSION['threadName']=thread.getName()[0:]
                 wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template'])                  wait_template=self.aq_parent.ZopeFind(self.aq_parent,obj_ids=['zip_wait_template'])
                 if wait_template:                  if wait_template:
                     return wait_template[0][1]()                      return wait_template[0][1]()
                 pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait.zpt')).__of__(self)                  pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)
                 return pt()                  return pt()
                 #xmltrans.run()                  #xmltrans.run()
             else:              else:
Line 551  class ImageCollection(Folder, Persistent Line 562  class ImageCollection(Folder, Persistent
                     if wait_template:                      if wait_template:
                     return wait_template[0][1]()                      return wait_template[0][1]()
                                   
                     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait.zpt')).__of__(self)                      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait.zpt')).__of__(self)
                     return pt()                      return pt()
                 else:                  else:
                     if self.zipThreads[threadName].isDone():                      if self.zipThreads[threadName].isDone():
                         self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()                          self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()
                           self.zipThreads2[threadName].join()
                           del(self.zipThreads2[threadName])
                           del(self.zipThreads[threadName])
                         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self)                          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_result.zpt')).__of__(self)
                         return pt()                          return pt()
                                                   
                     else:                      else:
                         self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()                          self.REQUEST.SESSION['result']=self.zipThreads[threadName].getResult()
                         self.REQUEST.SESSION['threadName']=threadName                          self.REQUEST.SESSION['threadName']=threadName
                         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_Wait_result.zpt')).__of__(self)                          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','zip_wait_result.zpt')).__of__(self)
                         return pt()                          return pt()
   
   
   
   
           
       def checkThreads(self):
           """teste running threads"""
           ret="""<html>
           <head>
           <meta http-equiv="REFRESH" content="5;url=%s/checkThreads"
           <body><h2>Threads of %s</h2>"""%(self.absolute_url(),self.getId())
           
           for threadName in self.zipThreads.keys():
               if self.zipThreads2[threadName].isAlive():
                   ret+="<p>%s --> alive</p>"%threadName
               else:
                   ret+="<p>%s --> dead</p>"%threadName
           return ret+"</body></html>"
                         
     def downloadSet(self,fn):      def downloadSet(self,fn):
         """download prepared set"""          """download prepared set"""
         filename="/tmp/archivesImageServer/"+fn          filename=os.path.join(tdir,fn)
   
                   
         self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"image.zip")          self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"image.tgz")
         self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")          self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")
         len=os.stat(filename)[6]          len=os.stat(filename)[6]
         self.REQUEST.RESPONSE.setHeader("Content-Length",len)          self.REQUEST.RESPONSE.setHeader("Content-Length",len)

Removed from v.1.53  
changed lines
  Added in v.1.57


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