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