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