1: #Neue Version Begin 5.4.2004
2:
3:
4: """Methoden zum hinzufügen von Dokumenten ins Archiv"""
5: from OSAS_helpers import readArchimedesXML
6: try:
7: import archive
8: except:
9: print "archive not imported"
10:
11: import os
12:
13: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
14: from Products.PageTemplates.PageTemplate import PageTemplate
15: import string
16: import urllib
17: import xml.dom.minidom
18: from time import localtime,strftime
19: from Globals import package_home
20:
21: import re
22: def showHelp(helptext):
23: """show helptext"""
24: return """<html>
25: <body>
26: %
27: </body>
28: </html>"""%helptext
29: def add(self, no_upload=0):
30: """ Add metadata or metadata and documents to the repository
31: no_upload=0 kein upload sonst upload von documententen"""
32:
33: #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping'])
34: self.referencetypes=self.ZopeFind(self)
35:
36: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)
37: self.REQUEST.SESSION['path']=self.REQUEST['path']
38: if no_upload==0:
39: self.REQUEST.SESSION['no_upload']='yes'
40: else:
41: if self.REQUEST.SESSION.has_key('no_upload'):
42: del self.REQUEST.SESSION['no_upload']
43:
44: return newtemplate()
45:
46:
47:
48: def getISO():
49: """ISO"""
50: try:
51: f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines()
52:
53: ret={}
54: for lineraw in f:
55: line=lineraw.encode('ascii','replace')
56: value=string.split(line,'\t')[0].encode('ascii','replace')
57: key=string.split(line,'\t')[1].encode('ascii','replace')
58: ret[key]=value
59: except:
60: ret={}
61: return ret
62:
63:
64: def add2(self):
65: self.reftype=self.REQUEST['Reference Type']
66: self.REQUEST.SESSION['reftype']=self.reftype
67: self.bibdata={}
68: for referenceType in self.referencetypes:
69: #print referenceType
70: self.bibdata[referenceType[1].title]=referenceType[1].fields
71: self.bibdata['data']=referenceType[1]
72: self.fields=self.bibdata[self.reftype]
73:
74: self.isolist=getISO()
75: tmp=getISO().keys()
76: tmp.sort()
77: self.isokeys=tmp
78: #listed=[ x for x in self.isolist.keys()]
79: #print listed
80: #sorted=listed.sort()
81: #print sorted
82:
83: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self)
84: return newtemplate()
85: #return self.fields
86:
87:
88: def parse_query_string(str):
89: queries={}
90: key=""
91: value=""
92: tmp=""
93: toggle="key"
94: str=urllib.unquote(str)
95: for i in str:
96: if i=="=":
97: key=tmp
98: toggle="value"
99: tmp=""
100: elif i=="&":
101: queries[key]=tmp
102: tmp=""
103: toggle="key"
104: else:
105: if toggle=="key":
106: if i=="+" : i="-"
107: else:
108: if i=="+" : i=" "
109: tmp=tmp+i
110: queries[key]=tmp
111: return queries
112:
113: def add3(self):
114: """Foldername"""
115: metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
116: self.REQUEST.SESSION['metadata']=metadata
117: vorschlag=[]
118: if metadata.has_key('author'):
119: vorschlag.append(metadata['author'][:5])
120: if metadata.has_key('title'):
121: vorschlag.append(metadata['title'][:5])
122: if metadata.has_key('year'):
123: vorschlag.append(metadata['year'])
124:
125:
126: vorschlag_naming=string.join(vorschlag,"_")
127:
128:
129: self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')
130: if self.REQUEST.SESSION.has_key('no_upload'):
131: self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']
132: return add5(self)
133: else:
134: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self)
135: return newtemplate()
136:
137:
138: def add4(self):
139: self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
140:
141: self.folder_name=self.REQUEST['folder_name']
142: # next has to be changed -> error if back button is used!!
143: self.REQUEST.SESSION['folder_name']=self.folder_name
144: if self.REQUEST['submit']=="upload images":
145: self.REQUEST.SESSION['path']=os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name'])
146: self.image_folder_name="pageimg"
147: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self)
148: return newtemplate()
149: else:
150: os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
151: return addText(self,os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']))
152:
153:
154: def add5(self):
155: """ADD INDEX.META"""
156: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)
157: return newtemplate()
158:
159: def add6(self):
160: metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
161: metadata['archive-path']=os.path.split(self.REQUEST.SESSION['path'])[0]
162: #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
163: metadata['folder_name']=os.path.split(self.REQUEST.SESSION['path'])[1]
164: metadata['content-type']="scanned document"
165: self.reftype=self.REQUEST.SESSION['reftype']
166: self.REQUEST.SESSION['add_metadata']=metadata
167: self.add_metadata=metadata
168: self.metadata=self.REQUEST.SESSION['metadata']
169: self.metadataprint=""
170: for tag in self.metadata.keys():
171: if tag!="":
172: self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
173:
174: newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
175: newtemplate.content_type="text/plain"
176: renderxml = newtemplate()
177: if self.REQUEST.SESSION.has_key('no_upload'):
178: metapath=self.REQUEST.SESSION['path']+"/index.meta"
179: else:
180: metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"
181:
182: f=open(metapath,'w')
183: f.writelines(renderxml)
184: f.close()
185: os.chmod(metapath,0664)
186: os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])
187: if self.REQUEST.SESSION.has_key('no_upload'):
188:
189: #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)
190: return self.REQUEST.response.redirect(self.REQUEST['URL2']+"?path="+self.REQUEST.SESSION['path'])
191: else:
192: #print self.add_metadata['archive-path']
193: self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1)
194: if not (self.REQUEST.SESSION['no_upload']=="text"):
195: newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self)
196: newtemplate2.content_type="text/html"
197: self.REQUEST.response.setHeader('Content-Type','text/html')
198: return newtemplate2()
199: else:
200: """text upload"""
201: return 1
202:
203:
204:
205: def date(self):
206: return strftime("%d.%m.%Y",localtime())
207:
208:
209: def addPresentation(self,path):
210: """add presentation to the path"""
211:
212: dom=xml.dom.minidom.parse(path+"/index.meta")
213:
214:
215: try:
216: author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
217: except:
218: try:
219: author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
220: except:
221: try:
222: author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes)
223: except:
224: author=""
225: try:
226: title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
227: except:
228: title=""
229:
230: try:
231: date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
232: except:
233: try:
234: date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)
235: except:
236: try:
237: date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
238: except:
239: date=""
240: i=1
241: while os.path.exists("%02d-presentation"%i):
242: i+=1
243: self.REQUEST.SESSION['presentationname']="%02d-presentation"%i
244: self.REQUEST.SESSION['path']=path
245: self.REQUEST.SESSION['xmlvorschlag']="""<info>
246: <author>%s</author>
247: <title>%s</title>
248: <date>%s</date>
249: <display>yes</display>
250: </info>"""%(author,title,date)
251:
252: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
253: return newtemplate()
254:
255: def addPresentation2(self):
256: """add presentation """
257: folder_name=self.REQUEST['folder_name']
258: #print self.REQUEST['folder_name']
259: content_description=self.REQUEST['content_description']
260:
261: path=self.REQUEST.SESSION['path']
262:
263: if not self.REQUEST.has_key('fileupload'):
264: xmlinfo=self.REQUEST['xmltext']
265: file_name="info.xml"
266:
267: else:
268: file_name=self.REQUEST['fileupload'].filename
269: xmlinfo=self.REQUEST.form['fileupload'].read()
270: # hack Multipart auswertung funktioniert nicht ausser bei mozilla
271: file_name="info.xml"
272: xmlinfo=self.REQUEST['xmltext']
273: try:
274: os.mkdir(path+"/"+folder_name)
275: except:
276: """nothing"""
277: #print "NAME:",file_name
278: f=open(path+"/"+folder_name+"/"+file_name,"w")
279: f.write(xmlinfo)
280: f.close()
281: try:
282: os.chmod(path+"/"+folder_name,0755)
283: except:
284: """NO"""
285:
286: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
287: addDirsToIndexMeta(path,folder_name,content_description,'presentation')
288:
289: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
290:
291: def addText(self,path,folder=None):
292: """add fulltext to the path"""
293: self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
294: self.REQUEST.SESSION['pathnew']=path
295: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
296: return newtemplate()
297:
298: def addText2(self):
299: """addtext"""
300: folder_name=self.REQUEST['folder_name']
301: #print self.REQUEST['folder_name']
302: content_description=self.REQUEST['content_description']
303: path=self.REQUEST.SESSION['pathnew']
304: file_name=self.REQUEST['fileupload'].filename
305: filedata=self.REQUEST.form['fileupload'].read()
306: os.mkdir(path+"/"+folder_name)
307: f=open(path+"/"+folder_name+"/"+file_name,"w")
308: f.write(filedata)
309: f.close()
310: os.chmod(path+"/"+folder_name,0755)
311: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
312: addDirsToIndexMeta(path,folder_name,content_description,'fulltext')
313:
314: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
315:
316: def addTextExternal(self,path,texturl,version):
317: """hinzufügen eines externen textes"""
318: try: #neue text version einlesen
319: texttemp=urllib.urlopen(texturl).readlines()
320: text=""
321: for line in texttemp:
322: text=text+line
323: except: #fehler beim lesen des textes
324: return "ERROR: cannot read: %s"%texturl
325: if TextExternalError(text): #kein xml header
326: return "ERROR: cannot read: %s"%texturl, "received:",text
327: textpath=getNewTextPath(path) #erzeuge neuen Ornder für den Text
328: splitted=string.split(texturl,"/")
329: name=splitted[len(splitted)-1] #Name des XML-files
330: try:
331: writefile=file(path+"/"+textpath+"/"+name,"w")
332: except:
333: return"ERROR: cannot write: %s"%path+"/"+textpath+"/"+name
334: writefile.write(text)
335: writefile.close()
336: os.chmod(path+"/"+textpath+"/"+name,0644)
337:
338: #add new file to XML
339: dom=xml.dom.minidom.parse(path+"/index.meta")
340: node=dom.getElementsByTagName('resource')[0] #getNode
341:
342: subnode=dom.createElement('dir')
343:
344: namenode=dom.createElement('name')
345: namenodetext=dom.createTextNode(textpath)
346: namenode.appendChild(namenodetext)
347: subnode.appendChild(namenode)
348:
349: descriptionnode=dom.createElement('description')
350: descriptionnodetext=dom.createTextNode('archimedes text:'+version)
351: descriptionnode.appendChild(descriptionnodetext)
352: subnode.appendChild(descriptionnode)
353:
354: contentnode=dom.createElement('content-type')
355: contentnodetext=dom.createTextNode('fulltext')
356: contentnode.appendChild(contentnodetext)
357: subnode.appendChild(contentnode)
358:
359: node.appendChild(subnode)
360:
361: writefile=file(path+"/index.meta","w")
362: writefile.write(dom.toxml().encode('utf-8'))
363: writefile.close()
364:
365: #change texttool tag
366: dom=xml.dom.minidom.parse(path+"/index.meta")
367: node=dom.getElementsByTagName('meta')[0] #getNode
368:
369: try: #texttool existiert schon
370: subnode=node.getElementsByTagName('texttool')[0]
371: except: #wenn nicht Fehler ausgeben
372: return "ERROR:no presentation configured yet, user Web Front End to do so!"
373:
374:
375: try:
376: texttoolnodelist=subnode.getElementsByTagName('text')
377:
378: if not len(texttoolnodelist)==0: #texttool tag existiert schon, dann löschen
379: subsubnode=subnode.removeChild(texttoolnodelist[0])
380: subsubnode.unlink()
381: except:
382: """nothing"""
383: # text neu anlegen
384: textfoldernode=dom.createElement('text')
385: textfoldernodetext=dom.createTextNode(textpath+"/"+name)
386: textfoldernode.appendChild(textfoldernodetext)
387: subnode.appendChild(textfoldernode)
388:
389: #index.meta ausgeben
390: writefile=file(path+"/index.meta","w")
391: writefile.write(dom.toxml().encode('utf-8'))
392: writefile.close()
393:
394: #registrieren
395: return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
396:
397:
398:
399: def TextExternalError(text):
400: firsts=text[0:10]
401: #print firsts
402: try:
403: match=re.search(r".*<?xml.*",firsts)
404: except:
405: return 1
406: return 0
407:
408: def getNewTextPath(path):
409: i=1
410: while os.path.exists(path+"/fulltext%i"%i):
411: i+=1
412: os.mkdir(path+"/fulltext%i"%i)
413: os.chmod(path+"/fulltext%i"%i,0755)
414: return "fulltext%i"%i
415:
416: def addImages(self,path):
417: """Imagesfolder to the path"""
418: self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
419: self.REQUEST.SESSION['path']=path
420: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self)
421: return newtemplate()
422:
423: def addImages2(self):
424:
425: self.image_folder_name=self.REQUEST['folder_name']
426: #print self.REQUEST['folder_name']
427: self.content_description=self.REQUEST['content_description']
428: #self.path=self.REQUEST.SESSION['path']
429:
430:
431: self.content_type='images'
432: addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
433: self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
434: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self)
435: return newtemplate()
436:
437:
438:
439: def addDirsToIndexMeta(path,folder_name,content_description,content_type):
440: #f=file(path+"/index.meta",r)
441: dom=xml.dom.minidom.parse(path+"/index.meta")
442: node=dom.getElementsByTagName('resource')[0] #getNode
443:
444: subnode=dom.createElement('dir')
445:
446: namenode=dom.createElement('name')
447: namenodetext=dom.createTextNode(folder_name)
448: namenode.appendChild(namenodetext)
449: subnode.appendChild(namenode)
450:
451: descriptionnode=dom.createElement('description')
452: descriptionnodetext=dom.createTextNode(content_description)
453: descriptionnode.appendChild(descriptionnodetext)
454: subnode.appendChild(descriptionnode)
455:
456: contentnode=dom.createElement('content-type')
457: contentnodetext=dom.createTextNode(content_type)
458: contentnode.appendChild(contentnodetext)
459: subnode.appendChild(contentnode)
460:
461: node.appendChild(subnode)
462:
463: writefile=file(path+"/index.meta","w")
464: writefile.write(dom.toxml().encode('utf-8'))
465: writefile.close()
466:
467: def readArchimedesXML(folder):
468: """gib URL aus """
469: XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
470: #print XML
471: dom=xml.dom.minidom.parseString(XML)
472: items=dom.getElementsByTagName('item')
473: dict={}
474:
475: for item in items:
476: #print item.attributes['dir'].value
477: try:
478: dict[item.attributes['dir'].value]=item.attributes['xml'].value
479: #print item.attributes['dir'].value,item.attributes['text'].value
480: except:
481: """nothing"""
482:
483: if dict.has_key(folder):
484: return dict[folder]
485: else:
486: return ""
487:
488:
489:
490:
491: def combineTextImage2(self,path):
492: """erstellt bzw. ändert texttool meta tag"""
493: dom=xml.dom.minidom.parse(path+"/index.meta")
494: node=dom.getElementsByTagName('meta')[0] #getNode
495:
496:
497: subnodelist=node.getElementsByTagName('texttool')
498: if not len(subnodelist)==0: #texttool tag existiert schon, dann löschen
499: subnode=node.removeChild(subnodelist[0])
500: subnode.unlink()
501:
502: subnode=dom.createElement('texttool') #neu erzeugen
503:
504:
505: presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0]
506:
507:
508: displaynode=dom.createElement('display')
509: displaynodetext=dom.createTextNode('yes')
510: displaynode.appendChild(displaynodetext)
511: subnode.appendChild(displaynode)
512:
513: if self.REQUEST.has_key('image'):
514: namenode=dom.createElement('image')
515: namenodetext=dom.createTextNode(self.REQUEST['image'])
516: namenode.appendChild(namenodetext)
517: subnode.appendChild(namenode)
518:
519: if self.REQUEST.has_key('text'):
520: textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
521: textfoldernode=dom.createElement('text')
522: textfoldernodetext=dom.createTextNode(path+"/"+self.REQUEST['text']+"/"+textfile)
523: textfoldernode.appendChild(textfoldernodetext)
524: subnode.appendChild(textfoldernode)
525:
526: if self.REQUEST.has_key('external'):#USE CVS instead of local text
527: textfoldernode=dom.createElement('text')
528: textfoldernodetext=dom.createTextNode(self.REQUEST.SESSION['externxml'])
529: textfoldernode.appendChild(textfoldernodetext)
530: subnode.appendChild(textfoldernode)
531:
532: if self.REQUEST.has_key('pagebreak'):
533: pagebreaknode=dom.createElement('pagebreak')
534: pagebreaknodetext=dom.createTextNode(self.REQUEST['pagebreak'])
535: pagebreaknode.appendChild(pagebreaknodetext)
536: subnode.appendChild(pagebreaknode)
537:
538: if self.REQUEST.has_key('presentation'):
539: presentationnode=dom.createElement('presentation')
540: presentationnodetext=dom.createTextNode(self.REQUEST['presentation']+"/"+presentfile)
541: presentationnode.appendChild(presentationnodetext)
542: subnode.appendChild(presentationnode)
543:
544:
545: if self.REQUEST.has_key('xslt'):
546: if not self.REQUEST['xslt']=="":
547: xsltnode=dom.createElement('xslt')
548: xsltnodetext=dom.createTextNode(self.REQUEST['xslt'])
549: xsltnode.appendChild(xsltnodetext)
550: subnode.appendChild(xsltnode)
551:
552:
553: if self.REQUEST.has_key('thumbtemplate'):
554: if not self.REQUEST['thumbtemplate']=="":
555: xsltnode=dom.createElement('thumbtemplate')
556: xsltnodetext=dom.createTextNode(self.REQUEST['thumbtemplate'])
557: xsltnode.appendChild(xsltnodetext)
558: subnode.appendChild(xsltnode)
559:
560: if self.REQUEST.has_key('topbar'):
561: if not self.REQUEST['topbar']=="":
562: xsltnode=dom.createElement('toptemplate')
563: xsltnodetext=dom.createTextNode(self.REQUEST['topbar'])
564: xsltnode.appendChild(xsltnodetext)
565: subnode.appendChild(xsltnode)
566:
567: if self.REQUEST.has_key('startpage'):
568: if not self.REQUEST['startpage']=="":
569: xsltnode=dom.createElement('startpage')
570: xsltnodetext=dom.createTextNode(self.REQUEST['startpage'])
571: xsltnode.appendChild(xsltnodetext)
572: subnode.appendChild(xsltnode)
573:
574: if self.REQUEST.has_key('project'):
575: if not self.REQUEST['project']=="":
576: xsltnode=dom.createElement('project')
577: xsltnodetext=dom.createTextNode(self.REQUEST['project'])
578: xsltnode.appendChild(xsltnodetext)
579: subnode.appendChild(xsltnode)
580:
581: node.appendChild(subnode)
582:
583: try:
584: node2=node.getElementsByTagName('bib')[0]
585: subs=node2.getElementsByTagName('lang')
586: for sub in subs:
587: node2.removeChild(sub)
588: except:
589: """nothing"""
590: try:
591: main=dom.getElementsByTagName('bib')[0]
592: node=dom.createElement('lang')
593: textnode=dom.createTextNode(self.REQUEST['lang'])
594: node.appendChild(textnode)
595: main.appendChild(node)
596: except:
597: try:
598: subs=dom.getElementsByTagName('lang')
599: main=dom.getElementsByTagName('resource')[0]
600: for sub in subs:
601: main.removeChild(sub)
602: except:
603: """nothing"""
604:
605: try:
606: main=dom.getElementsByTagName('resource')[0]
607: node=dom.createElement('lang')
608: textnode=dom.createTextNode(self.REQUEST['lang'])
609: #print "LANG:",self.REQUEST['lang']
610: node.appendChild(textnode)
611: main.appendChild(node)
612: except:
613: """nothing"""
614:
615: writefile=file(path+"/index.meta","w")
616: writefile.write(dom.toxml().encode('utf-8'))
617: writefile.close()
618:
619:
620:
621: urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
622:
623: if self.REQUEST.has_key('image'): # falls bilder
624: os.popen("ssh 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']))
625:
626: else: # falls keine Bilder (bug in reg.cgi info file ersetzen)
627: f=file("/tmp/tmp_info.xml","w")
628: f.write(patchedInfoXML(self.REQUEST['path']))
629: f.close()
630: splitted=path.split("/")
631: fn=splitted[len(splitted)-1]
632: remotePath="archive@nausikaa2.rz-berlin.mpg.de:/usr/local/share/archimedes/web/docs/proj/echo/1/docs/"+fn+"/info.xml"
633: os.popen("scp /tmp/tmp_info.xml %s"%remotePath)
634:
635: def patchedInfoXML(path):
636: dom=xml.dom.minidom.parse(path+"/index.meta")
637:
638: ret="<info>\n"
639: ret+="<remotetext>%s</remotetext>\n"%archive.getText(dom.getElementsByTagName('text')[0].childNodes)
640: ret+="<pagebreak>%s</pagebreak>\n"%archive.getText(dom.getElementsByTagName('pagebreak')[0].childNodes)
641: ret+="<display>%s</display>\n"%archive.getText(dom.getElementsByTagName('display')[0].childNodes)
642: try:
643: ret+="<toptemplate>%s</toptemplate>\n"%archive.getText(dom.getElementsByTagName('toptemplate')[0].childNodes)
644: except:
645: """not"""
646: try:
647: ret+="<thumbtemplate>%s</thumbtemplate>\n"%archive.getText(dom.getElementsByTagName('thumbtemplate')[0].childNodes)
648: except:
649: """not"""
650: try:
651: ret+="<startpage>%s</startpage>\n"%archive.getText(dom.getElementsByTagName('startpage')[0].childNodes)
652: except:
653: """not"""
654:
655: ret+="<lang>%s</lang>\n"%archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
656: try:
657: ret+="<author>%s</author>\n"%archive.getText(dom.getElementsByTagName('author')[0].childNodes)
658: except:
659: """not"""
660: try:
661: ret+="<title>%s</title>\n"%archive.getText(dom.getElementsByTagName('title')[0].childNodes)
662: except:
663: """not"""
664:
665: ret+="</info>"
666:
667: return ret
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>