Diff for /ImageArchive/ImageArchive.py between versions 1.31 and 1.35

version 1.31, 2004/11/11 19:12:39 version 1.35, 2004/11/17 10:34:20
Line 85  class ImageDigilib(Folder,Persistent,Imp Line 85  class ImageDigilib(Folder,Persistent,Imp
             os.chmod(filename,0644)              os.chmod(filename,0644)
         except:          except:
             """hack"""              """hack"""
       #scale thumb
   
         os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)          self.scaleThumbs()
   
       #scale standard
           
       self.scaleWorkingVersions()
   
         
     def download(self):      def downloadWorkingVersion(self):
           """download working version (2000 pixel)"""
           
           return self.download(fmt="&dw=2000&dh=2000",suffix=".jpg")
       
       def download(self,fmt="&mo=rawfile,hires",suffix=None):
         """download"""          """download"""
         path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&mo=rawfile,hires"          path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+fmt
       
     if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(self.filename):      if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(self.filename):
         filename=self.REQUEST.SESSION['filenamesIds'][self.filename][0]+"_"+self.filename          filename=self.REQUEST.SESSION['filenamesIds'][self.filename][0]+"_"+self.filename
     else:      else:
         filename=self.filename          filename=self.filename
                   
       if suffix:
           filename=os.path.splitext(filename)[0]+suffix
           
     self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%filename)      self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%filename)
     self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")      self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream")
     image=urllib.urlopen(path).read()      image=urllib.urlopen(path).read()
