|
|
|
@ -15,6 +15,7 @@
|
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
|
|
import re
|
|
|
|
|
from xml import xpath
|
|
|
|
|
from cl_template import objShare, xmlDoc
|
|
|
|
|
|
|
|
|
|
class procmail(objShare):
|
|
|
|
@ -29,11 +30,28 @@ class procmail(objShare):
|
|
|
|
|
reSepFields = re.compile(sepFields)
|
|
|
|
|
# разделитель названия и значения переменной
|
|
|
|
|
reSeparator = re.compile("=")
|
|
|
|
|
|
|
|
|
|
def __init__(self, text):
|
|
|
|
|
self.text = text
|
|
|
|
|
self.docObj = self.textToXML()
|
|
|
|
|
self.doc = self.docObj.doc
|
|
|
|
|
|
|
|
|
|
def postXML(self):
|
|
|
|
|
"""Последующая постобработка XML"""
|
|
|
|
|
xmlFields = xpath.Evaluate("child::field", self.docObj.body)
|
|
|
|
|
# Добавление переводов строк между полями
|
|
|
|
|
for node in xmlFields:
|
|
|
|
|
# Добавление перевода строк в если его нет между полями
|
|
|
|
|
if self.docObj.getTypeField(node) == "var" and\
|
|
|
|
|
node.previousSibling and\
|
|
|
|
|
not (self.docObj.getTypeField(node.previousSibling) in\
|
|
|
|
|
("br","comment")):
|
|
|
|
|
self.docObj.body.insertBefore(self.docObj.createField("br",
|
|
|
|
|
[],"",[],
|
|
|
|
|
False,
|
|
|
|
|
False),
|
|
|
|
|
node)
|
|
|
|
|
|
|
|
|
|
def setDataField(self, txtLines, endtxtLines):
|
|
|
|
|
"""Создаем список объектов с переменными"""
|
|
|
|
|
class fieldData:
|
|
|
|
@ -112,3 +130,4 @@ class procmail(objShare):
|
|
|
|
|
"""Объединяем конфигурации"""
|
|
|
|
|
if isinstance(procmailObj, procmail):
|
|
|
|
|
self.docObj.joinDoc(procmailObj.doc)
|
|
|
|
|
self.postXML()
|
|
|
|
|