version 1.93, 2006/05/24 09:56:58
|
version 1.102, 2006/12/13 20:46:51
|
Line 49 except:
|
Line 49 except:
|
|
|
manage_options=() |
manage_options=() |
|
|
|
tdir="tmp" |
tdir = "/mpiwg/temp/tmp/archivesImageServer/" |
#tdir = "/mpiwg/temp/tmp/archivesImageServer/" |
#tdir="/tmp/archivesImageServer/" |
#tdir="/tmp/archivesImageServer/" |
|
|
imageExtensions=['jpg','jpeg','tif','tiff','png'] |
imageExtensions=['.jpg','.jpeg','.tif','.tiff','.png','.gif'] |
|
|
def splitPath(str): |
def splitPath(str): |
str2=str.replace("\\","/") |
str2=str.replace("\\","/") |
Line 80 class generateSet:
|
Line 80 class generateSet:
|
"""generateSetThread""" |
"""generateSetThread""" |
|
|
|
|
def __init__(self,filenames,filenamesIds,ImageViewerPath,ids,url,local=None,version="working"): |
def __init__(self,filenames,filenamesIds,ImageViewerPath,ImageStoragePath,destBasis,ids,url,local=None,version="working"): |
"""init generateSet""" |
"""init generateSet""" |
self.filenames=filenames |
self.filenames=filenames |
self.filenamesIds=filenamesIds |
self.filenamesIds=filenamesIds |
self.ImageViewerPath=ImageViewerPath |
self.ImageViewerPath=ImageViewerPath |
|
self.ImageStoragePath=ImageStoragePath |
|
self.destBasis=destBasis |
self.ids=ids |
self.ids=ids |
self.local=local |
self.local=local |
self.url=url |
self.url=url |
self.version=version |
self.version=version |
self.done=None |
self.done=None |
|
self.response="" |
|
|
|
|
def __call__(self): |
def __call__(self): |
Line 115 class generateSet:
|
Line 118 class generateSet:
|
|
|
for id in self.filenames: |
for id in self.filenames: |
|
|
if self.filenamesIds.has_key(id[0]): |
if self.filenamesIds.has_key(id[0]) and self.filenamesIds[id[0]][0]: |
filename=self.filenamesIds[id[0]][0]+"_"+id[0] |
filename=self.filenamesIds[id[0]][0]+"_"+id[0] |
else: |
else: |
filename=id[0] |
filename=id[0] |
|
|
self.response+=str("<p>Get File: %s<br>\n"%filename) |
self.response+=str("<p>Get File: %s<br>\n"%filename) |
|
|
|
toggle=False |
|
|
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=self.destBasis+"/"+self.ImageViewerPath+"/"+os.path.splitext(id[0])[0]+".jpg" |
else: |
if not os.path.exists(sourcePath): |
sourcePath="/mpiwg/online/"+self.ImageViewerPath+"/"+id[0] |
self.response+=str("<p>%s doesn't exist I'll try the non scaled image</p>"%sourcePath) |
|
toggle=True |
|
if (self.version!="working") or toggle: |
|
toggle=False |
|
sourcePath=self.ImageStoragePath+"/"+id[0] |
|
if not os.path.exists(sourcePath): |
|
sourcePath=self.ImageStoragePath+"/"+os.path.splitext(id[0])[0]+".jpg" |
|
|
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 (possible missing)<br>\n"%filename)) |
self.response+=(str("<p>Error in File: %s (possible missing)<br>\n"%sourcePath)) |
else: |
else: |
if self.version=="working": |
if self.version=="working": |
requestString=self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000" |
requestString=self.ImageViewerPath+"/"+os.path.splitext(urllib.quote(id[0]))[0]+"&dh=2000&dw=2000" |
Line 488 class ImageDigilib(Folder,Persistent,Imp
|
Line 499 class ImageDigilib(Folder,Persistent,Imp
|
|
|
self.scaleWorkingVersions() |
self.scaleWorkingVersions() |
|
|
self.scaleToJpg() |
#self.scaleToJpg() |
if RESPONSE: |
if RESPONSE: |
RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename) |
RESPONSE.redirect(self.aq_parent.absolute_url()+"?filename="+self.filename) |
|
|
Line 768 class ImageCollection(OrderedFolder, Per
|
Line 779 class ImageCollection(OrderedFolder, Per
|
|
|
|
|
#ret=scaleStr |
#ret=scaleStr |
|
#zLOG.LOG("ImageCollection:scale",zLOG.INFO,scaleStr) |
ret=os.popen2(scaleStr,1)[1].read() |
ret=os.popen2(scaleStr,1)[1].read() |
|
|
if RESPONSE: |
if RESPONSE: |
Line 781 class ImageCollection(OrderedFolder, Per
|
Line 793 class ImageCollection(OrderedFolder, Per
|
|
|
name=os.path.splitext(name)[0] |
name=os.path.splitext(name)[0] |
for extension in imageExtensions: |
for extension in imageExtensions: |
nameExt=name+"."+extension |
nameExt=name+extension |
|
|
if hasattr(self,nameExt): |
if hasattr(self,nameExt): |
return getattr(self,nameExt) |
return getattr(self,nameExt) |
|
|
nameExt=name+"_."+extension |
nameExt=name+"_"+extension |
if hasattr(self,nameExt): |
if hasattr(self,nameExt): |
return getattr(self,nameExt) |
return getattr(self,nameExt) |
|
|
Line 828 class ImageCollection(OrderedFolder, Per
|
Line 840 class ImageCollection(OrderedFolder, Per
|
|
|
|
|
if not threadName or threadName=="": |
if not threadName or threadName=="": |
threadStart=generateSet(self.REQUEST.SESSION['filenames'],self.REQUEST.SESSION['filenamesIds'],self.ImageViewerPath,self.show_thumbs(),self.absolute_url(),local=local,version=version) |
threadStart=generateSet(self.REQUEST.SESSION['filenames'],self.REQUEST.SESSION['filenamesIds'],self.ImageViewerPath,self.ImageStoragePath,self.destBasis,self.show_thumbs(),self.absolute_url(),local=local,version=version) |
thread=Thread(target=threadStart) |
thread=Thread(target=threadStart) |
|
|
thread.start() |
thread.start() |
Line 919 class ImageCollection(OrderedFolder, Per
|
Line 931 class ImageCollection(OrderedFolder, Per
|
dest=os.path.join(self.scaledBasis,'thumb') |
dest=os.path.join(self.scaledBasis,'thumb') |
self.scale(dir=self.getImageStoragePath(),dest=dest,scaleTo=100,RESPONSE=RESPONSE) |
self.scale(dir=self.getImageStoragePath(),dest=dest,scaleTo=100,RESPONSE=RESPONSE) |
#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) |
#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: |
#if RESPONSE: |
RESPONSE.write(ret.read()) |
# RESPONSE.write(ret.read()) |
RESPONSE.write("\n") |
# RESPONSE.write("\n") |
|
|
return "RESCALING STARTED" |
return "RESCALING STARTED" |
|
|
Line 1593 class ImageCollection(OrderedFolder, Per
|
Line 1605 class ImageCollection(OrderedFolder, Per
|
return ret |
return ret |
|
|
|
|
def show_thumbs_selected_rows(self,numberOfColumns): |
def show_thumbs_selected_rows(self,numberOfColumns,start=0,max=10000): |
"""Ausgabe anzahl""" |
"""Ausgabe anzahl""" |
ids=self.show_selected_thumbs() |
ids=self.show_selected_thumbs() |
|
|
if not ids: |
if not ids: |
return None |
return None |
self.REQUEST.SESSION['ids']=ids |
self.REQUEST.SESSION['ids']=ids |
number=int(len(ids)/numberOfColumns)+1 |
number=min(start+int(len(ids)/numberOfColumns)+1,max) |
self.REQUEST.SESSION['number']=range(number) |
|
return range(number+1) |
self.REQUEST.SESSION['number']=range(start,number) |
|
return range(start,number+1) |
|
|
def setColTimesRowForm(self): |
def setColTimesRowForm(self): |
"""form for matrix setting""" |
"""form for matrix setting""" |
Line 1718 class ImageCollection(OrderedFolder, Per
|
Line 1731 class ImageCollection(OrderedFolder, Per
|
else: |
else: |
return ids[(row-1)*numberOfColumns:] |
return ids[(row-1)*numberOfColumns:] |
|
|
def thumblistSelected_old(self): |
|
"""main template collection""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbselected.zpt')).__of__(self) |
|
return pt() |
|
|
|
def thumblistSelected(self): |
def thumblistSelected(self): |
"""main template collection""" |
"""main template collection""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbselected2.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbselected2.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def thumblist_old(self): |
|
"""main template collection""" |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','thumbs.zpt')).__of__(self) |
|
return pt() |
|
|
|
def thumblist(self): |
def thumblist(self): |
"""main template collection""" |
"""main template collection""" |
Line 1775 class ImageCollection(OrderedFolder, Per
|
Line 1780 class ImageCollection(OrderedFolder, Per
|
#FIXME: umlaute in filename |
#FIXME: umlaute in filename |
fn=getattr(self,repr(filename),None) |
fn=getattr(self,repr(filename),None) |
if not fn: |
if not fn: |
filenameM=filename.split(".")[0] |
|
|
if os.path.splitext(filename)[1].lower() in imageExtensions: |
|
filenameM=os.path.splitext(filename)[0] |
|
else: |
|
filenameM=filename |
|
|
|
|
|
|
founds=self.ZopeFind(self,obj_metatypes=['ImageDigilib']) |
founds=self.ZopeFind(self,obj_metatypes=['ImageDigilib']) |
|
|
|
|
for found in founds: |
for found in founds: |
foundM=found[0].split(".")[0] |
if os.path.splitext(found[0])[1].lower() in imageExtensions: |
|
foundM=os.path.splitext(found[0])[0] |
|
else: |
|
foundM=found[0] |
|
|
if filenameM.lower()==foundM.lower(): |
if filenameM.lower()==foundM.lower(): |
if onlyName: |
if onlyName: |
Line 1910 class ImageCollectionMD(ImageCollection,
|
Line 1924 class ImageCollectionMD(ImageCollection,
|
ret=ret+"<br>"+file+" already exists!" |
ret=ret+"<br>"+file+" already exists!" |
|
|
else: |
else: |
|
zLOG.LOG("ImageArchiveMD:import", zLOG.INFO, "adding ZOPE: %s"%file) |
ret=ret+"<br>"+file+" created!" |
ret=ret+"<br>"+file+" created!" |
newObj=ImageDigilib(file,file) |
newObj=ImageDigilib(file,file) |
#print newObj,file |
#print newObj,file |
Line 1919 class ImageCollectionMD(ImageCollection,
|
Line 1934 class ImageCollectionMD(ImageCollection,
|
except: |
except: |
"""nothing yet""" |
"""nothing yet""" |
|
|
|
# check entry in database |
args={} |
args={} |
args['_table']=self.imageCollectionConfig.getTable() |
args['_table']=self.imageCollectionConfig.getTable() |
args[self.imageCollectionConfig.getKey()]=file |
args[self.imageCollectionConfig.getKey()]=file |
|
|
if not self.ZSQLInlineSearch(args=args): |
if not self.ZSQLInlineSearch(args=args): |
|
zLOG.LOG("ImageArchiveMD:import", zLOG.INFO, "adding DB: %s"%file) |
self.ZSQLAdd(args=args) |
self.ZSQLAdd(args=args) |
|
|
#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 |
Line 1939 class ImageCollectionMD(ImageCollection,
|
Line 1956 class ImageCollectionMD(ImageCollection,
|
|
|
self.scaleWorkingVersions() |
self.scaleWorkingVersions() |
|
|
self.scaleToJpgs() |
#self.scaleToJpgs() |
|
|
if RESPONSE: |
if RESPONSE: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
Line 2023 class ImageCollectionMD(ImageCollection,
|
Line 2040 class ImageCollectionMD(ImageCollection,
|
|
|
rc=[] |
rc=[] |
fnIds={} |
fnIds={} |
|
|
for found in self.ZSQLInlineSearch(args=self.REQUEST.form): |
for found in self.ZSQLInlineSearch(args=self.REQUEST.form): |
key=getattr(found,self.imageCollectionConfig.getKey()) |
key=getattr(found,self.imageCollectionConfig.getKey()) |
key=self.getImageByName(key,onlyName="yes") |
key=self.getImageByName(key,onlyName="yes") |
Line 2225 class ImageCollectionMD(ImageCollection,
|
Line 2243 class ImageCollectionMD(ImageCollection,
|
#return url |
#return url |
|
|
url=urllib.unquote(url) |
url=urllib.unquote(url) |
|
|
|
url=url.replace(" ","+") # ersetze Leerzeichen in der URL durch "+" |
|
print url |
xmldoc=urllib.urlopen(url).read() |
xmldoc=urllib.urlopen(url).read() |
#return xmldoc |
#return xmldoc |
try: |
try: |
Line 2286 class ImageCollectionMD(ImageCollection,
|
Line 2307 class ImageCollectionMD(ImageCollection,
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selectedMD.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selectedMD.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','overview_selectedMD.zpt')).__of__(self) |
|
return pt() |
|
|
|
def selection(self): |
def selection(self): |
"""show only selected""" |
"""show only selected""" |