File:  [Repository] / OSAS / OSA_system / OSAS_helpers.py
Revision 1.8: download - view: text, annotated - select for diffs - revision graph
Thu Apr 15 21:30:42 2004 UTC (20 years, 2 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
bugs in change templates fixed

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

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