Annotation of OSAS/OSA_system/OSAS_add.py, revision 1.23
1.18 dwinter 1: #Neue Version Begin 5.4.2004
1.1 dwinter 2:
3:
4: """Methoden zum hinzufügen von Dokumenten ins Archiv"""
1.13 dwinter 5: from OSAS_helpers import readArchimedesXML
1.17 dwinter 6: try:
7: import archive
8: except:
9: print "archive not imported"
10:
1.1 dwinter 11: import os
1.21 dwinter 12:
1.1 dwinter 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
1.12 dwinter 18: from time import localtime,strftime
1.18 dwinter 19: from Globals import package_home
1.1 dwinter 20:
21: import re
1.20 dwinter 22: def showHelp(helptext):
23: """show helptext"""
24: return """<html>
25: <body>
26: %
27: </body>
28: </html>"""%helptext
1.1 dwinter 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:
1.18 dwinter 33: #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping'])
34: self.referencetypes=self.ZopeFind(self)
35:
1.12 dwinter 36: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)
1.1 dwinter 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():
1.10 dwinter 49: """ISO"""
1.9 dwinter 50: try:
1.18 dwinter 51: f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines()
52:
1.9 dwinter 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')
1.10 dwinter 58: ret[key]=value
1.9 dwinter 59: except:
60: ret={}
1.21 dwinter 61: return ret
1.1 dwinter 62:
1.20 dwinter 63:
1.1 dwinter 64: def add2(self):
65: self.reftype=self.REQUEST['Reference Type']
1.18 dwinter 66: self.REQUEST.SESSION['reftype']=self.reftype
67: self.bibdata={}
68: for referenceType in self.referencetypes:
1.20 dwinter 69: #print referenceType
1.18 dwinter 70: self.bibdata[referenceType[1].title]=referenceType[1].fields
1.20 dwinter 71: self.bibdata['data']=referenceType[1]
1.1 dwinter 72: self.fields=self.bibdata[self.reftype]
1.21 dwinter 73:
1.1 dwinter 74: self.isolist=getISO()
1.10 dwinter 75: tmp=getISO().keys()
76: tmp.sort()
77: self.isokeys=tmp
1.1 dwinter 78: #listed=[ x for x in self.isolist.keys()]
79: #print listed
80: #sorted=listed.sort()
81: #print sorted
82:
1.12 dwinter 83: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self)
1.1 dwinter 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
1.18 dwinter 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:
1.17 dwinter 129: self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')
1.1 dwinter 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:
1.12 dwinter 134: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self)
1.1 dwinter 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']
1.18 dwinter 142: # next has to be changed -> error if back button is used!!
1.1 dwinter 143: self.REQUEST.SESSION['folder_name']=self.folder_name
1.21 dwinter 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:
1.1 dwinter 153:
154: def add5(self):
155: """ADD INDEX.META"""
1.12 dwinter 156: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)
1.1 dwinter 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():
1.23 ! dwinter 171: if tag!="":
! 172: self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
1.1 dwinter 173:
1.12 dwinter 174: newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
1.1 dwinter 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()
1.10 dwinter 185: os.chmod(metapath,0664)
186: os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])
1.1 dwinter 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']
1.21 dwinter 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
1.1 dwinter 202:
1.12 dwinter 203:
1.1 dwinter 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")
1.3 dwinter 213:
214:
1.1 dwinter 215: try:
216: author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
217: except:
1.9 dwinter 218: try:
219: author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
220: except:
1.21 dwinter 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:
1.1 dwinter 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:
1.21 dwinter 236: try:
237: date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
238: except:
239: date=""
1.1 dwinter 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:
1.12 dwinter 252: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
1.1 dwinter 253: return newtemplate()
254:
255: def addPresentation2(self):
256: """add presentation """
1.2 dwinter 257: folder_name=self.REQUEST['folder_name']
1.1 dwinter 258: #print self.REQUEST['folder_name']
1.2 dwinter 259: content_description=self.REQUEST['content_description']
1.1 dwinter 260:
1.2 dwinter 261: path=self.REQUEST.SESSION['path']
1.1 dwinter 262:
263: if not self.REQUEST.has_key('fileupload'):
1.2 dwinter 264: xmlinfo=self.REQUEST['xmltext']
1.1 dwinter 265: file_name="info.xml"
266:
267: else:
268: file_name=self.REQUEST['fileupload'].filename
1.2 dwinter 269: xmlinfo=self.REQUEST.form['fileupload'].read()
270: # hack Multipart auswertung funktioniert nicht ausser bei mozilla
1.1 dwinter 271: file_name="info.xml"
1.2 dwinter 272: xmlinfo=self.REQUEST['xmltext']
1.1 dwinter 273: try:
1.2 dwinter 274: os.mkdir(path+"/"+folder_name)
1.1 dwinter 275: except:
276: """nothing"""
1.5 dwinter 277: #print "NAME:",file_name
1.2 dwinter 278: f=open(path+"/"+folder_name+"/"+file_name,"w")
279: f.write(xmlinfo)
1.1 dwinter 280: f.close()
1.19 dwinter 281: try:
282: os.chmod(path+"/"+folder_name,0755)
283: except:
284: """NO"""
285:
1.2 dwinter 286: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
287: addDirsToIndexMeta(path,folder_name,content_description,'presentation')
1.1 dwinter 288:
1.2 dwinter 289: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1 dwinter 290:
1.21 dwinter 291: def addText(self,path,folder=None):
1.1 dwinter 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['path']=path
1.12 dwinter 295: newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
1.1 dwinter 296: return newtemplate()
297:
298: def addText2(self):
1.2 dwinter 299: folder_name=self.REQUEST['folder_name']
1.1 dwinter 300: #print self.REQUEST['folder_name']
1.2 dwinter 301: content_description=self.REQUEST['content_description']
302: path=self.REQUEST.SESSION['path']
303: file_name=self.REQUEST['fileupload'].filename
304: filedata=self.REQUEST.form['fileupload'].read()
305: os.mkdir(path+"/"+folder_name)
306: f=open(path+"/"+folder_name+"/"+file_name,"w")
307: f.write(filedata)
1.1 dwinter 308: f.close()
1.2 dwinter 309: os.chmod(path+"/"+folder_name,0755)
310: os.chmod(path+"/"+folder_name+"/"+file_name,0644)
311: addDirsToIndexMeta(path,folder_name,content_description,'fulltext')
1.1 dwinter 312:
1.2 dwinter 313: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1 dwinter 314:
315: def addTextExternal(self,path,texturl,version):
316: """hinzufügen eines externen textes"""
317: try: #neue text version einlesen
318: texttemp=urllib.urlopen(texturl).readlines()
319: text=""
320: for line in texttemp:
321: text=text+line
322: except: #fehler beim lesen des textes
323: return "ERROR: cannot read: %s"%texturl
324: if TextExternalError(text): #kein xml header
325: return "ERROR: cannot read: %s"%texturl, "received:",text
326: textpath=getNewTextPath(path) #erzeuge neuen Ornder für den Text
327: splitted=string.split(texturl,"/")
328: name=splitted[len(splitted)-1] #Name des XML-files
329: try:
330: writefile=file(path+"/"+textpath+"/"+name,"w")
331: except:
332: return"ERROR: cannot write: %s"%path+"/"+textpath+"/"+name
333: writefile.write(text)
334: writefile.close()
335: os.chmod(path+"/"+textpath+"/"+name,0644)
336:
337: #add new file to XML
338: dom=xml.dom.minidom.parse(path+"/index.meta")
339: node=dom.getElementsByTagName('resource')[0] #getNode
340:
341: subnode=dom.createElement('dir')
342:
343: namenode=dom.createElement('name')
344: namenodetext=dom.createTextNode(textpath)
345: namenode.appendChild(namenodetext)
346: subnode.appendChild(namenode)
347:
348: descriptionnode=dom.createElement('description')
349: descriptionnodetext=dom.createTextNode('archimedes text:'+version)
350: descriptionnode.appendChild(descriptionnodetext)
351: subnode.appendChild(descriptionnode)
352:
353: contentnode=dom.createElement('content-type')
354: contentnodetext=dom.createTextNode('fulltext')
355: contentnode.appendChild(contentnodetext)
356: subnode.appendChild(contentnode)
357:
358: node.appendChild(subnode)
359:
360: writefile=file(path+"/index.meta","w")
361: writefile.write(dom.toxml().encode('utf-8'))
362: writefile.close()
363:
364: #change texttool tag
365: dom=xml.dom.minidom.parse(path+"/index.meta")
366: node=dom.getElementsByTagName('meta')[0] #getNode
367:
368: try: #texttool existiert schon
369: subnode=node.getElementsByTagName('texttool')[0]
370: except: #wenn nicht Fehler ausgeben
371: return "ERROR:no presentation configured yet, user Web Front End to do so!"
372:
373:
374: try:
375: texttoolnodelist=subnode.getElementsByTagName('text')
376:
377: if not len(texttoolnodelist)==0: #texttool tag existiert schon, dann löschen
378: subsubnode=subnode.removeChild(texttoolnodelist[0])
379: subsubnode.unlink()
380: except:
381: """nothing"""
382: # text neu anlegen
383: textfoldernode=dom.createElement('text')
384: textfoldernodetext=dom.createTextNode(textpath+"/"+name)
385: textfoldernode.appendChild(textfoldernodetext)
386: subnode.appendChild(textfoldernode)
387:
388: #index.meta ausgeben
389: writefile=file(path+"/index.meta","w")
390: writefile.write(dom.toxml().encode('utf-8'))
391: writefile.close()
392:
393: #registrieren
1.6 dwinter 394: return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
395:
1.1 dwinter 396:
397:
398: def TextExternalError(text):
399: firsts=text[0:10]
1.5 dwinter 400: #print firsts
1.1 dwinter 401: try:
402: match=re.search(r".*<?xml.*",firsts)
403: except:
404: return 1
405: return 0
406:
407: def getNewTextPath(path):
408: i=1
409: while os.path.exists(path+"/fulltext%i"%i):
410: i+=1
411: os.mkdir(path+"/fulltext%i"%i)
412: os.chmod(path+"/fulltext%i"%i,0755)
413: return "fulltext%i"%i
414:
415: def addImages(self,path):
416: """Imagesfolder to the path"""
417: self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
418: self.REQUEST.SESSION['path']=path
1.12 dwinter 419: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self)
1.1 dwinter 420: return newtemplate()
421:
422: def addImages2(self):
1.2 dwinter 423:
1.1 dwinter 424: self.image_folder_name=self.REQUEST['folder_name']
425: #print self.REQUEST['folder_name']
426: self.content_description=self.REQUEST['content_description']
427: #self.path=self.REQUEST.SESSION['path']
428:
429:
430: self.content_type='images'
431: addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
432: self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
1.12 dwinter 433: newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self)
1.1 dwinter 434: return newtemplate()
1.2 dwinter 435:
1.1 dwinter 436:
437:
438: def addDirsToIndexMeta(path,folder_name,content_description,content_type):
439: #f=file(path+"/index.meta",r)
440: dom=xml.dom.minidom.parse(path+"/index.meta")
441: node=dom.getElementsByTagName('resource')[0] #getNode
442:
443: subnode=dom.createElement('dir')
444:
445: namenode=dom.createElement('name')
446: namenodetext=dom.createTextNode(folder_name)
447: namenode.appendChild(namenodetext)
448: subnode.appendChild(namenode)
449:
450: descriptionnode=dom.createElement('description')
451: descriptionnodetext=dom.createTextNode(content_description)
452: descriptionnode.appendChild(descriptionnodetext)
453: subnode.appendChild(descriptionnode)
454:
455: contentnode=dom.createElement('content-type')
456: contentnodetext=dom.createTextNode(content_type)
457: contentnode.appendChild(contentnodetext)
458: subnode.appendChild(contentnode)
459:
460: node.appendChild(subnode)
461:
462: writefile=file(path+"/index.meta","w")
463: writefile.write(dom.toxml().encode('utf-8'))
464: writefile.close()
465:
1.5 dwinter 466: def readArchimedesXML(folder):
467: """gib URL aus """
468: XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
469: #print XML
470: dom=xml.dom.minidom.parseString(XML)
471: items=dom.getElementsByTagName('item')
472: dict={}
473:
474: for item in items:
475: #print item.attributes['dir'].value
476: try:
1.6 dwinter 477: dict[item.attributes['dir'].value]=item.attributes['xml'].value
1.5 dwinter 478: #print item.attributes['dir'].value,item.attributes['text'].value
479: except:
480: """nothing"""
481:
482: if dict.has_key(folder):
483: return dict[folder]
484: else:
485: return ""
1.12 dwinter 486:
1.5 dwinter 487:
1.1 dwinter 488:
489:
490: def combineTextImage2(self,path):
491: """erstellt bzw. ändert texttool meta tag"""
492: dom=xml.dom.minidom.parse(path+"/index.meta")
493: node=dom.getElementsByTagName('meta')[0] #getNode
494:
495:
496: subnodelist=node.getElementsByTagName('texttool')
497: if not len(subnodelist)==0: #texttool tag existiert schon, dann löschen
498: subnode=node.removeChild(subnodelist[0])
499: subnode.unlink()
500:
501: subnode=dom.createElement('texttool') #neu erzeugen
502:
503:
504: presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0]
505:
506:
507: displaynode=dom.createElement('display')
508: displaynodetext=dom.createTextNode('yes')
509: displaynode.appendChild(displaynodetext)
510: subnode.appendChild(displaynode)
511:
512: if self.REQUEST.has_key('image'):
513: namenode=dom.createElement('image')
514: namenodetext=dom.createTextNode(self.REQUEST['image'])
515: namenode.appendChild(namenodetext)
516: subnode.appendChild(namenode)
517:
518: if self.REQUEST.has_key('text'):
519: textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
520: textfoldernode=dom.createElement('text')
1.6 dwinter 521: textfoldernodetext=dom.createTextNode(path+"/"+self.REQUEST['text']+"/"+textfile)
1.1 dwinter 522: textfoldernode.appendChild(textfoldernodetext)
523: subnode.appendChild(textfoldernode)
524:
1.5 dwinter 525: if self.REQUEST.has_key('external'):#USE CVS instead of local text
526: textfoldernode=dom.createElement('text')
527: textfoldernodetext=dom.createTextNode(self.REQUEST.SESSION['externxml'])
528: textfoldernode.appendChild(textfoldernodetext)
529: subnode.appendChild(textfoldernode)
530:
1.1 dwinter 531: if self.REQUEST.has_key('pagebreak'):
532: pagebreaknode=dom.createElement('pagebreak')
533: pagebreaknodetext=dom.createTextNode(self.REQUEST['pagebreak'])
534: pagebreaknode.appendChild(pagebreaknodetext)
535: subnode.appendChild(pagebreaknode)
536:
537: if self.REQUEST.has_key('presentation'):
538: presentationnode=dom.createElement('presentation')
539: presentationnodetext=dom.createTextNode(self.REQUEST['presentation']+"/"+presentfile)
540: presentationnode.appendChild(presentationnodetext)
541: subnode.appendChild(presentationnode)
542:
1.8 dwinter 543:
544: if self.REQUEST.has_key('xslt'):
545: if not self.REQUEST['xslt']=="":
546: xsltnode=dom.createElement('xslt')
547: xsltnodetext=dom.createTextNode(self.REQUEST['xslt'])
548: xsltnode.appendChild(xsltnodetext)
549: subnode.appendChild(xsltnode)
550:
1.13 dwinter 551:
1.11 dwinter 552: if self.REQUEST.has_key('thumbtemplate'):
553: if not self.REQUEST['thumbtemplate']=="":
554: xsltnode=dom.createElement('thumbtemplate')
555: xsltnodetext=dom.createTextNode(self.REQUEST['thumbtemplate'])
556: xsltnode.appendChild(xsltnodetext)
557: subnode.appendChild(xsltnode)
558:
559: if self.REQUEST.has_key('topbar'):
560: if not self.REQUEST['topbar']=="":
1.13 dwinter 561: xsltnode=dom.createElement('toptemplate')
1.11 dwinter 562: xsltnodetext=dom.createTextNode(self.REQUEST['topbar'])
563: xsltnode.appendChild(xsltnodetext)
564: subnode.appendChild(xsltnode)
565:
1.13 dwinter 566: if self.REQUEST.has_key('startpage'):
567: if not self.REQUEST['startpage']=="":
568: xsltnode=dom.createElement('startpage')
569: xsltnodetext=dom.createTextNode(self.REQUEST['startpage'])
570: xsltnode.appendChild(xsltnodetext)
571: subnode.appendChild(xsltnode)
572:
573: if self.REQUEST.has_key('project'):
574: if not self.REQUEST['project']=="":
575: xsltnode=dom.createElement('project')
576: xsltnodetext=dom.createTextNode(self.REQUEST['project'])
1.14 dwinter 577: xsltnode.appendChild(xsltnodetext)
578: subnode.appendChild(xsltnode)
1.11 dwinter 579:
1.1 dwinter 580: node.appendChild(subnode)
1.6 dwinter 581:
1.5 dwinter 582: try:
1.6 dwinter 583: node2=node.getElementsByTagName('bib')[0]
584: subs=node2.getElementsByTagName('lang')
585: for sub in subs:
586: node2.removeChild(sub)
1.5 dwinter 587: except:
588: """nothing"""
589: try:
590: main=dom.getElementsByTagName('bib')[0]
591: node=dom.createElement('lang')
592: textnode=dom.createTextNode(self.REQUEST['lang'])
593: node.appendChild(textnode)
594: main.appendChild(node)
595: except:
1.6 dwinter 596: try:
597: subs=dom.getElementsByTagName('lang')
598: main=dom.getElementsByTagName('resource')[0]
599: for sub in subs:
600: main.removeChild(sub)
601: except:
602: """nothing"""
603:
604: try:
605: main=dom.getElementsByTagName('resource')[0]
606: node=dom.createElement('lang')
607: textnode=dom.createTextNode(self.REQUEST['lang'])
608: #print "LANG:",self.REQUEST['lang']
609: node.appendChild(textnode)
610: main.appendChild(node)
611: except:
612: """nothing"""
613:
1.1 dwinter 614: writefile=file(path+"/index.meta","w")
615: writefile.write(dom.toxml().encode('utf-8'))
616: writefile.close()
617:
618:
619:
1.2 dwinter 620: urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
1.22 dwinter 621:
622: if self.REQUEST.has_key('image'): # falls bilder
623: 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']))
1.3 dwinter 624:
1.22 dwinter 625:
1.1 dwinter 626:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>