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>