lkd-planet/DJAGEN/branches/mustafa_branch/djagen/collector/configxml.py
2010-07-06 16:25:42 +00:00

122 lines
3.4 KiB
Python
Executable File

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
from xml.dom import minidom
class Handler:
def __init__(self):
self.main_url = "/home/oguz/django-projects/djagen/gezegen"
self.gezegen_url = os.path.join(self.main_url,"gezegen")
self.entries_xml = os.path.join(self.gezegen_url, "config_entries.xml")
self.header_xml = os.path.join(self.gezegen_url, 'config_header.xml')
self.tmp_ini_dir_path = os.path.join(self.main_url, "tmp_ini")
def get_doc(self, type="entries"):
if type == "entries":
self.doc = minidom.parse(self.entries_xml)
else:
self.doc = minidom.parse(self.header_xml)
return self.doc
def get_tag_entries(self,tag):
self.entries = self.doc.getElementsByTagName(tag)
return self.entries
def set_ini_variables(self, id, name, feed, nick, face, label):
self.tmp_ini = {'id': id, 'name': name, 'feed': feed, 'nick': nick, 'face': face, 'label': label}
def open_file(self):
path = os.path.join(self.tmp_ini_dir_path, 'tmp.ini')
self.f = open(path, "w")
def create_header(self):
for header in self.entries:
children = header.childNodes
for child in children:
if child.nodeType == child.TEXT_NODE: continue
else:
node_name = child.nodeName
f_child = child.firstChild
node_value = f_child.nodeValue
s = []
if node_name != "header_name":
s.append(node_name)
s.append("=")
s.append(node_value)
s.append("\n")
ss = " ".join(s)
self.f.write(ss)
def traverse(self):
for entry in self.entries:
nodes = entry.childNodes
for node in nodes:
child = node.firstChild
self.face = None
if node.nodeType == node.TEXT_NODE: continue
if node.nodeName == "feed":
self.feed = child.toxml()
if node.nodeName == "name":
self.name = child.toxml()
if node.nodeName == "nick":
self.nick = child.toxml()
if node.nodeName == "label":
self.label = child.toxml()
if node.nodeName == "face":
self.face = child.toxml()
if node.nodeName == "id":
self.id = child.toxml()
if int(self.tmp_ini['id']) == int(self.id):
self.write_to_file(self.tmp_ini)
else:
config = {'id': self.id, 'name': self.name, 'feed': self.feed, 'nick': self.nick, 'label': self.label, 'face': self.face}
self.write_to_file(config)
def write_to_file(self, dic):
feed = "feed = " + dic['feed'] + "\n"
name = "name = " + dic['name'] + "\n"
nick = "nick = " + dic['nick'] + "\n"
label = "label = " + dic['label'] + "\n"
id = "id = " + dic['id'] + "\n"
self.f.write("\n")
self.f.write(feed)
self.f.write(name)
self.f.write(nick)
if dic['face']:
face = "face = " + dic['face'] + "\n"
self.f.write(face)
self.f.write(label)
self.f.write(id)
def close_file(self):
self.f.close()