version 1.54, 2005/04/28 22:12:21
|
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="/mpiwg/temp/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 94 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 124 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 140 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 158 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 509 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 536 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: |
Line 557 class ImageCollection(Folder, Persistent
|
Line 567 class ImageCollection(Folder, Persistent
|
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() |
|
|
Line 570 class ImageCollection(Folder, Persistent
|
Line 583 class ImageCollection(Folder, Persistent
|
|
|
|
|
|
|
|
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="/mpiwg/temp/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) |