Annotation of OSAS/OSA_system/OSAS_helpers.py, revision 1.8

1.1       dwinter     1: """ some helpfull methods """
                      2: import xml.dom.minidom
                      3: import os.path
                      4: import re
1.4       dwinter     5: import urllib
                      6: 
1.7       dwinter     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: 
1.8     ! dwinter    23: 
1.7       dwinter    24:    try:
1.8     ! dwinter    25:        changeNodesInIndexMeta(path,'',subnodes,parent='texttool')
        !            26: 
1.7       dwinter    27:    except:
                     28:        print "ERROR (changeIndexMeta)",path
1.8     ! dwinter    29:    
        !            30:    urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
1.7       dwinter    31:    return "done"
                     32: 
                     33: 
1.4       dwinter    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:    
1.1       dwinter    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:
1.2       dwinter    78:         f="""<resource type="ECHO" version="1.1"></resource>"""
1.1       dwinter    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: 
1.2       dwinter   100:             nodeOld=root.getElementsByTagName(subnode)
1.3       dwinter   101:             
1.2       dwinter   102:             if nodeOld: # if yes -> delete it
1.3       dwinter   103:                 try:
                    104:                     root.removeChild(nodeOld[0]).unlink()
                    105:                 except:
                    106:                     """nothing"""
1.2       dwinter   107: 
1.1       dwinter   108:             namenode=dom.createElement(re.sub(r' ','-',subnode))
1.5       dwinter   109:             namenodetext=dom.createTextNode(unicode(subnodes[subnode],"utf8"))
1.1       dwinter   110:             namenode.appendChild(namenodetext)
                    111:             root.appendChild(namenode)
                    112: 
                    113:     else:
1.2       dwinter   114:         nodeOld=root.getElementsByTagName(node)
                    115:         
1.8     ! dwinter   116:         try:
        !           117:        if nodeOld: # if yes -> delete it
        !           118:                    root.removeChild(nodeOld[0]).unlink()
        !           119:    except:
        !           120:        """nothing"""
1.2       dwinter   121: 
1.1       dwinter   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))
1.5       dwinter   132:             namenodetext=dom.createTextNode(unicode(subnodes[subnode],"utf8"))
1.1       dwinter   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()
1.8     ! dwinter   142:     try:   
        !           143:        os.chmod(path+"/index.meta",0664)
        !           144:     except:
        !           145:    """nothing"""
1.1       dwinter   146: 
                    147:     
                    148:     
                    149:     

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