Exemplo n.º 1
0
class ZXhtmlSummaryAnalyser(IZXhtmlAnalyser):
    def __init__(self, maxLength=100):
        self.summary = u""  #$NON-NLS-1$
        self.maxLength = maxLength
        self.inBody = False
        self.length = 0
        self.normalizer = ZNormalizeTextTransformer(True)

    # end __init__()

    def analyseElement(self, node):
        if node.localName.lower() == u"body":  #$NON-NLS-1$
            self.inBody = True

    # end analyseElement()

    def analyseText(self, node):
        if not self.inBody or len(self.summary) > self.maxLength:
            return
        text = convertToUnicode(node.nodeValue)
        if text:
            # use transformer to remove newlines and repeating white spaces.
            self.summary = self.normalizer.transform(self.summary + text)

    # end analyseText

    def getSummary(self):
        return self._ellipsis(self.summary, self.maxLength)

    # end getSummary()

    def _ellipsis(self, s, max):
        if not s:
            return u""  #$NON-NLS-1$
        s = s.strip()
        l = len(s)
        if l < max:
            return s
        end = max - 1
        s = s[0:end]
        s = s + u"..."  #$NON-NLS-1$
        return s.strip()
Exemplo n.º 2
0
class ZXhtmlSummaryAnalyser(IZXhtmlAnalyser):

    def __init__(self, maxLength = 100):
        self.summary = u""  #$NON-NLS-1$
        self.maxLength = maxLength
        self.inBody = False
        self.length = 0
        self.normalizer = ZNormalizeTextTransformer(True)
    # end __init__()

    def analyseElement(self, node):
        if node.localName.lower() == u"body": #$NON-NLS-1$
            self.inBody = True
    # end analyseElement()

    def analyseText(self, node):
        if not self.inBody or len(self.summary) > self.maxLength:
            return
        text = convertToUnicode(node.nodeValue)
        if text:
            # use transformer to remove newlines and repeating white spaces.
            self.summary = self.normalizer.transform( self.summary + text)
    # end analyseText

    def getSummary(self):
        return self._ellipsis(self.summary, self.maxLength)
    # end getSummary()

    def _ellipsis(self, s, max):
        if not s:
            return u"" #$NON-NLS-1$
        s = s.strip()
        l = len(s)
        if l < max:
            return s
        end = max - 1
        s = s[0: end]
        s = s + u"..." #$NON-NLS-1$
        return s.strip()
Exemplo n.º 3
0
 def __init__(self, maxLength = 100):
     self.summary = u""  #$NON-NLS-1$
     self.maxLength = maxLength
     self.inBody = False
     self.length = 0
     self.normalizer = ZNormalizeTextTransformer(True)
Exemplo n.º 4
0
 def __init__(self, maxLength=100):
     self.summary = u""  #$NON-NLS-1$
     self.maxLength = maxLength
     self.inBody = False
     self.length = 0
     self.normalizer = ZNormalizeTextTransformer(True)