def rich_content(cls, value): if type(value) is Text: return value.content segments = [] for segment in value: if segment.text: segments.append(segment) if segments: return Text(r=segments).content else: return ''
def __init__(self, ref="", authorId=0, guid=None, shapeId=0, text=None, commentPr=None, author=None, ): self.ref = ref self.authorId = authorId self.guid = guid self.shapeId = shapeId if text is None: text = Text() self.text = text self.commentPr = commentPr self.author = author
def mid(cls, rich_text, head, tail): st = 0 end = -1 segments = [] texts = [] for index, segment in enumerate(rich_text.r): l_text = len(segment.text) st = end + 1 end += l_text if end < head: continue elif st <= head <= end: if end < tail: text_st = head - st segment_copy = copy(segment) text = segment.text[text_st:] segment_copy.text = text segments.append(segment_copy) texts.append(text) else: text_st = head - st text_end = tail - st segment_copy = copy(segment) text = segment.text[text_st:text_end+1] segment_copy.text = text segments.append(segment_copy) texts.append(text) break elif end < tail: segment_copy = copy(segment) text = segment.text #segment_copy.text = text segments.append(segment_copy) texts.append(text) else: text_end = tail - st segment_copy = copy(segment) text = segment.text[:text_end + 1] segment_copy.text = text segments.append(segment_copy) texts.append(text) break return Text(r=segments), ''.join(texts)
def __init__(self, ref="", authorId=0, guid=None, shapeId=0, text=None, commentPr=None, author=None, height=79, width=144): self.ref = ref self.authorId = authorId self.guid = guid self.shapeId = shapeId if text is None: text = Text() self.text = text self.commentPr = commentPr self.author = author self.height = height self.width = width
def rich_content(cls, value): return Text(r=value).content