|
|
|
@ -35,8 +35,23 @@ class kde(samba):
|
|
|
|
|
|
|
|
|
|
def __init__(self,text):
|
|
|
|
|
samba.__init__(self,text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def removeSymbolR(self, text):
|
|
|
|
|
"""Удаляет первый символ названия переменной в строке
|
|
|
|
|
|
|
|
|
|
Если первый встречающийся символ с начала строки
|
|
|
|
|
'!' то он из этой строки будет удален,
|
|
|
|
|
если перед этим символом были пробельные символы,
|
|
|
|
|
то они будут сохранены, так-же если в строке есть символ
|
|
|
|
|
перевода строки он будет удален.
|
|
|
|
|
"""
|
|
|
|
|
reTerm = re.compile("^[ \t]*(\!)")
|
|
|
|
|
textNS = text.replace("\n","")
|
|
|
|
|
res = reTerm.search(textNS)
|
|
|
|
|
if res:
|
|
|
|
|
textNS = textNS[res.start():res.end()-1] + textNS[res.end():]
|
|
|
|
|
return textNS
|
|
|
|
|
|
|
|
|
|
def _textToXML(self):
|
|
|
|
|
"""Преобразует текст в XML"""
|
|
|
|
|
blTmp = self.blocTextObj.findBloc(self.text,self.reHeader,self.reBody)
|
|
|
|
@ -98,16 +113,14 @@ class kde(samba):
|
|
|
|
|
fields = self._splitToFields(bodys[z])
|
|
|
|
|
for f in fields:
|
|
|
|
|
if f.name != False and f.value!=False and f.br!=False:
|
|
|
|
|
# Обработка условий для samba
|
|
|
|
|
if f.name[0] == "!" or f.name[0] == "-" or\
|
|
|
|
|
f.name[0] == "+":
|
|
|
|
|
qns = self.removeSymbolTerm(f.br)
|
|
|
|
|
# Обработка условий для kde
|
|
|
|
|
if f.name[0] == "!":
|
|
|
|
|
qns = self.removeSymbolR(f.br)
|
|
|
|
|
xmlField = docObj.createField("var",
|
|
|
|
|
[qns],
|
|
|
|
|
f.name[1:], [f.value])
|
|
|
|
|
if f.name[0] == "!":
|
|
|
|
|
# Удаляемое в дальнейшем поле
|
|
|
|
|
docObj.setActionField(xmlField, "drop")
|
|
|
|
|
[qns],
|
|
|
|
|
f.name[1:], [f.value])
|
|
|
|
|
# Удаляемое в дальнейшем поле
|
|
|
|
|
docObj.setActionField(xmlField, "drop")
|
|
|
|
|
else:
|
|
|
|
|
docObj.createField("var",[f.br.replace("\n","")],
|
|
|
|
|
f.name, [f.value])
|
|
|
|
|