File:  [Repository] / OSAS / OSA_system / OSAS_helpers.py
Revision 1.7: download - view: text, annotated - select for diffs - revision graph
Thu Apr 15 20:48:01 2004 UTC (20 years, 2 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
change all template of tree and subtree addede

    1: """ some helpfull methods """
    2: import xml.dom.minidom
    3: import os.path
    4: import re
    5: import urllib
    6: 
    7: def changeIndexMeta(argv,path,dirnames):
    8: 	"""change index.meta"""
    9: 	subnodes={}
   10: 	
   11: 	if not argv['startpage']=='':
   12: 		subnodes['startpage']=argv['startpage']
   13: 	
   14: 	if not argv['xslt']=='':
   15: 		subnodes['xslt']=argv['xslt']
   16: 
   17: 	if not argv['thumbtemplate']=='':
   18: 		subnodes['thumbtemplate']=argv['thumbtemplate']
   19: 
   20: 	if not argv['topbar']=='':
   21: 		subnodes['toptemplate']=argv['toptemplate']
   22: 
   23: 	print path
   24: 	try:
   25: 		changeNodesInIndexMeta(path,"",subnodes)
   26: 		urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
   27: 	except:
   28: 		print "ERROR (changeIndexMeta)",path
   29: 	return "done"
   30: 
   31: 
   32: 
   33: def readArchimedesXML(folder):
   34: 	"""gib URL aus """
   35:         try:
   36:             XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
   37:             #print XML
   38:             dom=xml.dom.minidom.parseString(XML)
   39:             items=dom.getElementsByTagName('item')
   40:             dict={}
   41: 
   42:             for item in items:
   43:                     #print item.attributes['dir'].value
   44:                     try:		
   45:                             dict[item.attributes['dir'].value]=item.attributes['xml'].value
   46:                             #print item.attributes['dir'].value,item.attributes['text'].value
   47:                     except:
   48:                             """nothing"""
   49: 
   50:             if dict.has_key(folder):
   51:                 return dict[folder]
   52:             else:
   53: 		return ""
   54: 	except:
   55:             return ""
   56: 
   57: 	
   58: 
   59: def getText(nodelist):
   60:     
   61:     rc = ""
   62:     for node in nodelist:
   63:     
   64:     	if node.nodeType == node.TEXT_NODE:
   65:            rc = rc + node.data
   66:     return rc
   67: 
   68: def changeNodesInIndexMeta(path,node,subnodes,parent=None,nodeAttributes=None):
   69:     """node mit subnodes wird in index.meta in path eingetragen bzw. ausgetauscht"""
   70: 
   71:     if os.path.exists(path+"/index.meta"):
   72:         inFile=file(path+"/index.meta")
   73:         f=inFile.read()
   74:         inFile.close()
   75:     else:
   76:         f="""<resource type="ECHO" version="1.1"></resource>"""
   77:     
   78:     
   79:     dom=xml.dom.minidom.parseString(f)
   80:     root=dom.getElementsByTagName("resource")[0]
   81:     
   82:     if parent:
   83: 
   84:         try:
   85:             root=root.getElementsByTagName(parent)[0]
   86:         except:
   87:             #print "parent",parent
   88:             nodeNew=dom.createElement(parent)
   89:             root.appendChild(nodeNew)
   90:             root=root.getElementsByTagName(parent)[0]
   91:     
   92:     # check if node already exist
   93: 
   94: 
   95:     if node=="":
   96:         for subnode in subnodes.keys():
   97: 
   98:             nodeOld=root.getElementsByTagName(subnode)
   99:             
  100:             if nodeOld: # if yes -> delete it
  101:                 try:
  102:                     root.removeChild(nodeOld[0]).unlink()
  103:                 except:
  104:                     """nothing"""
  105: 
  106:             namenode=dom.createElement(re.sub(r' ','-',subnode))
  107:             namenodetext=dom.createTextNode(unicode(subnodes[subnode],"utf8"))
  108:             namenode.appendChild(namenodetext)
  109:             root.appendChild(namenode)
  110: 
  111:     else:
  112:         nodeOld=root.getElementsByTagName(node)
  113:         
  114:         if nodeOld: # if yes -> delete it
  115:             root.removeChild(nodeOld[0]).unlink()
  116: 
  117:         nodeNew=dom.createElement(node) # create new
  118: 
  119:         if nodeAttributes:
  120:             for attribute in nodeAttributes.keys():
  121:                 #print attribute,nodeAttributes[attribute]
  122:                 nodeNew.setAttribute(attribute,nodeAttributes[attribute])
  123: 
  124:         for subnode in subnodes.keys():
  125: 
  126:             namenode=dom.createElement(re.sub(r' ','-',subnode))
  127:             namenodetext=dom.createTextNode(unicode(subnodes[subnode],"utf8"))
  128:             namenode.appendChild(namenodetext)
  129:             nodeNew.appendChild(namenode)
  130: 
  131: 
  132:         root.appendChild(nodeNew)
  133: 
  134:     writefile=file(path+"/index.meta","w")
  135:     writefile.write(dom.toxml().encode('utf-8'))
  136:     writefile.close()
  137:     os.chmod(path+"/index.meta",0664)
  138: 
  139: 
  140:     
  141:     
  142:     

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>