Line 118  class ImageDigilib(Folder,Persistent,Imp Line 130  class ImageDigilib(Folder,Persistent,Imp
                           
         #DEVEL:take nausikaa for server solution          #DEVEL:take nausikaa for server solution
                   
         path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&dw=100&dh=100&mo=lores"          path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(self.filename)[0]+"&dw=100&dh=100&mo=lores"
         #path="/mpiwg/online/"+self.ImageViewerPath+"/"+thumbname          #path="/mpiwg/online/"+self.ImageViewerPath+"/"+thumbname
         self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path          self.REQUEST.SESSION['string']="<img border=\"0\" src=\"%s\">"% path
         pt=PageTemplateFile('Products/ImageArchive/zpt/thumb.zpt').__of__(self)          pt=PageTemplateFile('Products/ImageArchive/zpt/thumb.zpt').__of__(self)
Line 167  class ImageCollection(Folder, Persistent Line 179  class ImageCollection(Folder, Persistent
   
   
     
     def createSet(self,RESPONSE=None):      def createSet(self,RESPONSE=None,local=None,version="working"):
         """download aller gewaehlten files"""          """download aller gewaehlten files"""
         tempfile.tempdir="/tmp/archivesImageServer"          tempfile.tempdir="/tmp/archivesImageServer"
                   
Line 196  class ImageCollection(Folder, Persistent Line 208  class ImageCollection(Folder, Persistent
             return 0              return 0
                   
         for id in self.REQUEST.SESSION['filenames']:          for id in self.REQUEST.SESSION['filenames']:
             path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+urllib.quote(id[0])+"&mo=rawfile,hires"  
   
             image=urllib.urlopen(path).read()  
             if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(id[0]):              if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(id[0]):
                 filename=self.REQUEST.SESSION['filenamesIds'][id[0]][0]+"_"+id[0]                  filename=self.REQUEST.SESSION['filenamesIds'][id[0]][0]+"_"+id[0]
             else:              else:
                 filename=id[0]                  filename=id[0]
   
               if RESPONSE:
                   RESPONSE.write(str("<p>Get File: %s<br>\n"%filename))
   
               if local:
                   if version=="working":
                       sourcePath="/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+id[0]
                   else:
                       sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0]
                   targetPath=tmpPath+"/"+filename
                   try:
                       shutil.copyfile(sourcePath,targetPath)
                   except:
                       if RESPONSE:
                           RESPONSE.write(str("<p>Error in File: %s (possible missing)<br>\n"%filename))
                       else:
                           """nothing"""
               else:
                   if version=="working":
                       path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000"
                   else:
                       path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&mo=rawfile,hires"
                   image=urllib.urlopen(path).read()
                           
                                   
             fh=file(tmpPath+"/"+filename,"w")              fh=file(tmpPath+"/"+filename,"w")
             if RESPONSE:  
                 RESPONSE.write(str("<p>Get File: %s<br>\n"%filename))  
   
             fh.write(image)              fh.write(image)
                   fh.close()
   
             #folgeseiten              #folgeseiten
             if int(self.REQUEST.SESSION['filenamesIds'][id[0]][1])>1:               if int(self.REQUEST.SESSION['filenamesIds'][id[0]][1])>1: 
Line 220  class ImageCollection(Folder, Persistent Line 252  class ImageCollection(Folder, Persistent
                 numberOfPages=self.REQUEST.SESSION['filenamesIds'][id[0]][1]                  numberOfPages=self.REQUEST.SESSION['filenamesIds'][id[0]][1]
                 for k in range(int(numberOfPages)-1):                  for k in range(int(numberOfPages)-1):
                     i=k+1                      i=k+1
   
                     path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"&/"+ids[nr+i]+"&mo=rawfile,hires"  
   
                     image=urllib.urlopen(path).read()  
                     if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(id[0]):                      if self.REQUEST.SESSION.has_key('filenamesIds') and self.REQUEST.SESSION['filenamesIds'].has_key(id[0]):
                         filename=self.REQUEST.SESSION['filenamesIds'][id[0]][0]+"_"+ids[nr+i]                          filename=self.REQUEST.SESSION['filenamesIds'][id[0]][0]+"_"+ids[nr+i]
                     else:                      else:
                         filename=id[0]                          filename=id[0]
   
   
   
                     fh=file(tmpPath+"/"+filename,"w")  
                     if RESPONSE:                      if RESPONSE:
                         RESPONSE.write(str("<p>Get File: %s<br>\n"%filename))                          RESPONSE.write(str("<p>Get File: %s<br>\n"%filename))
   
                     fh.write(image)                      if local:
                           sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+ids[nr+1]
                           targetPath=tmpPath+"/"+filename
                           try:
                               shutil.copyfile(sourcePath,targetPath)
                           except:
                               if RESPONSE:
                                   RESPONSE.write(str("<p>Error in File: %s (missing?)<br>\n"%filename))
                               else:
                                   """nothing"""
                       else:
                           path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+os.path.splitext(ids[nr+i])[0]+"&mo=rawfile,hires"
   
                           image=urllib.urlopen(path).read()
   
   
                           fh=file(tmpPath+"/"+filename,"w")
                           fh.write(image)
             fh.close()              fh.close()
   
         if RESPONSE:          if RESPONSE:
Line 288  class ImageCollection(Folder, Persistent Line 328  class ImageCollection(Folder, Persistent
     def scaleThumbs(self,RESPONSE=None):      def scaleThumbs(self,RESPONSE=None):
         """scale thumbs"""          """scale thumbs"""
           
       #scale thumbs
           ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)
       if RESPONSE:
           RESPONSE.write(ret.read())
           RESPONSE.write("\n")
           
         os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)   
         return "RESCALING STARTED"           return "RESCALING STARTED" 
           
       def scaleWorkingVersions(self,RESPONSE=None):
           """scale working versions"""
       
       #scale standard
   
       ret=os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/small -scaleto=2000 &"% self.ImageViewerPath)
       if RESPONSE:
           RESPONSE.write(ret.read())
           RESPONSE.write("\n")
       return "rescaling started"
   
   
       
     def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString):      def __init__(self,id,title,ImageStoragePath,ImageViewerPath,defaultMetaString):
         self.id=id          self.id=id
         self.title=title          self.title=title
Line 305  class ImageCollection(Folder, Persistent Line 362  class ImageCollection(Folder, Persistent
         {'label':'Recalculate Metadata','action':'recalculateMeta'},          {'label':'Recalculate Metadata','action':'recalculateMeta'},
         {'label':'Import Metadata','action':'importMetaForm'},          {'label':'Import Metadata','action':'importMetaForm'},
         {'label':'Rescale thumbs','action':'scaleThumbs'},          {'label':'Rescale thumbs','action':'scaleThumbs'},
       {'label':'Rescale working version','action':'scaleWorkingVersions'},
         {'label':'Weight (ECHO)','action':'weightForm'},          {'label':'Weight (ECHO)','action':'weightForm'},
         )          )
   
Line 449  class ImageCollection(Folder, Persistent Line 507  class ImageCollection(Folder, Persistent
         idnr=image.getElementsByTagName('idnr')[0]          idnr=image.getElementsByTagName('idnr')[0]
         id=getText(idnr.childNodes)          id=getText(idnr.childNodes)
         numberOfPages=image.getElementsByTagName('numberOfPages')[0]          numberOfPages=image.getElementsByTagName('numberOfPages')[0]
         nop=getText(numberOfPages.childNodes)          nopT=getText(numberOfPages.childNodes)
                   try:
               nop=int(nopT)
           except:
               nop=0
         if not text=="":          if not text=="":
             rc.append((str(text),id,nop))              rc.append((str(text),id,nop))
             fnIds[str(text)]=(id,nop)              fnIds[str(text)]=(id,nop)
Line 514  class ImageCollection(Folder, Persistent Line 575  class ImageCollection(Folder, Persistent
         #print ret          #print ret
         #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)          #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)
         #print self.ImageStoragePath          #print self.ImageStoragePath
     os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl -src=/mpiwg/online/ -dir=%s -dest=/mpiwg/temp/online/scaled/thumb -scaleto=100 &"% self.ImageViewerPath)   
       #scale thumb
       
           self.scaleThumbs()
   
       #scale standard
   
       self.scaleWorkingVersions()
       
   
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
           
Line 540  class ImageCollection(Folder, Persistent Line 609  class ImageCollection(Folder, Persistent
         #print ret          #print ret
         #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)          #pt=PageTemplateFile('Products/ImageArchive/out.zpt').__of__(self)
         #print self.ImageStoragePath          #print self.ImageStoragePath
         os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 100 &"% self.ImageViewerPath)  
           #scale thumb
       
           self.scaleThumbs()
   
       #scale standard
   
       self.scaleWorkingVersions()
       
       if RESPONSE:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
                   
     def ImageCollection_config(self):      def ImageCollection_config(self):

Removed from v.1.31  
changed lines
  Added in v.1.35


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