From d8aa868bd9cb4196b9dee72bde0ad781f3550847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Nazl=C4=B1can?= <64064136+wulfharth7@users.noreply.github.com> Date: Wed, 14 Feb 2024 10:57:09 +0300 Subject: [PATCH 1/2] Added function to get Rich Texts from blocks --- block.go | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/block.go b/block.go index a19501e..c4b5913 100644 --- a/block.go +++ b/block.go @@ -218,6 +218,7 @@ type Block interface { GetHasChildren() bool GetArchived() bool GetParent() *Parent + GetRichTextString() string } type Blocks []Block @@ -295,7 +296,97 @@ func (b BasicBlock) GetArchived() bool { func (b BasicBlock) GetParent() *Parent { return b.Parent } +func concatenateRichText(richtext []RichText) string { + var result string + for _, rt := range richtext { + result += rt.PlainText + } + return result +} + +func (h *Heading1Block) GetRichTextString() string { + return concatenateRichText(h.Heading1.RichText) +} + +func (p *ParagraphBlock) GetRichTextString() string { + return concatenateRichText(p.Paragraph.RichText) +} + +func (h *Heading2Block) GetRichTextString() string { + return concatenateRichText(h.Heading2.RichText) +} + +func (h *Heading3Block) GetRichTextString() string { + return concatenateRichText(h.Heading3.RichText) +} + +func (c *CalloutBlock) GetRichTextString() string { + return concatenateRichText(c.Callout.RichText) +} + +func (q *QuoteBlock) GetRichTextString() string { + return concatenateRichText(q.Quote.RichText) +} + +func (b *BulletedListItemBlock) GetRichTextString() string { + return concatenateRichText(b.BulletedListItem.RichText) +} + +func (n *NumberedListItemBlock) GetRichTextString() string { + return concatenateRichText(n.NumberedListItem.RichText) +} + +func (t *ToDoBlock) GetRichTextString() string { + return concatenateRichText(t.ToDo.RichText) +} + +func (b *ToggleBlock) GetRichTextString() string { + return concatenateRichText(b.Toggle.RichText) +} +func (b *EmbedBlock) GetRichTextString() string { + return concatenateRichText(b.Embed.Caption) +} + +func (b *ImageBlock) GetRichTextString() string { + return concatenateRichText(b.Image.Caption) +} + +func (b *AudioBlock) GetRichTextString() string { + return concatenateRichText(b.Audio.Caption) +} + +func (b *VideoBlock) GetRichTextString() string { + return concatenateRichText(b.Video.Caption) +} + +func (b *FileBlock) GetRichTextString() string { + return concatenateRichText(b.File.Caption) +} + +func (b *PdfBlock) GetRichTextString() string { + return concatenateRichText(b.Pdf.Caption) +} + +func (b *BookmarkBlock) GetRichTextString() string { + return concatenateRichText(b.Bookmark.Caption) +} + +func (b *TemplateBlock) GetRichTextString() string { + return concatenateRichText(b.Template.RichText) +} + +func (b *LinkPreviewBlock) GetRichTextString() string { + return b.LinkPreview.URL +} + +func (b *EquationBlock) GetRichTextString() string { + return b.Equation.Expression +} + +func (b *BasicBlock) GetRichTextString() string { + return "No rich text of a basic block." +} var _ Block = (*BasicBlock)(nil) type ParagraphBlock struct { From dffe576b0895e69f133460d05062cb2dca7ddd63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Nazl=C4=B1can?= <64064136+wulfharth7@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:40:52 +0300 Subject: [PATCH 2/2] Pointers changed to values --- block.go | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/block.go b/block.go index c4b5913..275f405 100644 --- a/block.go +++ b/block.go @@ -304,87 +304,87 @@ func concatenateRichText(richtext []RichText) string { return result } -func (h *Heading1Block) GetRichTextString() string { +func (h Heading1Block) GetRichTextString() string { return concatenateRichText(h.Heading1.RichText) } -func (p *ParagraphBlock) GetRichTextString() string { +func (p ParagraphBlock) GetRichTextString() string { return concatenateRichText(p.Paragraph.RichText) } -func (h *Heading2Block) GetRichTextString() string { +func (h Heading2Block) GetRichTextString() string { return concatenateRichText(h.Heading2.RichText) } -func (h *Heading3Block) GetRichTextString() string { +func (h Heading3Block) GetRichTextString() string { return concatenateRichText(h.Heading3.RichText) } -func (c *CalloutBlock) GetRichTextString() string { +func (c CalloutBlock) GetRichTextString() string { return concatenateRichText(c.Callout.RichText) } -func (q *QuoteBlock) GetRichTextString() string { +func (q QuoteBlock) GetRichTextString() string { return concatenateRichText(q.Quote.RichText) } -func (b *BulletedListItemBlock) GetRichTextString() string { +func (b BulletedListItemBlock) GetRichTextString() string { return concatenateRichText(b.BulletedListItem.RichText) } -func (n *NumberedListItemBlock) GetRichTextString() string { +func (n NumberedListItemBlock) GetRichTextString() string { return concatenateRichText(n.NumberedListItem.RichText) } -func (t *ToDoBlock) GetRichTextString() string { +func (t ToDoBlock) GetRichTextString() string { return concatenateRichText(t.ToDo.RichText) } -func (b *ToggleBlock) GetRichTextString() string { +func (b ToggleBlock) GetRichTextString() string { return concatenateRichText(b.Toggle.RichText) } -func (b *EmbedBlock) GetRichTextString() string { +func (b EmbedBlock) GetRichTextString() string { return concatenateRichText(b.Embed.Caption) } -func (b *ImageBlock) GetRichTextString() string { +func (b ImageBlock) GetRichTextString() string { return concatenateRichText(b.Image.Caption) } -func (b *AudioBlock) GetRichTextString() string { +func (b AudioBlock) GetRichTextString() string { return concatenateRichText(b.Audio.Caption) } -func (b *VideoBlock) GetRichTextString() string { +func (b VideoBlock) GetRichTextString() string { return concatenateRichText(b.Video.Caption) } -func (b *FileBlock) GetRichTextString() string { +func (b FileBlock) GetRichTextString() string { return concatenateRichText(b.File.Caption) } -func (b *PdfBlock) GetRichTextString() string { +func (b PdfBlock) GetRichTextString() string { return concatenateRichText(b.Pdf.Caption) } -func (b *BookmarkBlock) GetRichTextString() string { +func (b BookmarkBlock) GetRichTextString() string { return concatenateRichText(b.Bookmark.Caption) } -func (b *TemplateBlock) GetRichTextString() string { +func (b TemplateBlock) GetRichTextString() string { return concatenateRichText(b.Template.RichText) } -func (b *LinkPreviewBlock) GetRichTextString() string { +func (b LinkPreviewBlock) GetRichTextString() string { return b.LinkPreview.URL } -func (b *EquationBlock) GetRichTextString() string { +func (b EquationBlock) GetRichTextString() string { return b.Equation.Expression } -func (b *BasicBlock) GetRichTextString() string { +func (b BasicBlock) GetRichTextString() string { return "No rich text of a basic block." } var _ Block = (*BasicBlock)(nil)