version 1.34, 2004/07/23 17:50:35
|
version 1.52, 2008/09/05 11:42:55
|
Line 9 except:
|
Line 9 except:
|
print "archive not imported" |
print "archive not imported" |
|
|
import os |
import os |
|
import os.path |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
import string |
import string |
import urllib |
import urllib |
|
import logging |
|
|
|
#ersetzt logging |
|
def logger(txt,method,txt2): |
|
"""logging""" |
|
logging.info(txt+ txt2) |
|
|
|
|
import xml.dom.minidom |
import xml.dom.minidom |
from time import localtime,strftime |
from time import localtime,strftime |
from Globals import package_home |
from Globals import package_home |
|
from types import * |
|
|
import re |
import re |
def showHelp(helptext): |
def showHelp(helptext): |
Line 33 def add(self, no_upload=0):
|
Line 42 def add(self, no_upload=0):
|
#self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping']) |
#self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping']) |
self.referencetypes=self.ZopeFind(self) |
self.referencetypes=self.ZopeFind(self) |
|
|
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_add_new')).__of__(self) |
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
if no_upload==0: |
if no_upload==0: |
self.REQUEST.SESSION['no_upload']='yes' |
self.REQUEST.SESSION['no_upload']='yes' |
Line 52 def getISO():
|
Line 61 def getISO():
|
|
|
ret={} |
ret={} |
for lineraw in f: |
for lineraw in f: |
line=lineraw.encode('ascii','replace') |
line=lineraw.encode('ascii','replace').strip() |
value=string.split(line,'\t')[0].encode('ascii','replace') |
value=string.split(line,'\t')[0].encode('ascii','replace') |
key=string.split(line,'\t')[1].encode('ascii','replace') |
key=string.split(line,'\t')[1].encode('ascii','replace') |
ret[key]=value |
ret[key]=value |
Line 81 def add2(self):
|
Line 90 def add2(self):
|
#sorted=listed.sort() |
#sorted=listed.sort() |
#print sorted |
#print sorted |
|
|
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_add_bibdata')).__of__(self) |
return newtemplate() |
return newtemplate() |
#return self.fields |
#return self.fields |
|
|
Line 116 def add3(self):
|
Line 125 def add3(self):
|
metadata=parse_query_string(self.REQUEST['QUERY_STRING']) |
metadata=parse_query_string(self.REQUEST['QUERY_STRING']) |
self.REQUEST.SESSION['metadata']=metadata |
self.REQUEST.SESSION['metadata']=metadata |
vorschlag=[] |
vorschlag=[] |
|
|
if metadata.has_key('author'): |
if metadata.has_key('author'): |
vorschlag.append(metadata['author'][:5]) |
vorschlag.append(metadata['author'][:5]) |
if metadata.has_key('title'): |
if metadata.has_key('title'): |
Line 132 def add3(self):
|
Line 142 def add3(self):
|
self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] |
self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] |
return add5(self) |
return add5(self) |
else: |
else: |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_add_naming')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
|
|
def add4(self): |
def add4(self): |
|
|
self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
|
|
self.folder_name=self.REQUEST['folder_name'] |
self.folder_name=self.REQUEST['folder_name'] |
Line 145 def add4(self):
|
Line 156 def add4(self):
|
#return self.REQUEST['submit'] |
#return self.REQUEST['submit'] |
|
|
try: |
try: |
os.mkdir(self.REQUEST.SESSION['path']) |
#os.popen('mkdir '+self.REQUEST.SESSION['path']) |
os.chmod(self.REQUEST.SESSION['path'],0774) |
os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name'])) |
|
os.chmod(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']),0775) |
|
|
except: |
except: |
|
|
"""nothing""" |
"""nothing""" |
|
|
if self.REQUEST['submit']=="upload images": |
if self.REQUEST['submit']=="upload images": |
Line 155 def add4(self):
|
Line 169 def add4(self):
|
|
|
|
|
self.image_folder_name="pageimg" |
self.image_folder_name="pageimg" |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_upload')).__of__(self) |
|
|
return newtemplate() |
return newtemplate() |
|
|
elif self.REQUEST['submit']=="upload pdf": |
elif self.REQUEST['submit']=="upload pdf": |
Line 168 def add4(self):
|
Line 183 def add4(self):
|
|
|
def add5(self): |
def add5(self): |
"""ADD INDEX.META""" |
"""ADD INDEX.META""" |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self) |
try: |
|
os.chmod(self.REQUEST.SESSION['path'],0775) |
|
except: |
|
pass |
|
|
|
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_add_metadata')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def add6(self): |
def add6(self): |
Line 186 def add6(self):
|
Line 206 def add6(self):
|
if tag!="": |
if tag!="": |
self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n" |
self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n" |
|
|
newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self) |
newtemplate.content_type="text/plain" |
newtemplate.content_type="text/plain" |
renderxml = newtemplate() |
renderxml = newtemplate(encode='utf-8') |
|
|
|
|
if self.REQUEST.SESSION.has_key('no_upload'): |
if self.REQUEST.SESSION.has_key('no_upload'): |
metapath=self.REQUEST.SESSION['path']+"/index.meta" |
metapath=self.REQUEST.SESSION['path']+"/index.meta" |
else: |
else: |
metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta" |
metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta" |
|
|
f=open(metapath,'w') |
f=open(metapath,'w') |
f.writelines(renderxml) |
try: |
|
f.write(renderxml.encode('utf-8')) |
|
except: |
|
f.write(unicode(renderxml,'latin-1').encode('utf-8')) |
|
#f.write(renderxml) |
|
|
f.close() |
f.close() |
os.chmod(metapath,0664) |
os.chmod(metapath,0664) |
os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) |
os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) |
Line 211 def add6(self):
|
Line 238 def add6(self):
|
"""text upload""" |
"""text upload""" |
return 1 |
return 1 |
else: |
else: |
newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self) |
newtemplate2=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_saved')).__of__(self) |
newtemplate2.content_type="text/html" |
newtemplate2.content_type="text/html" |
self.REQUEST.response.setHeader('Content-Type','text/html') |
self.REQUEST.response.setHeader('Content-Type','text/html') |
return newtemplate2() |
return newtemplate2() |
Line 254 def addPresentation(self,path):
|
Line 281 def addPresentation(self,path):
|
except: |
except: |
date="" |
date="" |
i=1 |
i=1 |
while os.path.exists("%02d-presentation"%i): |
while os.path.exists(path+"/%02d-presentation"%i): |
i+=1 |
i+=1 |
self.REQUEST.SESSION['presentationname']="%02d-presentation"%i |
self.REQUEST.SESSION['presentationname']="%02d-presentation"%i |
self.REQUEST.SESSION['path']=path |
self.REQUEST.SESSION['path']=path |
self.REQUEST.SESSION['xmlvorschlag']="""<info> |
|
|
tmpTxt="""<?xml version="1.0" encoding="UTF-8"?> |
|
<info> |
<author>%s</author> |
<author>%s</author> |
<title>%s</title> |
<title>%s</title> |
<date>%s</date> |
<date>%s</date> |
<display>yes</display> |
<display>yes</display> |
</info>"""%(author,title,date) |
</info>"""%(author,title,date) |
|
|
newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self) |
self.REQUEST.SESSION['xmlvorschlag']=tmpTxt.encode('utf-8') |
|
|
|
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addPresentation')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def addPresentation2(self): |
def addPresentation2(self): |
Line 295 def addPresentation2(self):
|
Line 326 def addPresentation2(self):
|
f.write(xmlinfo) |
f.write(xmlinfo) |
f.close() |
f.close() |
try: |
try: |
os.chmod(path+"/"+folder_name,0755) |
os.chmod(path+"/"+folder_name,0775) |
except: |
except: |
"""NO""" |
"""NO""" |
|
|
os.chmod(path+"/"+folder_name+"/"+file_name,0644) |
os.chmod(path+"/"+folder_name+"/"+file_name,0664) |
addDirsToIndexMeta(path,folder_name,content_description,'presentation') |
addDirsToIndexMeta(path,folder_name,content_description,'presentation') |
|
|
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) |
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) |
Line 309 def addPdf(self,path,folder=None):
|
Line 340 def addPdf(self,path,folder=None):
|
"""add fulltext to the path""" |
"""add fulltext to the path""" |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files |
self.REQUEST.SESSION['pathnew']=path |
self.REQUEST.SESSION['pathnew']=path |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPdf').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addPdf')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def addPdf2(self): |
def addPdf2(self): |
Line 343 def addText(self,path,folder=None):
|
Line 374 def addText(self,path,folder=None):
|
"""add fulltext to the path""" |
"""add fulltext to the path""" |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files |
self.REQUEST.SESSION['pathnew']=path |
self.REQUEST.SESSION['pathnew']=path |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addText')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def addText2(self): |
def addText2(self): |
Line 410 def addTextExternal(self,path,texturl,ve
|
Line 441 def addTextExternal(self,path,texturl,ve
|
node.appendChild(subnode) |
node.appendChild(subnode) |
|
|
writefile=file(path+"/index.meta","w") |
writefile=file(path+"/index.meta","w") |
writefile.write(dom.toxml().encode('utf-8')) |
writefile.write(dom.toxml(encoding="UTF-8")) |
writefile.close() |
writefile.close() |
|
|
#change texttool tag |
#change texttool tag |
Line 439 def addTextExternal(self,path,texturl,ve
|
Line 470 def addTextExternal(self,path,texturl,ve
|
|
|
#index.meta ausgeben |
#index.meta ausgeben |
writefile=file(path+"/index.meta","w") |
writefile=file(path+"/index.meta","w") |
writefile.write(dom.toxml().encode('utf-8')) |
writefile.write(dom.toxml(encoding="UTF-8")) |
writefile.close() |
writefile.close() |
|
|
#registrieren |
#registrieren |
Line 468 def addImages(self,path):
|
Line 499 def addImages(self,path):
|
"""Imagesfolder to the path""" |
"""Imagesfolder to the path""" |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files |
self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files |
self.REQUEST.SESSION['path']=path |
self.REQUEST.SESSION['path']=path |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_addImages')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def addImages2(self): |
def addImages2(self): |
Line 482 def addImages2(self):
|
Line 513 def addImages2(self):
|
self.content_type='images' |
self.content_type='images' |
addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type) |
addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type) |
self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self) |
newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_upload2')).__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
|
|
Line 512 def addDirsToIndexMeta(path,folder_name,
|
Line 543 def addDirsToIndexMeta(path,folder_name,
|
node.appendChild(subnode) |
node.appendChild(subnode) |
|
|
writefile=file(path+"/index.meta","w") |
writefile=file(path+"/index.meta","w") |
writefile.write(dom.toxml().encode('utf-8')) |
writefile.write(dom.toxml(encoding='UTF-8')) |
writefile.close() |
writefile.close() |
|
|
def readArchimedesXML(folder): |
def readArchimedesXML(folder): |
Line 553 def combineTextImage2(self,path):
|
Line 584 def combineTextImage2(self,path):
|
subnode=dom.createElement('texttool') #neu erzeugen |
subnode=dom.createElement('texttool') #neu erzeugen |
|
|
|
|
presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0] |
presentfiles=os.listdir(path+"/"+self.REQUEST['presentation']) |
|
for presentfileTmp in presentfiles: |
|
if (presentfileTmp[0]!="."): #schliesse unsichbare DAteien aus. |
|
presentfile=presentfileTmp |
|
|
|
|
displaynode=dom.createElement('display') |
displaynode=dom.createElement('display') |
Line 671 def combineTextImage2(self,path):
|
Line 705 def combineTextImage2(self,path):
|
"""nothing""" |
"""nothing""" |
|
|
writefile=file(path+"/index.meta","w") |
writefile=file(path+"/index.meta","w") |
writefile.write(dom.toxml().encode('utf-8')) |
writefile.write(dom.toxml(encoding="UTF-8")) |
writefile.close() |
writefile.close() |
|
|
|
|
|
|
urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() |
# urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() |
|
# |
|
# if self.REQUEST.has_key('image'): # falls bilder |
|
# path=re.sub('//','/',self.REQUEST['path']) # falls '//' im Pfad |
|
# dlpath = re.sub('/mpiwg/online/','',path)+"/"+self.REQUEST['image'] |
|
# |
|
# logger('OSas',logging.INFO,"ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ) |
|
# ret=os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ).read() |
|
# logger('OSAS (combine)',logging.INFO,ret) |
|
|
if self.REQUEST.has_key('image'): # falls bilder |
|
dlpath = re.sub('/mpiwg/online/','',self.REQUEST['path'])+"/"+self.REQUEST['image'] |
|
os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -replace >> /tmp/sc.out &"%dlpath ) |
#else: # falls keine Bilder (bug in reg.cgi info file ersetzen) |
#os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image'])) |
# f=file("/tmp/tmp_info.xml","w") |
|
# tmp=patchedInfoXML(self.REQUEST['path']) |
else: # falls keine Bilder (bug in reg.cgi info file ersetzen) |
# f.write(tmp.encode('utf-8')) |
f=file("/tmp/tmp_info.xml","w") |
# f.close() |
f.write(patchedInfoXML(self.REQUEST['path'])) |
# splitted=path.split("/") |
f.close() |
# fn=splitted[len(splitted)-1] |
splitted=path.split("/") |
# remotePath="archive@nausikaa2.rz-berlin.mpg.de:/usr/local/share/archimedes/web/docs/proj/echo/1/docs/"+fn+"/info.xml" |
fn=splitted[len(splitted)-1] |
# os.popen("scp /tmp/tmp_info.xml %s"%remotePath) |
remotePath="archive@nausikaa2.rz-berlin.mpg.de:/usr/local/share/archimedes/web/docs/proj/echo/1/docs/"+fn+"/info.xml" |
|
os.popen("scp /tmp/tmp_info.xml %s"%remotePath) |
|
|
|
def patchedInfoXML(path): |
def patchedInfoXML(path): |
dom=xml.dom.minidom.parse(path+"/index.meta") |
dom=xml.dom.minidom.parse(path+"/index.meta") |